{"id":3926,"date":"2014-11-23T12:26:45","date_gmt":"2014-11-23T04:26:45","guid":{"rendered":"http:\/\/rmohan.com\/?p=3926"},"modified":"2014-11-23T12:26:45","modified_gmt":"2014-11-23T04:26:45","slug":"weblogic-9-guide","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=3926","title":{"rendered":"Weblogic 9 Guide"},"content":{"rendered":"<p>Weblogic Server Administration<\/p>\n<h2>History<\/h2>\n<p>BEA began as a\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Software\">software<\/a>\u00a0company, founded in 1995 and headquartered in\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/San_Jose,_California\">San Jose, California<\/a>. It grew to have 78 offices worldwide at the time of its acquisition by Oracle.\u00a0BEA Weblogic, now\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Oracle_Weblogic_Server\">Oracle Weblogic Server<\/a>\u00a0&#8211;\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_Platform,_Enterprise_Edition\">Java EE<\/a>\u00a0enterprise infrastructure platform<br \/>\nWebLogic Server: Oracle WebLogic is a server software application that runs on a middle tier, between back-end databases and related applications an browser-based thin clients. WebLogic is a leading e-commerce online transaction processing (OLTP) platform, developed to connect users in a distributed computing environment and to facilitate the integration of mainframe applications with distributed corporate data and applications.<br \/>\nWebLogic server is based on Java2 Platform, Enterprise Edition (J2EE), the standard platform used to create Java-based multi-tier enterprise applications.<br \/>\nOracle WebLogic Server 12c is the industry&#8217;s best application server for building and deploying enterprise Java EE applications with support for new features for lowering cost of operations, improving performance, enhancing scalability and supporting the Oracle Applications portfolio.<\/p>\n<h2>Application Server versions<\/h2>\n<p>WebLogic Server 12c (12.1.1) &#8211; March 2012<br \/>\nWebLogic Server 12c (12.0) &#8211; December 1, 2011<br \/>\nWebLogic Server 11gR1 PS5 (10.3.6) &#8211; February 2012<br \/>\nWebLogic Server 11gR1 PS4 (10.3.5) &#8211; May 16, 2011<br \/>\nWebLogic Server 11gR1 PS3 (10.3.4) &#8211; January 15, 2011<br \/>\nWebLogic Server 11gR1 PS2 (10.3.3) &#8211; April 2010<br \/>\nWebLogic Server 11gR1 PS1 (10.3.2) &#8211; November 2009<br \/>\nWebLogic Server 11g (10.3.1) &#8211; July 2009<br \/>\nWebLogic Server 10.3 &#8211; August 2008<br \/>\nWebLogic Server 10.0 &#8211; March 2007<br \/>\nWebLogic Server 9.2<br \/>\nWebLogic Server 9.1<br \/>\nWebLogic Server 9.0 &#8211; November 2006<br \/>\nWebLogic Server 8.1 &#8211; July 2003<br \/>\nWebLogic Server 7.0 &#8211; June 2002<br \/>\nWebLogic Server 6.1<br \/>\nWebLogic Server 6.0 &#8211; file date March 2001 on an old CD<br \/>\nWebLogic Server 5.1 (code name: Denali) First version supporting hot deployment for applications (via command line)<br \/>\nWebLogic Server 4.0<br \/>\nWebLogic Tengah 3.1 &#8211; June 1998<br \/>\nWebLogic Tengah 3.0.1 &#8211; March 1998<br \/>\nWebLogic Tengah 3.0 &#8211; January 1998<br \/>\nWebLogic Tengah &#8211; November 1997<\/p>\n<h2>Standards support by version<\/h2>\n<p><strong>The table below lists major standards supported by WebLogic Server product version.<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Standard<\/strong><\/td>\n<td><a href=\"http:\/\/download.oracle.com\/docs\/cd\/E13222_01\/wls\/docs70\/notes\/new.html#1134707\"><strong>WLS 7.0<\/strong><\/a><\/td>\n<td><a href=\"http:\/\/download.oracle.com\/docs\/cd\/E13222_01\/wls\/docs81\/notes\/new.html#1184292\"><strong>WLS 8.1<\/strong><\/a><\/td>\n<td><a href=\"http:\/\/download.oracle.com\/docs\/cd\/E13222_01\/wls\/docs90\/notes\/new.html#1199788\"><strong>WLS 9.0<\/strong><\/a><\/td>\n<td><a href=\"http:\/\/download.oracle.com\/docs\/cd\/E13222_01\/wls\/docs100\/notes\/new.html#wp1065515\"><strong>WLS 10.0<\/strong><\/a><\/td>\n<td><a href=\"http:\/\/download.oracle.com\/docs\/cd\/E12840_01\/wls\/docs103\/notes\/new.html#wp1093291\"><strong>WLS 10.3<\/strong><\/a><\/td>\n<td><a href=\"http:\/\/docs.oracle.com\/cd\/E24329_01\/web.1211\/e24494\/toc.htm#BGGBIJBI\"><strong>WLS 12c<\/strong><\/a><\/td>\n<\/tr>\n<tr>\n<td>Java<\/td>\n<td>1.3<\/td>\n<td>1.4<\/td>\n<td>5<\/td>\n<td>5<\/td>\n<td>6 (7 in 10.3.6+)<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>Java EE<\/td>\n<td>1.3<\/td>\n<td>1.3<\/td>\n<td>1.4<\/td>\n<td>5<\/td>\n<td>5<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>Servlet<\/td>\n<td>1.2<\/td>\n<td>2.3<\/td>\n<td>2.4<\/td>\n<td>2.5<\/td>\n<td>2.5<\/td>\n<td>3.0<\/td>\n<\/tr>\n<tr>\n<td>JSP<\/td>\n<td>1.2<\/td>\n<td>1.2<\/td>\n<td>2.0<\/td>\n<td>2.1<\/td>\n<td>2.1<\/td>\n<td>2.2<\/td>\n<\/tr>\n<tr>\n<td>EJB<\/td>\n<td>2.0<\/td>\n<td>2.0<\/td>\n<td>2.1<\/td>\n<td>3.0<\/td>\n<td>3.0<\/td>\n<td>3.1<\/td>\n<\/tr>\n<tr>\n<td>JDBC<\/td>\n<td>2.0<\/td>\n<td>2.0<\/td>\n<td>3.0<\/td>\n<td>3.0<\/td>\n<td>3.0<\/td>\n<td>4.0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Webserver and Application server<\/strong><\/p>\n<p>Webserver: \u00a0Which hosts websites.<\/p>\n<p>1)Apache<\/p>\n<p>2)Microsoft-IIS<\/p>\n<p>3)Tomcat<\/p>\n<p>4)Sunone (Iplanet)<\/p>\n<p>5)IHS (Ibm Http server)<\/p>\n<p>Application server: Which provides run-time environment to support J2EE Applications.<\/p>\n<p>1)IBM &#8211; Websphere<\/p>\n<p>2)Oracle &#8211; Weblogic<\/p>\n<p>3)JBOSS.<\/p>\n<p><strong>Difference between web server and application server:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"325\"><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0Webserver<\/strong><\/p>\n<p><strong>1) Which<\/strong>\u00a0hosts websites.<\/p>\n<p>2) Webserver is having web container can \u00a0deploy war files.<\/p>\n<p>3)webserver can effectively handle static contents.<\/p>\n<p>ex: Serverlet,jsps.<\/p>\n<p>4) Webserver handles the HTTP protocol. When the Web server receives an HTTP request, it responds with an HTTP response, such as sending back an HTML page.<\/p>\n<p>5) Web Server serves static HTML pages or gifs, jpegs, etc., and can also run code written in CGI, JSP etc.<br \/>\n6) Web Server only supports Servlets and JSP.<\/p>\n<p>&nbsp;<\/td>\n<td width=\"341\"><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Application Server<br \/>\n<\/strong><\/p>\n<p>1)Which provides\u00a0run-time\u00a0environment to run J2EE<\/p>\n<p>applications.<\/p>\n<p>2)Application server is having \u00a0webcontainer as well as Ejb-container can deploy EAR files.<\/p>\n<p>3)Application server can\u00a0effectively handle dynamic content \u00a0ex: EJB&#8217;S<\/p>\n<p>4)\u00a0Application server is more capable of dynamic behavior than webserver. We can also configure application server to work as a webserver. Simply application server is a superset of webserver.<\/p>\n<p>5)Application<strong>\u00a0<\/strong>Server<strong>\u00a0<\/strong>supports\u00a0distributed transaction and EJB.<\/p>\n<p>6)\u00a0An Application Server is used to run business logic or dynamically generated presentation code. It can either be .NET based or J2EE based<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Weblogic server Resources<\/p>\n<p>_________________________________________________________________________________________________________________________<\/p>\n<p><strong>1) Domain<\/strong><\/p>\n<p><strong>2)Admin Server<\/strong><\/p>\n<p><strong>3)Managed servers<\/strong><\/p>\n<p><strong>4)Cluster<\/strong><\/p>\n<p><strong>5)NodeManager<\/strong><\/p>\n<p><strong>6)Admin console<\/strong><\/p>\n<p><strong>7)JDBC<\/strong><\/p>\n<p><strong>8)JMS<\/strong><\/p>\n<p><strong>9)Virtual hosts<\/strong><\/p>\n<p><strong>10)Security Realms.<\/strong><\/p>\n<p><strong>Domain: A Basic administration unit in weblogic. A group of Logical resources.<\/strong><\/p>\n<p><strong>Admin server: Which Administrate the hole domain.<\/strong><\/p>\n<p><strong>Manages servers: Where actual application are\u00a0deployed. There will one to N number of managed server\u00a0available\u00a0in domain.<\/strong><\/p>\n<p><strong>Cluster: Collection of servers that provide fail-over and Load\u00a0balancing\u00a0and\u00a0features\u00a0like scalability and high\u00a0availability.<\/strong><\/p>\n<p><strong>Node Manager:\u00a0<\/strong>NM is a WLS utility that enables you to start\/stop and restart Admin Server and Managed Server instances from a remote location.<\/p>\n<p>Admin console:\u00a0Administration Console is a Web browser-based, graphical user interface that you use to manage a WebLogic Server domain.<\/p>\n<p>__________________________________________________________________________________________________________<\/p>\n<p><strong>Domain:\u00a0<\/strong>An Oracle WebLogic Server administration domain is a logically related group of Oracle WebLogic Server resources. Domains include a special Oracle WebLogic Server instance called the Administration Server, which is the central point from which you configure and manage all resources in the domain. Usually, you configure a domain to include additional Oracle WebLogic Server instances called Managed Servers. You deploy Web applications, EJBs, Web Services, and other resources onto the Managed Servers and use the Administration Server for configuration and management purposes only.<strong><br \/>\nNode Manager:<\/strong>\u00a0Node Manager is a WebLogic Server utility that enables you to start, shut down, and restart Administration Server and Managed Server instances from a remote location. Although Node Manager is optional, it is recommended if your WebLogic Server environment hosts applications with high availability requirements.<\/p>\n<p>A Node Manager process is not associated with a specific WebLogic domain but with a machine. You can use the same Node Manager process to control server instances in any WebLogic Server domain, as long as the server instances reside on the same machine as the Node Manager process. Node Manager must run on each computer that hosts WebLogic Server instances\u2014whether Administration Server or Managed Server\u2014that you want to control with Node Manager.<\/p>\n<p>WebLogic Server provides two versions of Node Manager, Java-based and script-based, with similar functionality. However, each version has different configuration and security considerations.<\/p>\n<p><strong>Java-based Node Manager:\u00a0<\/strong>Java-based Node Manager runs within a Java Virtual Machine (JVM) process. It is recommended that you run it as a Windows service on Windows platforms and as an operating system service on UNIX platforms, allowing it to restart automatically when the system is rebooted.<\/p>\n<p>Oracle provides native Node Manager Libraries for Windows, Solaris, HP UX, Linux on Intel, Linux on Z-Series, and AIX operating systems.<\/p>\n<p><strong>Note:\u00a0<\/strong>Node Manager is not supported on Open VMS,OS\/390,AS400,UnixWare\/Tru64 UNIX.<\/p>\n<p><strong>Script-based Node Manager:<\/strong>\u00a0For UNIX and Linux systems, WebLogic Server provides a script-based version of Node Manager. This script is based on UNIX shell scripts, but uses SSH for increased security. SSH uses user-id based security.\u00a0For information on configuring the script version of Node Manager, see\u00a0<a href=\"http:\/\/docs.oracle.com\/cd\/E15051_01\/wls\/docs103\/nodemgr\/script_nodemgr.html\">Configuring Script Node Manager<\/a>.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"34\"><\/td>\n<td width=\"570\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This version does not provide as much security as the Java-based version. However, the advantage of the script-based Node Manager is that it can remotely manage servers over a network that has been configured to use SSH. No additional server installation is required. The scripts merely have to be copied to the remote machine.<\/p>\n<p><strong>Note:\u00a0<\/strong>It is recommended that you run script-based Node Manager as Operating System services, which allows to restart automatically when the system is rebooted.<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Administration Server:<\/strong>\u00a0Admin Server is an instance of Weblogic server. The Administration Server operates as the central control entity for the configuration of the entire domain. It maintains the domain&#8217;s configuration documents and distributes changes in the configuration documents to Managed Servers. You can also use the Administration Server as a central location from which to monitor all resources in a domain.<\/p>\n<p><strong>Managed server:\u00a0<\/strong>Apart from Admin Server any weblogic server instance is called Managed server. To prevent the Administration Server from becoming a single point of failure, Managed Servers can always function without the presence a running Administration Server. When a Managed Server starts, it contacts the Administration Server to retrieve its configuration information. If a Managed Server is unable to connect to the specified Administration Server during startup, it can retrieve its configuration directly by reading a copy of the\u00a0config.xml\u00a0file and other files located on the Managed Server&#8217;s own file system.<\/p>\n<p><strong>Cluster:\u00a0<\/strong>A WebLogic Server cluster consists of multiple WebLogic Server instances running simultaneously and working together to provide increased scalability and reliability. A cluster appears to clients to be a single WebLogic Server instance. The server instances that constitute a cluster can run on the same machine, or be located on different machines. You can increase a cluster\u2019s capacity by adding additional server instances to the cluster on an existing machine, or you can add machines to the cluster to host the incremental server instances. Each server instance in a cluster must run the same version of WebLogic Server.<\/p>\n<p>A cluster is defined as a group of application servers that transparently run a J2EE application as if it were a single entity. \u00a0There are two methods of clustering:<strong>\u00a0\u00a0vertical scaling\u00a0<\/strong>and\u00a0<strong>horizontal scaling<\/strong><\/p>\n<p><strong>Horizontal clustering:\u00a0<\/strong>It involves running multiple Java application servers that are run on two or more separate physical machines<strong>.\u00a0<\/strong>Horizontal scaling is more reliable than vertical scaling, since there are multiple machines involved in the cluster environment, as compared to only one machine.<br \/>\n<strong>Vertical clustering:<\/strong>\u00a0However, consists of multiple Java application servers on a single physical machine.\u00a0With vertical scaling, the machine&#8217;s processing power, CPU usage, and JVM heap memory configurations are the main factors in deciding how many server instances should be run on one machine<\/p>\n<p><strong>Proxy Server:<\/strong>\u00a0Proxy Server is an intermediary server between your web browser (client) which requests for some information\/data and your server (web server\/Application server) that process the data.<\/p>\n<p><strong>Types of Proxy Server:<\/strong>\u00a0They are three different types of proxy servers. They are as follows<\/p>\n<p><strong>1) Forward Proxy Servers<\/strong>:\u00a0Forward Proxy Server is a server which forwards the request from the intranet clients (web browser) to the internet servers. These proxy servers are present in the same network of your client.<\/p>\n<p><strong>2) Open Proxy Server:<\/strong>\u00a0An open proxy is a proxy server which is accessible by any Internet user. Any proxy server that doesn\u2019t restrict its client base to its own set of clients and allows any other client to connect to it is known as an \u201cOpen Proxy\u201d. An\u00a0anonymous open proxy\u00a0allows users to conceal their IP address while browsing the Web or using other Internet services. They are in numerous open proxy servers present in Internet. For converting any flavor of proxy servers to Open Proxy servers we just have to enable the flag<strong>\u201cProxyRequests On\u201d<\/strong>\u00a0in the configuration file.<\/p>\n<p><strong>3) Reverse Proxy Server:<\/strong>\u00a0A Proxy Server which takes requests from external clients (web browsers) or Internet and forwards them to servers in an internal network is called as Reverse Proxy Server. Generally, the reverse proxy servers are present in the same network where we have our App\/Web servers.<\/p>\n<p><strong>Advantages of using Reverse Proxy Servers:\u00a0<\/strong>The various advantages of using the proxy servers are as follows:<\/p>\n<p>1)\u00a0\u00a0\u00a0\u00a0\u00a0 Filtering<\/p>\n<p>2)\u00a0\u00a0\u00a0\u00a0\u00a0 Caching<\/p>\n<p>3)\u00a0\u00a0\u00a0\u00a0\u00a0 Bypassing filters and censorship<\/p>\n<p>4)\u00a0\u00a0\u00a0\u00a0\u00a0 Logging and eavesdropping<\/p>\n<p>5)\u00a0\u00a0\u00a0\u00a0\u00a0 Gateways to private networks<\/p>\n<p>6)\u00a0\u00a0\u00a0\u00a0\u00a0 Accessing services anonymously<\/p>\n<p><strong>Fire wall:<\/strong>\u00a0It provide filtering, autherization&amp; Authentication services.<\/p>\n<p>It can act as proxy servers.<\/p>\n<p>Mapping port requests.<\/p>\n<p><strong>Machine:<\/strong>\u00a0A machine is a computer that host WebLogic server.<\/p>\n<p>A machine runs a supported o.s platform.<\/p>\n<p>Can host multiple WebLogic server instances.<\/p>\n<p><strong>WebLogic server Life Cycle:<\/strong><\/p>\n<p>__________________________________________________________________________________________________________<\/p>\n<p><strong>Starting state:<\/strong>\u00a0During the starting state that instances ready the domain configuration data from its configuration directory. Whereas the Manager server will get their configuration data from Admin server. It is in this state that the instance the basic services such as the kernal and execute queues, the container service for logging and Node manager service. The server also deploy during this phase.<\/p>\n<p><strong>Stand by:<\/strong>\u00a0In this state the server Instance will allow you to issue just to administrative requests. You can me the server state either running or shutdown state. Normally the server instance will automatically transition through the stand by state to next stage unless you start the instance with the start in stand by command.<\/p>\n<p>Note: All ports are closed in this stat. But you can quickly transition to a running state.<\/p>\n<p><strong>Admin mode:\u00a0<\/strong>The admin mode permits only Administrative task, deploying applications with those applications being able to only request from users with the admin and Apptester roles. Running a server in admin mode is also useful when trying to diagnose problems with application gone badly.<\/p>\n<p>Note: Servers will run in admin mode when there is problem with deployed application or JDBC connection pool.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8211;&gt; we can resume the server from Admin state to resume state.<\/p>\n<p><strong>Resuming state: T<\/strong>his is purely transitional<strong>\u00a0<\/strong>state the server instance goes through after it transitions automatically through Admin state or you issue the resume command after first placing the instance in the stand by or Admin state. You can do this state change from command line or through the Admin console.<\/p>\n<p><strong>Running state:\u00a0<\/strong>This is off course final state the server instance reaches after you either issue a startup command or resume command to move the server out of the Admin or stand by state. It is in the running state that the server can accept the service client request for it services.<\/p>\n<p><strong>Different between development mode and production mode<\/strong><\/p>\n<p><strong>__________________________________________________________________________________________________________<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"303\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Development mode<\/strong><\/p>\n<p>1)Auto deployment enabled<\/p>\n<p>2) The default JDK for development domain is SunHotSopt.(SunJdk)<\/p>\n<p>3) It is used demo certificate for SSL.<\/p>\n<p>4) Server instances rotate their log files on startup.<\/p>\n<p>5) Admin server uses an automatically created boot.properties during startup.<\/p>\n<p>6) The default maximum capacity for JDBC Date source is 15.<\/p>\n<p>7) The debug flag which used to start the WebLogic workshop debugger is enabled.<\/td>\n<td width=\"310\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Production mode<\/strong><\/p>\n<p>1)Auto deployment is disabled.<\/p>\n<p>2) The default JDK for production domain is JRocket.<\/p>\n<p>3) It is used demo certificate for SSL a warning is displayed.<\/p>\n<p>&nbsp;<\/p>\n<p>4) Server instances states their log files when it reaches 5Mb<\/p>\n<p>5) Admin server prompt for username and password during startup.<\/p>\n<p>6) The default maximum capacity for JDBC Date source is 25.<\/p>\n<p>7) The debug flag which used to start the WebLogic workshop debugger is disabled.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>WebLogic Installation<\/strong>:<\/p>\n<p>__________________________________________________________________________________________________________<\/p>\n<p>There are 3 types of installations<\/p>\n<ol>\n<li>GUI mode.<\/li>\n<li>Console mode.<\/li>\n<li>Silent mode.<\/li>\n<\/ol>\n<p><strong>1) GUI Mode<\/strong>:<\/p>\n<p>Step1: welcome screen<\/p>\n<p>Step2: Accept license agreement.<\/p>\n<p>Step3: Create new BEA home directory<\/p>\n<p>C:\\bea10.3<\/p>\n<p>Step4: Choose installation- Complete (or) Custom<\/p>\n<p>Step5.Select complete<\/p>\n<p>Step6.Select product installation directory<\/p>\n<p>C:\\bea10.3\\wlserver_10.3<\/p>\n<p><strong>2) Console Mode:<\/strong><\/p>\n<p>server10.3_win32.exe\u00a0\u00a0-mode = console<\/p>\n<p><strong>3) Silent Mode:\u00a0<\/strong>\u00a0\u00a0It is a way of setting installation configuration only once and then using those configurations to duplicate the installation on many machines.<\/p>\n<p>The installation programs read the settings for your configuration from an xml file.(silent.xml)<\/p>\n<p>server10.3_win32.exe -mode=silent -silent.xml=c:\\bea10.3\\silent.xml\u00a0\u00a0-log=c:\\10.3\\silent.log<\/p>\n<p>Step1: Create silent.xml file<\/p>\n<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243; ?&gt;<\/p>\n<p>&lt;bea-installer&gt;<\/p>\n<p>&lt;input-fields&gt;<\/p>\n<p>&lt;data-value name=&#8221;BEAHOME&#8221; value=&#8221;C:\\bea10.3&#8243; \/&gt;<\/p>\n<p>&lt;data-value name=&#8221;USER_INSTALL_DIR&#8221; value=&#8221;C:\\bea10.3\\wlserver_10.3&#8243; \/&gt;<\/p>\n<p>&lt;\/input-fields&gt;<\/p>\n<p>&lt;\/bea-installer&gt;<\/p>\n<p>Step2: Save this file as silent.xml file in C:\\bea10.3 folder<\/p>\n<p>Step3: Copy the WebLogic software under C:\\bea10.3 folder<\/p>\n<p>Step4: Create a sub folder wlserver_10.3 under c:\\bea10.3<\/p>\n<p>Step5: Execute the below command<\/p>\n<p>server103_win32.exe -mode=silent -silent_xml=C:\\bea10.3\\ silent.xml\u00a0\u00a0-log=C:\\10.3\\silent.log<\/p>\n<p><strong>Domain creation\u00a0<\/strong><\/p>\n<p>__________________________________________________________________________________________________________We can create a domain in 5 types.<\/p>\n<p>&nbsp;<\/p>\n<p>1)Configuration wizard<\/p>\n<p>1)GUI<\/p>\n<p>2)Console<\/p>\n<p>2)Weblogic server<\/p>\n<p>3)ANT Task<\/p>\n<p>4)WLST (Weblogic Scripting tool)<\/p>\n<p>5)Pack&amp; Unpack.<\/p>\n<p>&nbsp;<\/p>\n<p>Step1:<strong>\u00a0<\/strong>Goto the below path and execute config.cmd script<\/p>\n<p>C:\\bea10.3\\wlserver_10.3\\common\\bin&gt;config.cmd<\/p>\n<p>Step2: Select &#8211; Create new WebLogic domain<\/p>\n<p>Step3: Select &#8211; Base this domain on an existing template<\/p>\n<p>Step4: Configure Administrator username and password.<\/p>\n<p>Step5: Configure server start mode and JDK<\/p>\n<p>Development mode\u00a0\u00a0\u00a0&#8212;- SunJdk<\/p>\n<p>Production mode\u00a0\u00a0\u00a0&#8212;&#8211; Jrocket<\/p>\n<p>Select development mode and SunJdk<\/p>\n<p>Step6: Customize environment &amp; services settings<\/p>\n<p>Select yes if you would like to configure resources<\/p>\n<p>Step7: Configure Admin server<\/p>\n<p>Name : AdminServer<\/p>\n<p>Listen address: localhost<\/p>\n<p>Listen port : 7001<\/p>\n<p>SSL listen:\u00a0\u00a0None<\/p>\n<p>** Default port number for AdminServer-7001<\/p>\n<p>** Default ssl listen port : 7002<\/p>\n<p>Step8: Configure managed servers<\/p>\n<p>name\u00a0\u00a0\u00a0\u00a0listen address\u00a0\u00a0\u00a0\u00a0\u00a0listen port\u00a0\u00a0\u00a0ssl listen port<\/p>\n<p>ms1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a07003\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0None<\/p>\n<p>ms2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a07004\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0None<\/p>\n<p>Step9: Configure cluster<\/p>\n<p>Name Multicast address\u00a0\u00a0multicast port\u00a0\u00a0cluster address<\/p>\n<p>c1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0239.192.0.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a07010\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost:7003, localhost:7004<\/p>\n<p>Step 10: Assign servers to clusters<\/p>\n<p>Step 11: Configure machines<\/p>\n<p>Name\u00a0\u00a0\u00a0Node manager listen address\u00a0\u00a0\u00a0Node manager listenport<\/p>\n<p>m1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a05556<\/p>\n<p>Step 12: Assign servers to machines<\/p>\n<p>Step 13: Create WebLogic domain<\/p>\n<p>Enter the name and location for the domain<\/p>\n<p>Domain name : dev_domain<\/p>\n<p>Domain location : c:\\bea10.3\\user_projects\\domains<\/p>\n<p>Step 14:\u00a0\u00a0Click on\u00a0<strong>Create<\/strong><\/p>\n<ol>\n<li><strong>Q) How to start Admin server?<\/strong><\/li>\n<\/ol>\n<p>C:\\bea10.3\\user_projects\\domains\\dev_domain\\bin&gt;startWebLogic.cmd<\/p>\n<ol>\n<li><strong>Q) How to Access Admin console?<\/strong><\/li>\n<\/ol>\n<p>http:\/\/localhost:7001\/console<\/p>\n<ol>\n<li><strong>Q) Starting managed servers without node manager?<\/strong><\/li>\n<\/ol>\n<p><strong>If Adminserver is in another machine:\u00a0<\/strong>c:\\bea\\user_projects\\domains\\webdomain\\bin&gt;startmanagedWebLogic.cmd ms1<a href=\"http:\/\/www.blogger.com\/null\">http:\/\/localhost:7001 (Admin<\/a>\u00a0server port number)<\/p>\n<p><strong>If Adminserver is in same machine:<\/strong>\u00a0c:\\bea\\user_projects\\domains\\maindomain\\bin&gt;startmanagedWebLogic.cmd ms1<\/p>\n<ol>\n<li><strong>Q) How to stop Admin server?<\/strong><\/li>\n<\/ol>\n<p>StopWebLogic.cmd\u00a0\u00a0\u00a0&#8212;&#8211;Windows<\/p>\n<p>StopWebLogic.sh\u00a0\u00a0\u00a0&#8212;&#8212;-Unix<\/p>\n<ol>\n<li><strong>Q) How To stop managed server?<\/strong><\/li>\n<\/ol>\n<p>StopManagedWebLogic.cmd ms1<\/p>\n<ol>\n<li><strong>Q) How to start Nodemanager?<\/strong><\/li>\n<\/ol>\n<p>C:\\bea10\\wlserver_10.3\\server\\bin&gt;startNodemanager.cmd<\/p>\n<p><strong>Creating managed servers from console:<\/strong><\/p>\n<p>Step1: Click on Lock&amp; Edit<\/p>\n<p>Step2: Navigate to servers and then click on new<\/p>\n<p>Step3: Create a new server<\/p>\n<p>Step4: Provide server properties<\/p>\n<p>Server name : ms3<\/p>\n<p>Server listen address: localhost<\/p>\n<p>Server listen port: 7005<\/p>\n<p>Step5: Select &#8211; this is a stand alone server<\/p>\n<p>Step6: Review choices<\/p>\n<p>Step7: Activate changes<\/p>\n<p><strong>Assigning server to cluster:<\/strong><\/p>\n<p>Step1: Navigate to cluster-cluster name-servers<\/p>\n<p>Step2:\u00a0\u00a0Click on Lock &amp; Edit<\/p>\n<p>Step3:\u00a0\u00a0Add<\/p>\n<p>Add server to cluster<\/p>\n<p>Select existing server and add it as a cluster<\/p>\n<p>Step4: Activate changes<\/p>\n<p><strong>Adding servers to machines:<\/strong><\/p>\n<p>Step1: Navigate to machines-m1-servers<\/p>\n<p>Step2: Lock&amp; Edit<\/p>\n<p>Step3: Add<\/p>\n<p>Step4: Activate changes<\/p>\n<p><strong>How to check Node manager status from console<\/strong>:<\/p>\n<p>We can\u2019t Start Node manager from console<\/p>\n<p>Step1: Click on machines<\/p>\n<p>Step2: Select m1<\/p>\n<p>Step3: Click on monitoring<\/p>\n<p><strong><em>Clone<\/em><\/strong><em>: It creates other server with same properties.<\/em><\/p>\n<p><em>we can clone servers machines and clusters.<\/em><\/p>\n<p><em>we should not cluster managed server while the server is running.<\/em><\/p>\n<p><em>&#8211;&gt;boot.properties-it contains username and password<\/em><\/p>\n<p><em>&#8211;&gt;Development mode-automatically creates boot.properties file<\/em><\/p>\n<p><em>&#8211;&gt; Production mode-we have to create boot.properties file.<\/em><\/p>\n<p><em>&#8211;&gt; setDomainEnv -we can change the mode from development to production or production to development modedoing changes in this file.<\/em><\/p>\n<p>Deployments<\/p>\n<p>__________________________________________________________________________________________________________<\/p>\n<p>&nbsp;<\/p>\n<p>Several methods are available to deploy the Oracle WebLogic Server applications and shared libraries, including:<\/p>\n<ol>\n<li>Administration console<\/li>\n<li>WebLogic Scripting Tool(WLST)<\/li>\n<li>WebLogic.Deployer java class<\/li>\n<li>wldeploy Ant task<\/li>\n<li>Auto-deployment folder<\/li>\n<\/ol>\n<p><strong>Deployment an application involves the following tasks:<\/strong><\/p>\n<p><strong>Preparing:\u00a0\u00a0<\/strong>Choosing weather to package the application as an archived file or keep in an exploded directory.<\/p>\n<p><strong>Configuring:\u00a0<\/strong>Creating a deployment plan to maintain the configuration changes without changes the deployment descriptors.<\/p>\n<p><strong>Deploying:\u00a0<\/strong>Targeting and distributing the application to servers in an OracleWebLogicServer domain.<\/p>\n<p><strong>Deploment Methods:<\/strong>\u00a0WLS (WebLogic scripting) supports three types of deployment methods.<\/p>\n<ol>\n<li>Auto-deployment<\/li>\n<li>Console deployment<\/li>\n<li>Command-line Deployment<\/li>\n<\/ol>\n<p><strong>You can deploy:<\/strong><\/p>\n<ol>\n<li>Enterprise, Web, and EJB applications<\/li>\n<li>Web services<\/li>\n<li>J2EE libraries<\/li>\n<li>JDBC, JMS and Diagnostic Framework modules<\/li>\n<li>Resource adapters<\/li>\n<li>Optional packages<\/li>\n<li>Client application archives<\/li>\n<\/ol>\n<p><strong>Applications and EJBs can be deployed:<\/strong><\/p>\n<ol>\n<li>In an archived file(.ear, .war, .jar)<\/li>\n<li>In an exploded(open)directory format<\/li>\n<\/ol>\n<p><strong>Archive Files:\u00a0<\/strong>There are three archive files to deployed in Oracle WebLogic Server.<\/p>\n<p>1)\u00a0<strong>JAR(Java Archive):<\/strong>\u00a0Jar is java archive file. It contains all class file, image, sound and other files which will needed in whole application. Computer users can create or extract JAR files using the jar command that comes with the JDK. They can also use zip tools. The JavaTM Archive (JAR) file format enables you to bundle multiple files into a single archive file. jar was designed mainly to facilitate the packaging of java applets or applications into a single archive.<\/p>\n<p><strong>Creating Jar File:<\/strong><\/p>\n<p>jar\u00a0\u00a0-cvf\u00a0\u00a0\u00a0filename.jar \u201c.\u201d<\/p>\n<p><strong>Extracting Jar file:<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong>Jar\u00a0\u00a0\u00a0-xvf\u00a0<strong>\u00a0<\/strong>filename.jar<\/p>\n<p><strong>2) WAR(web Archive):\u00a0<\/strong>Web Archive (WAR) file is a Java archive file used to store jsp, servlets, classes, meta data information, images and Sound and tag libraries etc. It is standard file extension is .war. WAR files are used to package Web modules. A WAR file is for a Web application deployed to a servlet\/jsp engine.<\/p>\n<p><strong>Creating war File:<\/strong><\/p>\n<p>jar\u00a0\u00a0-cvf\u00a0\u00a0\u00a0filename.war \u201c.\u201d<\/p>\n<p><strong>Extracting Jar file:<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong>jar\u00a0\u00a0\u00a0-xvf\u00a0<strong>\u00a0<\/strong>filename.war<\/p>\n<p><strong>3)\u00a0\u00a0Ear(Enterprise Archive):\u00a0<\/strong>An Enterprise Archive file represents a J2EE application that can be deployed in a Web Sphere application server. EAR files are standard Java archive files and have the file extension .ear. EAR file contain ejb, web or application client module. ear file is complete j2ee application file that contain all(jar +war)<\/p>\n<p><strong>Creating Ear File:<\/strong><\/p>\n<p>jar\u00a0\u00a0-cvf\u00a0\u00a0\u00a0filename.ear \u201c.\u201d<\/p>\n<p><strong>Extracting Ear file:<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong>Jar\u00a0\u00a0\u00a0-xvf\u00a0<strong>\u00a0<\/strong>filename.ear<\/p>\n<p>In shot we can say<br \/>\nEAR = WAR(Web module) + JAR(can be EJB module or application client module)<strong>Deployment Tools:<\/strong>\u00a0Several methods are available to deploy the Oracle WebLogic Server applications and shared libraries, including:<\/p>\n<ol>\n<li>Administration console<\/li>\n<li>WebLogic Scripting Tool(WLST)<\/li>\n<li>WebLogic.Deployer java class<\/li>\n<li>wldeploy Ant task<\/li>\n<li>Auto-deployment folder<\/li>\n<\/ol>\n<p>1)<strong>\u00a0Auto-deployment:\u00a0<\/strong>Auto-deployment is a method for quickly deploying an application to a stand-alone server (Administration Server) for evaluation or testing. It is recommended that this method be used only in a single-server development environment.<\/p>\n<p>If auto-deployment is enabled, when an application is copied into the \\auto-deploy directory of the Administration Server, the Administration Server detects the presence of the new application and deploys it automatically (if the Administration Server is running). If WebLogic Server is not running when you copy the application to the \\auto-deploy directory, the application is deployed the next time the WebLogic Server Administration Server is started. Auto-deployment deploys only to the Administration Server.<\/p>\n<p>You can run a WebLogic Server domain in two different modes: development and production. Only development mode allows you use the auto-deployment feature<\/p>\n<p>Development mode enables a WebLogic Server instance to automatically deploy and update applications that are in the domain_name\/auto-deploy directory (where domain_name is the name of a WebLogic Server domain).<\/p>\n<p>Production mode disables the auto-deployment feature and prevents any applications you place in the auto-deploy directory after you switch to production mode from being deployed. When you switch from development mode to production mode, any applications that were previously deployed via the auto-deploy directory remain deployed; if you wish to undeploy or redeploy such applications after you have switched to production mode, you must undeploy or redeploy them manually (for instance, with the WebLogic. Deployer command and the -undeploy or -redeploy options, as described in\u00a0<a href=\"http:\/\/docs.oracle.com\/cd\/E11035_01\/wls100\/deployment\/wldeployer.html\">WebLogic. Deployer Command-Line Reference<\/a>).<\/p>\n<p>To auto-deploy an archived application, copy its archive file to the \/autodeploy directory. WebLogic Server automatically sets the application\u2019s deployment mode to stage mode.<\/p>\n<p>A deployment unit that was auto-deployed can be dynamically redeployed while the server is running. To dynamically redeploy, copy the new version of the archive file over the existing file in the \/auto-deploy directory.<\/p>\n<p>To undeploy an archived deployment unit that was auto-deployed, delete the application from the \/autodeploy directory. WebLogic Server stops the application and removes it from the configuration.<\/p>\n<p><strong>2)<\/strong>\u00a0<strong>Console Deployment:\u00a0<\/strong>If we deploy an application in console deployment first we create domain, and start the Admin server.<\/p>\n<p><strong>Console deployment steps:<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong>Step1: Click on Deployments<\/p>\n<p>2: Click on Lock And Edit<\/p>\n<p>3: Click on Install<\/p>\n<p>4: Select Location Deployed Application<\/p>\n<p>5:\u00a0\u00a0Click on Next<\/p>\n<p>6: Choose Targeting Style<\/p>\n<p>&#8211;Select\u00a0\u00a0Install this deployment as an application<\/p>\n<p>7: Click on Next<\/p>\n<p>8: Select Deployment Targets<\/p>\n<p>&#8212; Admin server\u00a0\u00a0\u00a0or\u00a0\u00a0\u00a0Cluster<\/p>\n<p>9:\u00a0\u00a0Click on Next<\/p>\n<p>10: Select security rules and policies<\/p>\n<p>&#8212; select DD only<\/p>\n<p>&#8212;- select Stage or No-Stage Mode<\/p>\n<p>11: Click on Next<\/p>\n<p>12: Click on Finish<\/p>\n<p>13: Click on Activate Changes<\/p>\n<p>You can test your application from within the Administrative Console by following the steps below:<\/p>\n<ol>\n<li>In the Domain Structure section of the console, click &#8216;Deployments&#8217;.<\/li>\n<li>In the Summary of Deployments page, click on the name of the deployed Web application.<\/li>\n<li>Select the &#8216;Test&#8217; tab. Here, you&#8217;ll find the URL to the deployed Web application. Click the link to launch it in a separate browser window.<\/li>\n<\/ol>\n<p><strong>Table of Deployable Modules and Deployment modes.<\/strong><\/p>\n<p><strong>__________________________________________________________________________________________________________<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Application or Module<\/strong><\/td>\n<td><strong>Archive Extension<\/strong><\/td>\n<td><strong>Key J2EE Deployment Descriptor<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Enterprise Application<\/td>\n<td>.ear<\/td>\n<td>META-INF\/application.xml<\/td>\n<\/tr>\n<tr>\n<td>Enterprise JavaBean Module<\/td>\n<td>.jar<\/td>\n<td>META-INF\/ejb-jar.xml<\/td>\n<\/tr>\n<tr>\n<td>Web Application<\/td>\n<td>.war<\/td>\n<td>WEB-INF\/web.xml<\/td>\n<\/tr>\n<tr>\n<td>Web Service<\/td>\n<td>.ear or .war<\/td>\n<td>WEB_INF\/web-services.xml<\/td>\n<\/tr>\n<tr>\n<td>Connector Module<\/td>\n<td>.rar<\/td>\n<td>META-INF\/ra.xml<\/td>\n<\/tr>\n<tr>\n<td>Startup or Shutdown Class<\/td>\n<td>n\/a<\/td>\n<td>No deployment descriptor (Class file only)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WebLogic server provides three different modes\u00a0\u00a0for staging archive files.<\/p>\n<p>1) Stage mode<\/p>\n<p>2) No-stage mode<\/p>\n<p>3) External stage mode<\/p>\n<p><strong>1) Stage mode:<\/strong>\u00a0The administrator server copies the deployment unit files to the staging directories of target servers and they are deployed using local copy.<\/p>\n<ol>\n<li>This mode is useful when deploying small or moderate size applications and prevents having a single point of failure if the original copy is not accessible.<\/li>\n<li>This is the default staging mode for managed server.<\/li>\n<\/ol>\n<p><strong>2) No-stage mode:<\/strong>\u00a0The deployment units are deployed using the same physical copy, which must be accessible by the Administrator\u00a0\u00a0server and target servers.<\/p>\n<ol>\n<li>The administrator server does not copy the deployment unit files to the target server.<\/li>\n<li>This mode is useful when deploying very large deployments to multiple targets and for deployment that require dynamic updates.<\/li>\n<li>This is the default staging mode for the Administrator server.<\/li>\n<\/ol>\n<p><strong>3) External stage mode:\u00a0<\/strong>In the External stage mode you must copy the deployment units manually to the correct staging directories before deployments.<\/p>\n<ol>\n<li>Use this staging mode for deployments where you want to manually control the distribution of deployment files to target servers.<\/li>\n<li>This mode prevents deployment information beginning dynamically updated . In this case the administration server\u00a0\u00a0access the original deployment unit for validation.<\/li>\n<\/ol>\n<p><strong>3) Command Line Deployment:<\/strong><\/p>\n<ol>\n<li><strong>i) Java WebLogic.Deployer:\u00a0<\/strong>Deployer is a Java-based deployment tool that provides a command-line interface to the WebLogic Server deployment API.\u00a0 WebLogic.Deployer\u00a0is intended for administrators and developers who want to perform interactive, command-line based deployment operations.<\/li>\n<\/ol>\n<p>To set up your environment to use the WebLogic.Deployer utility:<\/p>\n<ol>\n<li>Install and configure the WebLogic Server software, as described in the WebLogic Server\u00a0<a href=\"http:\/\/docs.oracle.com\/cd\/E13179_01\/common\/docs90\/install\/index.html\">Installation Guide<\/a>.<\/li>\n<li>Add the WebLogic Server classes to the CLASSPATH environment variable, and ensure that the correct JDK binaries are available in your\u00a0PATH. You can use the setDomainEnv.cmd[setWLSEnv.sh orsetWLSEnv.cmd]\u00a0script, located in the server\/bin subdirectory of the WebLogic Server installation directory, to set the environment.<\/li>\n<li>If you are connecting to an Administration Server via a configured Administration channel, you must also configure SSL on the machine on which you run\u00a0WebLogic.Deployer. See See<a href=\"http:\/\/docs.oracle.com\/cd\/E13222_01\/wls\/docs90\/secmanage\/ssl.html#ssl_for_weblogic_admin\">Using the SSL Protocol to Connect to WebLogic Server from WebLogic.Admin<\/a>in\u00a0Managing WebLogic Security\u00a0for instructions about configuring SSL.<\/li>\n<\/ol>\n<p><strong>Syntax:\u00a0<\/strong>java WebLogic.Deployer [-adminurl] [specifiedurl(t3:\/\/localhost:7001)]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[-username] [username] [-password] [password] [-name] [appname] [-source]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[app source path] [-targets] [targets servers] -deploy<\/p>\n<p><strong>Ex:\u00a0\u00a0<\/strong>java WebLogic.Deployer\u00a0\u00a0-adminurl t3:\/\/localhost:7001 \u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-name\u00a0\u00a0benefits\u00a0\u00a0\u00a0-source\u00a0C:\\course\\labs\\Lab08\\exercise\\applications\\benefits.war\u00a0\u00a0-targets\u00a0\u00a0ms1, ms2\u00a0\u00a0-deploy<\/p>\n<p><strong>Redeploy:<\/strong><\/p>\n<p><strong>Syntax:\u00a0\u00a0<\/strong>java WebLogic.Deployer [-adminurl] [specifiedurl(t3:\/\/localhost:7001)]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[-username] [username] [-password] [password] [-name] [appname] [-targets] [targets servers] \u2013redeploy<\/p>\n<p><strong>Ex:\u00a0<\/strong>java WebLogic.Deployer\u00a0\u00a0-adminurl t3:\/\/localhost:7001 \u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-name\u00a0\u00a0benefits\u00a0\u00a0\u00a0\u00a0\u00a0-targets\u00a0ms1, ms2\u00a0\u00a0-redeploy<\/p>\n<p><strong>Undeploy:\u00a0<\/strong><\/p>\n<p><strong>Syntax:\u00a0\u00a0<\/strong>java WebLogic.Deployer [-adminurl] [specifiedurl(t3:\/\/localhost:7001)]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[-username] [username] [-password] [password] [-name] [appname] [-targets] [targets servers] \u2013undeploy<\/p>\n<p><strong>Ex:\u00a0<\/strong>java WebLogic.Deployer\u00a0\u00a0-adminurl t3:\/\/localhost:7001 \u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-name\u00a0\u00a0benefits\u00a0\u00a0\u00a0\u00a0\u00a0-targets\u00a0ms1, ms2\u00a0\u00a0-undeploy<\/p>\n<p><strong>To display list of applications:<\/strong><\/p>\n<p><strong>Syntax:\u00a0<\/strong>java WebLogic.Deployer [-adminurl] [specifiedurl(t3:\/\/localhost:7001)]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[-username] [username] [-password] [password] [-listapps]<\/p>\n<p><strong>Ex:\u00a0<\/strong>java WebLogic.Deployer\u00a0\u00a0-adminurl t3:\/\/localhost:7001 \u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-listapps<\/p>\n<p><strong>To display list tasks:<\/strong><\/p>\n<p><strong>Syntax: :\u00a0<\/strong>java WebLogic.Deployer [-adminurl] [specifiedurl(t3:\/\/localhost:7001)]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[-username] [username] [-password] [password] [-listtasks]<\/p>\n<p><strong>Ex:\u00a0<\/strong>java WebLogic.Deployer\u00a0\u00a0-adminurl t3:\/\/localhost:7001 \u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-listtasks<\/p>\n<p><strong>To check the server status:<\/strong><\/p>\n<p><strong>Syntax:\u00a0<\/strong>java WebLogic.Deployer [-adminurl] [specifiedurl(t3:\/\/localhost:7001)]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[-username] [username] [-password] [password] [GETSTATE] [server name]<\/p>\n<p><strong>Ex:\u00a0<\/strong>java WebLogic.Deployer\u00a0\u00a0-adminurl t3:\/\/localhost:7001 \u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0-password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0GETSTATE\u00a0\u00a0\u00a0ms1<\/p>\n<ol>\n<li><strong>ii)\u00a0<\/strong><strong>WebLogic Scripting Tool(WLST):\u00a0<\/strong>Wlst is a kind of scripting tool which is a combination of jython and python language.<\/li>\n<\/ol>\n<p>The WebLogic Scripting Tool (WLST) is a command-line scripting environment that you can use to create, manage, and monitor WebLogic Server domains. It is based on the Java scripting interpreter, Jython. In addition to supporting standard Jython features such as local variables, conditional variables, and flow control statements, WLST provides a set of scripting functions (commands) that are specific to WebLogic Server.<\/p>\n<p>You can use WLST as the command-line equivalent to the WebLogic Server. Administration Console (WLST online) or as the command-line equivalent to the Configuration Wizard (WLST offline).<\/p>\n<p>Three types of modes : 1) Interactive mode. 2) Scripting 3) Embedded.<\/p>\n<p><strong>Interactive mode<\/strong>, in which you enter a command and view the response at a command-line prompt, is useful for learning the tool, prototyping command syntax, and verifying configuration options before building a script. Using WLST interactively is particularly useful for getting immediate feedback after making a critical configuration change. The WLST scripting shell maintains a persistent connection with an instance of WebLogic Server.<\/p>\n<p><strong>Script Mode:\u00a0<\/strong>Scripts invoke a sequence of WLST commands without requiring your input, much like a shell script. Scripts contain WLST commands in a text file with a .py file extension, for example, filename.py. You use script files with the Jython commands for running script.<\/p>\n<p><strong>Embedded mode<\/strong>, you instantiate the WLST interpreter in your Java code and use it to run WLST commands and scripts. All WLST commands and variables that you use in interactive and script mode can be run in embedded mode.\u00a0\u00a0We don\u2019t use this mode generally.<\/p>\n<p>To invoke the wlst go to C:<strong>\/bea9\/WebLogic91\/common\/bin\/wlst.cmd<\/strong>\u00a0\u00a0and execute\u00a0<strong>wlst.cmd<\/strong><\/p>\n<p>You can use WLST as the command-line equivalent to the WebLogic Server Administration Console (WLST online) or as the command-line equivalent to the Configuration Wizard (WLST offline).<\/p>\n<p><strong>Offline<\/strong><strong>:<\/strong>\u00a0Without connecting to a running WebLogic Server instance, you can use WLST to create domain templates, create a new domain based on existing templates, or extend an existing, inactive domain. You cannot use WLST<strong>\u00a0offline<\/strong>\u00a0to view performance data about resources in a domain or modify security data (such as adding or removing users).<\/p>\n<p><strong>Online<\/strong><strong>:<\/strong>\u00a0You can use WLST to connect to a running Administration Server and manage the configuration of an active domain, view performance data about resources in the domain, or manage security data (such as adding or removing users). You can also use WLST to connect to Managed Servers, but you cannot modify configuration data from Managed Servers.<\/p>\n<p>&nbsp;<\/p>\n<p>Display help information for WLST commands by entering the help command:<\/p>\n<p>help(\u2018online\u2019)<\/p>\n<p>help(\u2018offline\u2019)<\/p>\n<p>wls:\/offline&gt; help()<\/p>\n<p>WLST is a command line scripting tool to configure and administer WebLogic Server.<\/p>\n<p>To invoke the wlst go to\u00a0<strong>\/bea\/WebLogic91\/common\/bin \/wlst.cmd<\/strong>\u00a0\u00a0and execute\u00a0<strong>wlst.cmd<\/strong><\/p>\n<p><strong>Connect to WLST:<\/strong><\/p>\n<p>Step 1: Set class path first (C:\\bea9\\user_projects\\domains\\ram_domain\\bin\\SetDomainEnv.cmd)<\/p>\n<p>Step 2:\u00a0\u00a0enter WLST.cmd (C:\\bea9\\WebLogic91\\common\\bin\\WLST.cmd)<\/p>\n<p>Installing WLST and goto offline mode.<\/p>\n<p>Step 3: connect(\u2018username\u2019,\u2019password\u2019,\u2019url\u2019)\u00a0\u00a0\u00a0\u00a0enter<\/p>\n<p>Ex: connect(\u2018WebLogic\u2019,\u2019WebLogic\u2019,\u2019t3:\/\/localhost:9001\u2019)<\/p>\n<p>To connect to the domain specified port number. And goto online mode.<\/p>\n<p>Wls:\/ram_domain\/serverCofig&gt;<\/p>\n<p>Step 4: edit()<\/p>\n<p>Step 5: startEdit()<\/p>\n<p>You goto edit mode and deploy an application after this.<\/p>\n<p>Step 6: deploy an application<\/p>\n<p><strong>Syntax:<\/strong>\u00a0deploy(\u2018appname\u2019,\u2019app path\u2019,targets=\u2019servers\u2019)<\/p>\n<p>Step 7: activate()<\/p>\n<p>Step 8: disconnect()\u00a0\u00a0\u00a0disconnect and come to offline state.<\/p>\n<p>Step 9: exit()\u00a0\u00a0come out to the WLST.<\/p>\n<p><strong>Deploying a file using WLST in different ways:\u00a0<\/strong>In this ways to deploy an application by using script based.<\/p>\n<ol>\n<li><strong>a) java WebLogic.WLST<\/strong><\/li>\n<\/ol>\n<p><strong>Syntax:\u00a0<\/strong>java WebLogic.WLST\u00a0\u00a0path of script<\/p>\n<p>Ex: java WebLogic.WLST\u00a0\u00a0C:\\scripts\\deploy.py<\/p>\n<p><strong>Example script:<\/strong><\/p>\n<p>print \u2018***********************************************************&#8217;<\/p>\n<p>connect(&#8216;WebLogic&#8217;,&#8217;WebLogic&#8217;,&#8217;t3:\/\/localhost:9001&#8242;)<\/p>\n<p>print &#8216;***********************************************************&#8217;<\/p>\n<p>edit()<\/p>\n<p>print &#8216;*************************************************************&#8217;<\/p>\n<p>startEdit()<\/p>\n<p>print &#8216;*************************************************************&#8217;<\/p>\n<p>print &#8216;*************************************************************&#8217;<\/p>\n<p>deploy(&#8216;ShoppingCart&#8217;,&#8217;C:\/course\/labs\/Lab25\/exercise\/applications\/ShoppingCart.war&#8217;,targets=&#8221;ms1,ms2&#8243;)<\/p>\n<p>print &#8216;*************************************************************&#8217;<\/p>\n<p>save()<\/p>\n<p>print &#8216;*************************************************************&#8217;<\/p>\n<p>activate()<\/p>\n<p>print &#8216;************************************************************&#8217;<\/p>\n<p>disconnect()<\/p>\n<ol>\n<li><strong>b)\u00a0\u00a0WLST.cmd\u00a0\u00a0script path<\/strong><\/li>\n<\/ol>\n<p><strong>Syntax:<\/strong>\u00a0WLST.cmd\u00a0\u00a0script path<\/p>\n<p>Ex: WLST.cmd\u00a0\u00a0\u00a0C:\\scripts\\deploy.py<\/p>\n<p>3) WLST.cmd<\/p>\n<p><strong>Syntax:\u00a0<\/strong>WLST.cmd<\/p>\n<p>Wls:\/offline&gt; execfile(\u2018C:\\scripts\\deploy.py\u2019)<\/p>\n<p><strong>iii) Side by Side Deployment:\u00a0\u00a0<\/strong>Using side by side deployment strategy, the user can experience how to use the WebLogic server to re-deploy a new version of production application with out interrupting the availability of the application to new client request. The way the new client gets connected to the new version of the application and the previous version of the application is still in use by the older clients and gets retrived after the client disconnects.<\/p>\n<p>Steps :<\/p>\n<p>Step1. Copybenefits.war in new folder and deploy<\/p>\n<p>Step2. setDomainEnv.cmd<\/p>\n<p>Step3: java WebLogic.Deployer\u00a0\u00a0\u2013adminurl\u00a0\u00a0t3:\/\/localhost:7001\u00a0\u00a0\u00a0\u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u2013password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0\u00a0\u2013name\u00a0\u00a0benefits\u00a0\u00a0\u2013source\u00a0path\\benefits.war (E:\\WEBLOGICMETERIAL\\WEBLAB\\DEPLOYMENT\\sidebyside\\new)\u00a0\u00a0\u2013nostage\u00a0\u00a0\u2013targets ms1,ms2\u00a0\u00a0\u2013deploy\u00a0\u00a0\u00a0-appversion version1<\/p>\n<p>Step4.C opybenefits.war into another folder(new_war) and extract<\/p>\n<p>Go to command prompt and goto the path of new_war folder\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2013 jar \u2013xvf benefits.war<\/p>\n<p>Step5: Edit welcome file color:navy replace navy with Color:green<\/p>\n<p>Step:6 Save<\/p>\n<p>Step7: jar\u00a0\u00a0\u2013cvf benefits.war\u00a0\u00a0*(or) jar \u2013cvf benefits.war \u201c.\u201d<\/p>\n<p>Step8: Delete all files except\u00a0\u00a0benefits.war<\/p>\n<p>Step9: now deploy benefits.war<\/p>\n<p>java WebLogic.Deployer\u00a0\u00a0\u2013adminurl\u00a0\u00a0t3:\/\/localhost:7001\u00a0\u00a0\u00a0\u2013username\u00a0\u00a0WebLogic\u00a0\u00a0\u2013password\u00a0\u00a0WebLogic\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2013name\u00a0\u00a0benefits\u00a0\u00a0\u2013source\u00a0path\\benefits.war (E:\\WEBLOGICMETERIAL\\WEBLAB\\DEPLOYMENT\\sidebyside\\new_war)\u00a0\u00a0\u2013nostage\u00a0\u00a0\u2013targets ms1,ms2\u00a0\u00a0\u2013deploy\u00a0\u00a0\u00a0-appversion version2<\/p>\n<p>Step10: Test the application version1 before version2 deploy. Afetr version2 deploy test the application to see the difference. version1 application is in retried state.<\/p>\n<ol>\n<li><strong>IV) Deployment using plan:<\/strong><\/li>\n<\/ol>\n<p><strong>\u00a0<\/strong>Steps:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"6\"><strong>1.<\/strong><\/td>\n<td>Start your administration server and\u00a0managed servers, if not already started. If prompted, enter your domain&#8217;s administrative username and password.<\/td>\n<\/tr>\n<tr>\n<td width=\"6\"><strong>2.<\/strong><\/td>\n<td>Download the\u00a0<a href=\"http:\/\/www.oracle.com\/webfolder\/technetwork\/tutorials\/obe\/fmw\/wls\/10g\/r3\/appdeploy\/deploy\/deploy_plan\/files\/deploy_plan.zip\">deploy_plan.zip<\/a>\u00a0file\u00a0that contains the sample Web application and WLST script listed below:<\/p>\n<p>HRApp.war<br \/>\ndeploy_HRApp.py<\/p>\n<p>Extract and place both files within the same directory on your local file system. This location will be referred to as\u00a0<strong>&lt;APP_HOME&gt;<\/strong>\u00a0in later steps.<\/td>\n<\/tr>\n<tr>\n<td width=\"6\"><strong>3.<\/strong><\/td>\n<td>Open a new command shell. Navigate to the directory\u00a0<strong>&lt;INSTALL_HOME&gt;\/wlserver_10.3\/server\/bin<\/strong>, where\u00a0<strong>&lt;INSTALL_HOME&gt;<\/strong>\u00a0is the location of your Oracle WebLogic Server installation.<\/td>\n<\/tr>\n<tr>\n<td width=\"6\"><\/td>\n<td>4.Execute the\u00a0<strong>setWLSEnv<\/strong>\u00a0script. For example, on Linux, type the following:<\/p>\n<p><strong>source setWLSEnv.sh<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"6\"><strong>5.<\/strong><\/td>\n<td>Change directories to your\u00a0<strong>&lt;APP_HOME&gt;<\/strong>\u00a0folder (the location of the downloaded WLST script and sample application).<\/td>\n<\/tr>\n<tr>\n<td width=\"6\"><strong>6.<\/strong><\/td>\n<td>Execute the\u00a0<strong>deploy_HRApp.py<\/strong>\u00a0script using WLST:<\/p>\n<p><strong>java WebLogic.WLST deploy_HRApp.py<\/strong><\/p>\n<p><strong>Tip:<\/strong>\u00a0If your domain&#8217;s administrative credentials are not\u00a0<strong>admin\/welcome1<\/strong>, you will need to first edit this script file and change these values.<br \/>\n<strong>Tip:<\/strong>\u00a0Make sure you have not locked the administration console prior to running this script.<\/td>\n<\/tr>\n<tr>\n<td width=\"6\"><strong>7.<\/strong><\/td>\n<td>Confirm that the application has been deployed to the ms1 server. Direct a Web browser to the following URL:<\/p>\n<p><a href=\"http:\/\/localhost:7003\/HRApp\"><strong>http:\/\/localhost:7003\/HRApp<\/strong><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Generating a Deployment Plan for an Application:\u00a0<\/strong><\/p>\n<p>Perform the following steps:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"25\"><strong>1.<\/strong><\/td>\n<td>Return to the same command shell used to run the WLST script. Confirm that the current directory is still\u00a0<strong>&lt;APP_HOME&gt;<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>2.<\/strong><\/td>\n<td>Execute the\u00a0<strong>WebLogic.PlanGenerator<\/strong>\u00a0tool on the\u00a0<strong>HRApp.war<\/strong>\u00a0application:<\/p>\n<p><strong>java WebLogic.PlanGenerator -all HRApp.war<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>3.<\/strong><\/td>\n<td>You should receive a message similar to the following:<\/p>\n<p><strong>&lt;Saved configuration for application, HRApp.war&gt;<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Editing a Deployment Plan:\u00a0<\/strong><\/p>\n<p>Perform the following steps:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"25\"><strong>1.<\/strong><\/td>\n<td>Locate the\u00a0<strong>&lt;APP_HOME&gt;\/plan.xml<\/strong>\u00a0file, and open it in a text editor.<\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>2.<\/strong><\/td>\n<td>Locate the following\u00a0<strong>&lt;variable&gt;<\/strong>\u00a0element:<\/p>\n<p><strong>&lt;variable&gt;<br \/>\n&lt;name&gt;WebLogicWebApp_ContextRoots_<em>xxxxxxxxxxxxxx<\/em>&lt;\/name&gt;<br \/>\n&lt;value xsi:nil=&#8221;true&#8221;&gt;&lt;\/value&gt;<\/strong><\/p>\n<p><strong>&lt;\/variable&gt;<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>3.<\/strong><\/td>\n<td>Remove the following text from the\u00a0<strong>&lt;value&gt;<\/strong>\u00a0child element:<\/p>\n<p><strong>xsi:nil=&#8221;true&#8221;<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>4.<\/strong><\/td>\n<td>Set the value of the\u00a0<strong>&lt;value&gt;<\/strong>\u00a0child element to\u00a0<strong>\/HR<\/strong>:<\/p>\n<p><strong>&lt;value&gt;\/HR&lt;\/value&gt;<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>5.<\/strong><\/td>\n<td>Futher down in the file, locate the following\u00a0<strong>&lt;variable-assignment&gt;<\/strong>\u00a0element:<\/p>\n<p><strong>&lt;variable-assignment&gt;<br \/>\n&lt;name&gt;WebLogicWebApp_ContextRoots_<em>xxxxxxxxxxxxxx<\/em>&lt;\/name&gt;<br \/>\n&lt;xpath&gt;\/WebLogic-web-app\/context-root&lt;\/xpath&gt;<br \/>\n&lt;\/variable-assignment&gt;<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>6.<\/strong><\/td>\n<td>Add a new\u00a0<strong>&lt;operation&gt;<\/strong>\u00a0child element to this\u00a0<strong>&lt;variable-assignment&gt;<\/strong>:<\/p>\n<p>&lt;variable-assignment&gt;<br \/>\n&lt;name&gt;WebLogicWebApp_ContextRoots_<em>xxxxxxxxxxxxxx<\/em>&lt;\/name&gt;<br \/>\n&lt;xpath&gt;\/WebLogic-web-app\/context-root&lt;\/xpath&gt;<br \/>\n<strong>&lt;operation&gt;replace&lt;\/operation&gt;<\/strong><br \/>\n&lt;\/variable-assignment&gt;<\/td>\n<\/tr>\n<tr>\n<td width=\"25\"><strong>7.<\/strong><\/td>\n<td>Save your changes.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Updating an Application with a Deployment Plan:<\/strong><\/p>\n<p>Perform the following steps:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"28\"><strong>1.<\/strong><\/td>\n<td width=\"601\">Launch a Web browser and access your domain&#8217;s administration console. The default port is 7001:<a href=\"http:\/\/localhost:7001\/console\"><strong>http:\/\/localhost:7001\/console<\/strong><\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>2.<\/strong><\/td>\n<td width=\"601\">Log into the console using your domain&#8217;s administrative username and password.<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>3.<\/strong><\/td>\n<td width=\"601\">In the Change Center panel, click\u00a0<strong>Lock &amp; Edit<\/strong>:<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>4.<\/strong><\/td>\n<td width=\"601\">In the Domain Structure panel, click\u00a0<strong>Deployments<\/strong>:<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>5.<\/strong><\/td>\n<td width=\"601\">Select the checkbox for the\u00a0<strong>HRApp<\/strong>\u00a0application, and click the\u00a0<strong>Update<\/strong>\u00a0button:<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>6.<\/strong><\/td>\n<td width=\"601\">Click the\u00a0<strong>Change Path<\/strong>\u00a0button associated with the\u00a0<strong>Deployment Plan Path<\/strong>\u00a0field :<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>7.<\/strong><\/td>\n<td width=\"601\">Select the radio button for your new\u00a0<strong>plan.xml<\/strong>\u00a0file, and click\u00a0<strong>Next<\/strong>. If necessary, use the hyperlinks next to the\u00a0<strong>Current Location<\/strong>\u00a0field to browse to your\u00a0<strong>&lt;APP_HOME&gt;<\/strong>\u00a0directory:<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>8.<\/strong><\/td>\n<td width=\"601\">Click the\u00a0<strong>Finish<\/strong>\u00a0button.<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><strong>9.<\/strong><\/td>\n<td width=\"601\">In the Change Center panel, click the\u00a0<strong>Activate Changes<\/strong>\u00a0button:<\/td>\n<\/tr>\n<tr>\n<td width=\"28\"><\/td>\n<td width=\"601\">Verify the new context path of the application. Direct your Web browser to the following<a href=\"url:http:\/\/localhost:7003\/HR\">URL:<strong>http:\/\/localhost:7003\/HR<\/strong><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ol>\n<li><strong>V)<\/strong><strong>wl(WebLogic)deploy Ant task:<\/strong><\/li>\n<\/ol>\n<p>Step1: Create\u00a0\u00a0.xml file<\/p>\n<p>Step2: write\u00a0\u00a0script in it.<\/p>\n<p>Step3: execute command\u00a0\u00a0ant\u00a0\u00a0deploy {if we save the file name as build.xml}<\/p>\n<p>Ant\u00a0\u00a0\u2013f\u00a0\u00a0filename.xml {if the file name is created with filename.xml}<\/p>\n<ol>\n<li><strong>VI) Two-Phase Deployment:<\/strong>The new two-phase deployment protocol helps to maintain domain consistency. In previous versions of WebLogic Server, when you deployed an application, the administration server sent a copy of the application file(s) to all the targeted servers, which then loaded the application. If deployment to any of those servers failed or partially failed, the entire deployment&#8217;s state across its target servers became inconsistent.<\/li>\n<\/ol>\n<p>The two-phase model makes inconsistent deployment states in clusters less likely by confirming the success of the prepare phase before deploying the application on any targeted servers. A deployment that fails during the prepare phase will not enter the activation phase.<\/p>\n<p><strong>Prepare Phase:\u00a0<\/strong>The prepare phase of deployment, the first phase, distributes or copies files and prepares the application and its components for activation, validating them and performing error checks on them. The purpose of the prepare phase is to ensure that the application and its components are in a state in which they can be reliably deployed.<\/p>\n<p><strong>Activate Phase:\u00a0<\/strong>The second phase, the activate phase, is the actual deployment, or activation, of the application and its component with the relevant server subsystem. After the activate phase, the application is made available to clients.<\/p>\n<p><strong>JDBC : Java Database Connectivity.<\/strong><\/p>\n<p>__________________________________________________________________________________________________________<\/p>\n<p><strong>JDBC:\u00a0<\/strong>Java database connectivity (JDBC) is the JavaSoft specification of a standard application programming interface (API) that allows Java programs to access database management systems. The JDBC API consists a set of interfaces and classes written in the Java programming language.\u00a0\u00a0Using these standard interfaces and classes, programmers can write applications that connect to databases, send queries written in structured query language (SQL), and process the results.<\/p>\n<p>The JDBC API is consistent with the style of the core Java interfaces and classes, such as java.lang and java.awt. The following table describes the interfaces, classes, and exceptions (classes thrown as exceptions) that make up the JDBC API. In the table, interfaces belonging to the javax.sql package are extensions to the standard JDBC interfaces and are contained in the Java 2 SDK, Enterprise Edition.<\/p>\n<p><strong>JDBC Architecture:<\/strong><\/p>\n<p><strong>JDBC Drivers:\u00a0<\/strong>There are four types of drivers in JDBC.<\/p>\n<p><strong>1)\u00a0Type-1 Driver:(<\/strong>JDBC-ODBC\u00a0\u00a0bridge driver)<\/p>\n<ol>\n<li>This driver receives any JDBC calls and sends then to ODBC driver.<\/li>\n<li>ODBC driver understand these calls and communicates with the database library provide by the vendor.<\/li>\n<li>ODBC driver and vendor database library must present on the client machine.<\/li>\n<\/ol>\n<p><strong>2)\u00a0Type-2 Driver:<\/strong>\u00a0(Native API-partly java driver)<\/p>\n<ol>\n<li>It converts JDBC calls into database specific calls with the help of vendor database library.<\/li>\n<li>It communicates directly with the database server; it requires that some binary code to be present on the client machine.<\/li>\n<\/ol>\n<p><strong>3)\u00a0Type-3 Driver:<\/strong>\u00a0(Net protocol-pure java driver)<\/p>\n<ol>\n<li>It follows three-tiered approach where by the JDBC database requests are passed through the network to a middle-tier server.<\/li>\n<li>The middle-tier server translates the request to the database specific library and then sends it to the database server.<\/li>\n<li>The database server then executes the request and gives back to the result.<\/li>\n<\/ol>\n<p><strong>4)Type-4 Driver:(<\/strong>\u00a0Net protocol-pure java driver )<\/p>\n<ol start=\"4\">\n<li>It converts JDBC calls into the vendor-specific DBMS protocol. So that client applications can communicate directly database server.<\/li>\n<li>This driver completely implemented in java to archive platform independent.<\/li>\n<\/ol>\n<p>In JDBC contains two types of Architectures.<\/p>\n<p><strong>1) Two-Tier Arcitecture:\u00a0\u00a0<\/strong>In two-tier java application communicates directly with the DBMS.<\/p>\n<p>A JDBC driver is needed that can communicate directly with the DBMS. So This is Client\/Server configuration(Architecture)<\/p>\n<p><strong>Multi-tier Architecture:\u00a0<\/strong>In multi-tier commands are sent to a middle-tier of services which then send the commands. The DBMS process commands sends the results back to middle-tier, which then sends them to client.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Data Source:\u00a0<\/strong>A Data Source object provides a way for a JDBC client to obtain a database connection from a connection pool. It is used to store the WLST JNDI tree, it can support transactions and it is also associated with the connection pool.<\/p>\n<p><strong>What is JNDI(Java Naming Directory Interface):<\/strong><\/p>\n<p>The Java Naming and Directory Interface (JNDI) is an application programming interface (API) for accessing different kinds of naming and directory services. JNDI is not specific to a particular naming or directory service, it can be used to access many different kinds of systems including file systems, distributed objects systems like CORBA, Java RMI, and EJB; and directory services like LDAP, Novell NetWare, and NIS+.<\/p>\n<p><strong>Why JNDI:\u00a0<\/strong>In WebLogic Server, JNDI serves as a repository and lookup service for J2EE objects including:<\/p>\n<ol>\n<li>EJB home stubs<\/li>\n<li>JDBC DataSources<\/li>\n<li>JMS connection factories, queues and topics<\/li>\n<li>RMI stubs<\/li>\n<\/ol>\n<p><strong>JNDI Root(Tree):<\/strong><\/p>\n<p><strong>Connection pool:\u00a0<\/strong>A connection pool is a collection of database connections that is maintained by memory. That can be reused. Once an application has finished its physical connection the connection is recycled rather than beginning destroyed.<\/p>\n<p>Connection pools:<\/p>\n<ol>\n<li>Are created at WebLogic server.<\/li>\n<li>Can be administrated using the Administration console.<\/li>\n<li>Can be dynamically resized to accommodate increasing load.<\/li>\n<\/ol>\n<p><strong>Benefits of DataSource And Connection pool:<\/strong><\/p>\n<ol>\n<li>Time and overhead are saved by using an existing database connection<\/li>\n<li>Connection information is managed in one location in the Administration Console<\/li>\n<li>The number of connections to a database can be controlled<\/li>\n<li>The DBMS can be changed without the application developer having to modify underlying code<\/li>\n<li>A connection pool allows an application to \u201cborrow\u201d a DBMS connection.<\/li>\n<\/ol>\n<p><strong>JDBC DtataSource Architecture:<\/strong><\/p>\n<p><strong>How to use DataSource:<\/strong><\/p>\n<p>A client retrieves a Data Source through JNDI look up and uses it to obtain a database connection.<\/p>\n<p><strong>Process :<\/strong><\/p>\n<ol>\n<li>Client will look up for the JNDI , once jndi is identified it will return database.<\/li>\n<li>Data source will get connection from connection pool.<\/li>\n<li>It will access the database with that connection.<\/li>\n<\/ol>\n<p><strong>JDBC\u00a0\u00a0&#8211; To run point base Database:<\/strong><\/p>\n<p>Step1: Copy database files from c:\\student\\course\\work\\database\\ and paste in c:\\bea\\WebLogic91\\common\\eva1\\pointbase\\database\\<\/p>\n<p>and edit startpointbase c:\\bea\\WebLogic91\\common\\eva1\\pointbase\\tools\\startpointbase.cmd<\/p>\n<p>Step2:\u00a0\u00a0Edit\u00a0\u00a0Startpointbase<\/p>\n<p>Remove &#8220;%SAPLES_HOME%\\domain\\wl_server\\pointbase.ini&#8221; and paste \u201cc:\\bea\\WebLogic91\\common\\eva1\\pointbase\\tools\u201d<\/p>\n<p>and then save it.<\/p>\n<p>Step3: Run startpointbase script.<\/p>\n<p><strong>configuredatasoure in admin console and test connection:<\/strong><\/p>\n<p>Create a DataSource with the following specifications:<\/p>\n<p>Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dizzyworldDS<\/p>\n<p>JNDI Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dizzyworldDS<\/p>\n<p>Database Type:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PointBase<\/p>\n<p>Database Driver:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*PointBase\u2019sDriver(Type 4)versions:4.x,5.x<\/p>\n<p>Database Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0HRDATABASE<\/p>\n<p>Host Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost<\/p>\n<p>Port:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a09092<\/p>\n<p>Database User Name:PBPUBLIC<\/p>\n<p>Password:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PBPUBLIC<\/p>\n<p>Initial Capacity:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a05<\/p>\n<p>Maximum Capacity:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a015<\/p>\n<p>Capacity Increment:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a05<\/p>\n<p>Login Delay:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01<\/p>\n<p>Target:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dizzy1<\/p>\n<p>deploy an application testds.war from lab14and test for database connectivity.<\/p>\n<p><strong>Steps for creating data source and connection pool in console:<\/strong><\/p>\n<p>Step1: click on services<\/p>\n<p>2: click on JDBC<\/p>\n<p>3: click on Data source<\/p>\n<p>4: click on Lock And Edit<\/p>\n<p>5: click on New<\/p>\n<p>6: Enter JDBC datasource properties<\/p>\n<p>Name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: Datasource Name<\/p>\n<p>JNDI Name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: JNDI Name<\/p>\n<p>Database Type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: database name<\/p>\n<p>Driver Type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: Select Type-4 driver Non-Xa<\/p>\n<p>\u00e0\u00a0Next<\/p>\n<p>7: Select Transaction options<\/p>\n<ol>\n<li>Select<\/li>\n<li>support global transaction<\/li>\n<li>Select one-phase commit<\/li>\n<\/ol>\n<p>\u00e0\u00a0Next<\/p>\n<p>8: Create a New DataSource<\/p>\n<p>Database Name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: Database name<\/p>\n<p>HostName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: Hostname<\/p>\n<p>PortNumber\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: Portnumber<\/p>\n<p>DB User Name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: username<\/p>\n<p>DB password\u00a0\u00a0: password<\/p>\n<p>Conformpassword\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: password<\/p>\n<p>\u00e0Next<\/p>\n<p>9: Display connection properties<\/p>\n<p>10: Test configuration<\/p>\n<p>11: Display connection properties<\/p>\n<p>\u00e0Connection successes<\/p>\n<p>\u00e0Next<\/p>\n<p>12: Select Targets (Admin or cluster(ms1&amp;ms2))<\/p>\n<p>\u00e0Finish<\/p>\n<p>\u00e0Activate changes<\/p>\n<p><strong>Test DataSource:<\/strong><\/p>\n<p><strong>Cluster JDBC (or) MultiDataSource:<\/strong>\u00a0A\u00a0multi data source\u00a0is an abstraction around a group of data sources that provides load balancing or failover processing between the data sources associated with the multi data source. Multi data sources are bound to the JNDI tree or local application context just like data sources are bound to the JNDI tree.<\/p>\n<p><strong>Multi Data Source Algorithms:\u00a0<\/strong><\/p>\n<p><strong>1)Failover:<\/strong>\u00a0Connections requests are sent to the first data source in the list, if the request fails the request is sent to the next data source, in the list and so forth, the process is represented untial a valid connection is obtained or until the end of the list is reached in which case an exception is thrown.<\/p>\n<p><strong>2) Load balancing:<\/strong>\u00a0The multi data source distributes connection requests evenly to its number data sources, which algorithm the multidata source also provides failover processing. That is if a request fails the multi data source sends to the requests to the next data source in the list until a valid connection is obtain, or until the end of the list is reached, in which case an exception is thrown.<\/p>\n<p><strong>Diff b\/w Xa and Non-Xa\u00a0\u00a0Datasource<\/strong>:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"310\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Xa datasource<\/p>\n<p>1)\u00a0\u00a0It allows global transaction that my be multiple resources.<\/p>\n<p>2) It involves a co-ordinating transaction manager\u00a0with one or more databases in a single global transaction.<\/p>\n<p>3) It comes\u00a0\u00a0from the X\/Open group specification on distributed, global transactions.<\/td>\n<td width=\"335\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Non-Xa Datasource<\/p>\n<p>1)\u00a0\u00a0It allows single transaction that my be single resources.<\/p>\n<p>2) there is\u00a0no transaction coordinator, and it is a single resource is doing all its transaction work itself.<\/p>\n<p>3)\u00a0It comes from\u00a0\u00a0Servlet or EJB or plain old JDBC in a Java application talking to a single database.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>JMS(JavaMessagingService)<\/strong><\/p>\n<p><strong>________________________________________________________________________________________________________<\/strong><\/p>\n<p><strong>JMS:\u00a0<\/strong>The\u00a0<strong>Java Message Service<\/strong>\u00a0(<strong>JMS<\/strong>)\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Application_Programming_Interface\">API<\/a>\u00a0is a\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_(programming_language)\">Java<\/a>\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Message_Oriented_Middleware\">Message Oriented Middleware<\/a>\u00a0(MOM) API for sending messages between two or more\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Client_(computing)\">clients<\/a>. JMS is a part of the\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_Platform,_Enterprise_Edition\">Java Platform Enterprise Edition<\/a>. It is a messaging standard that allows application components based on the Java 2 Platform Enterprise Edition (J2EE) to create, send, receive, and read messages. It allows the communication between different components of a\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Distributed_computing\"><em>distributed application<\/em><\/a>\u00a0to be\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Loose_coupling\">loosely coupled<\/a>, reliable, and asynchronous.<\/p>\n<p>The following are JMS elements:<\/p>\n<p><strong>JMS provider:\u00a0<\/strong>An implementation of the JMS interface for a\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Message_Oriented_Middleware\">Message Oriented Middleware<\/a>\u00a0(MOM). Providers are implemented as either a Java JMS implementation or an adapter to a non-Java MOM.<\/p>\n<p><strong>JMS client:\u00a0<\/strong>An application or process that produces and\/or receives messages.<\/p>\n<p><strong>JMS producer\/publisher:\u00a0<\/strong>A JMS client that creates and sends messages.<\/p>\n<p><strong>JMS consumer\/subscriber:\u00a0<\/strong>A JMS client that receives messages.<\/p>\n<p><strong>JMS message:\u00a0<\/strong>An object that contains the data being transferred between JMS clients.<\/p>\n<p><strong>JMS queue:\u00a0<\/strong>A staging area that contains messages that have been sent and are waiting to be read. Note that, contrary to what the name<em>queue<\/em>\u00a0suggests, messages have to be delivered in the order sent A JMS queue only guarantees that each message is processed only once.<\/p>\n<p><strong>JMS topic:\u00a0<\/strong>A distribution mechanism for publishing messages that are delivered to multiple subscribers<\/p>\n<p>The JMS API supports two models:<\/p>\n<ol>\n<li>Point-to-point<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Publish\/subscribe\">Publish and subscribe<\/a><\/li>\n<\/ol>\n<p><strong>1) Point-to-Point:<\/strong>\u00a0In the\u00a0<strong>point-to-point model<\/strong>, a\u00a0<em>sender<\/em>\u00a0posts messages to a particular queue and a\u00a0<em>receiver<\/em>\u00a0reads messages from the queue. Here, the sender knows the destination of the message and posts the message directly to the receiver&#8217;s queue. This model is characterized by the following:<\/p>\n<ol>\n<li>Only one consumer gets the message.<\/li>\n<li>The producer does not have to be running at the time the consumer consumes the message, nor does the consumer need to be running at the time the message is sent.<\/li>\n<li>Every message successfully processed is acknowledged by the consumer.<\/li>\n<\/ol>\n<p>2) The\u00a0<strong>publish\/subscribe model<\/strong>\u00a0supports publishing messages to a particular message topic.\u00a0<em>Subscribers<\/em>\u00a0may register interest in receiving messages on a particular message topic. In this model, neither the\u00a0<em>publisher<\/em>\u00a0nor the subscriber knows about each other. A good analogy for this is an anonymous bulletin board. The following are characteristics of this model:<\/p>\n<ol>\n<li>Multiple consumers (or none) will receive the message.<\/li>\n<li>There is a timing dependency between publishers and subscribers. The publisher has to create a message topic for clients to subscribe. The subscriber has to remain continuously active to receive messages, unless it has established a durable subscription. In that case, messages published while the subscriber is not connected will be redistributed whenever it reconnects.<\/li>\n<\/ol>\n<p>Using Java, JMS provides a way of separating the application from the transport layer of providing data. The same Java\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Class_(computer_science)\">classes<\/a>\u00a0can be used to communicate with different JMS providers by using the\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_Naming_and_Directory_Interface\">JNDI<\/a>\u00a0information for the desired provider. The classes first use a\u00a0<em>connection factory<\/em>\u00a0to connect to the queue or topic, and then use populate and send or publish the messages. On the receiving side, the clients then receive or subscribe to the messages.<\/p>\n<p><strong>Difference b\/w Queue and Topic:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"294\"><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Queue<\/strong><\/td>\n<td width=\"310\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Topic<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"294\">1) In queues, one message can be consumed by only one client.<\/p>\n<p>2) Queue represent Point-To-Point model.<\/p>\n<p>3) queue is used to send one to one system.<\/p>\n<p>4) In queue the messages are send to FIFO(First in first out) order.<\/td>\n<td width=\"310\">1) In the topics, one message can be consumed by many clients.<\/p>\n<p>2) Topic represent Public and Subscribe\u00a0\u00a0model.<\/p>\n<p>3) topic is used to\u00a0send more than one system at\u00a0a time.<\/p>\n<p>4) In Topic\u00a0\u00a0the messages are send to LIFO(Last in first out) order.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Distributed Queue :\u00a0<\/strong>Many producers can serialize messages to multiple receivers in a queue.<\/p>\n<p><strong>Distributed Topic :\u00a0<\/strong>Publishing and subscribing to a topic decouples producers from consumers.<\/p>\n<p><strong>Difference b\/w Distributed Queue and Distributed Topic:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"304\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Distributed Queue<\/strong><\/p>\n<p>1) A Distributed Queues are allow you to retrieve a connection to any of the Queues across a cluster by using the Global JNDI name.<\/p>\n<p>2) It seems one of the main pieces of functionality Distributed Queue gives you is load balanced connections across multiple managed servers.<\/p>\n<p>3) The members of the unit are usually distributed across multiple servers within a cluster, with each queue member belonging to a separate JMS server.<\/p>\n<p>4)A distributed queue is a set of physical JMS queue members.<\/td>\n<td width=\"347\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Distributed Topic<\/strong><\/p>\n<p>1) A distributed topic can be used to create aTopicPublisher\u00a0and\u00a0TopicSubscriber.<\/p>\n<p>2) The topic members can be located anywhere but must all be served either by a single WebLogic Server or any number of servers in a cluster.<\/p>\n<p>3) A distributed topic is a set of physical JMS topic members.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>JMS Architecture:<\/strong><\/p>\n<p><strong>Connection Factory:\u00a0<\/strong>A ConnectionFactory object encapsulates a set of connection configuration parameters that has been defined by an administrator. A client uses it to create a connection with a JMS provider.<\/p>\n<ol>\n<li>It encapsulates connection configuration information.<\/li>\n<li>It is used to create pre-configured connections.<\/li>\n<li>It stored in JNDI.<\/li>\n<li>Can be targeted server or cluster.<\/li>\n<li>It\u00a0\u00a0supports concurrent use.<\/li>\n<\/ol>\n<p>\u00e0\u00a0The default connection factory that is bounded in JNDI to WebLogic is\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WebLogic.jms.ConnectionFactory<\/p>\n<p><strong>Threshold and a Quota:\u00a0<\/strong>A threshold and a quota can be set for Server and Destination objects.<\/p>\n<p>A quota is a limit defined for JMS administered objects; it includes these values:<\/p>\n<ol>\n<li>The maximum number of bytes that can be stored<\/li>\n<li>The maximum number of messages that can be stored<\/li>\n<\/ol>\n<p>A threshold is a limit that triggers message paging, flow control and logged warnings using:<\/p>\n<ol>\n<li>Upper and lower values for the number of bytes<\/li>\n<li>Upper and lower values for the number of messages<\/li>\n<\/ol>\n<p><strong>Durable Subscribers and Subscriptions:<\/strong><\/p>\n<ol>\n<li>Durable subscribers register durable subscriptions to guarantee message delivery even if subscribers are inactive.<\/li>\n<li>A subscriber is considered active if the Java object that represents it exists.<\/li>\n<li>By default, subscribers are non-durable.<\/li>\n<li>Administrators configure:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2013 Where messages are persisted\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2013 Persistent connection factories and destinations<\/li>\n<\/ol>\n<p><strong>Persistent store:<\/strong>\u00a0The persistent store provides a built-in, high-performance storage solution for WebLogic Server subsystems and services that require persistence. For example, it can store persistent JMS messages or temporarily store messages sent using the Store-and-Forward feature. The persistent store supports persistence to a file-based store or to a JDBC-enabled database.<\/p>\n<p>There are two types of\u00a0\u00a0persistent mechanisms:<\/p>\n<p>1) persistent\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02)non-persistent<\/p>\n<p>A persistent message is guaranteed to be delivered\u00a0once-and-only-once. The message cannot be lost due to a JMS provider failure and it must not be delivered twice. It is not considered sent until it has been safely written to a file or database. WebLogic JMS writes persistent messages to a WebLogic persistent store (disk-base file or JDBC-accessible database) that is optionally targeted by each JMS server during configuration.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0A Non-persistent messages are not stored. They are guaranteed to be delivered\u00a0at-most-once, unless there is a JMS provider failure, in which case messages may be lost, and must not be delivered twice. If a connection is closed or recovered, all non-persistent messages that have not yet been acknowledged will be redelivered. Once a non-persistent message is acknowledged, it will not be redelivered.<\/p>\n<p><strong>When to Use Persistent Messaging:\u00a0<\/strong>\u00a0Persistent messaging permits messages in memory to be written out to a persistent store.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Configure persistent messaging if:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2013 Development requires durable subscriptions (use durablesubscribers in the application)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u2013 You require that in-progress messages persist across server restarts<\/p>\n<p><strong>How a Durable Subscription Works:<\/strong><\/p>\n<p>When the client becomes active again, its ID is used to retrieve and redeliver messages.<\/p>\n<p><strong>Configure a Durable Subscription:<\/strong><\/p>\n<p>To configure durable subscriptions, an administrator must:<\/p>\n<p>\u2013 Create and configure a JMS store<\/p>\n<p>\u2013 Configure connection factories or destinations as persistent<\/p>\n<p>\u2013 Associate the JMS store with the JMS Server<\/p>\n<p>The JMS store can be configured to use either:<\/p>\n<p>\u2013 A file store<\/p>\n<p>\u2013 A JDBC store (a connection pool)<\/p>\n<p><strong>Configure JMS server through console:<\/strong><\/p>\n<p>The following steps are:<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong>Step1:\u00a0\u00a0Click on JMS Server<\/p>\n<p>Step2:\u00a0\u00a0Click on Lock And Edit<\/p>\n<p>Step 3:\u00a0\u00a0Click on New<\/p>\n<p>Step 4:\u00a0\u00a0Enter JMS server Properties<\/p>\n<p>Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0JMS server Name<\/p>\n<p>Persistent Store:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0none<\/p>\n<p>&#8212;&#8212;\u00e0\u00a0Next<\/p>\n<p>Step 5: Select targets<\/p>\n<p>Target :\u00a0\u00a0server name(ms1)<\/p>\n<p>&#8212;-\u00e0\u00a0Finish<\/p>\n<p><strong>Configure JMS Module:<\/strong><\/p>\n<p>The following steps are:<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong>Step1:\u00a0\u00a0Click on JMS Modules<\/p>\n<p>Step2: Click on Lock And Edit<\/p>\n<p>Step 3:\u00a0\u00a0Click on New<\/p>\n<p>Step 4:\u00a0\u00a0Enter the following properties<\/p>\n<p>Name :\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0JMS Module Name<\/p>\n<p>Descriptor File Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Filename<\/p>\n<p>Location Domain:<\/p>\n<p>&#8212;-\u00e0\u00a0Next<\/p>\n<p>Step5: Select Target :\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Cluster<\/p>\n<p>&#8212;&#8211;\u00e0Next<\/p>\n<p>Step 6: Select would you like to add Resources of this JMS System<\/p>\n<p>&#8212;&#8212;\u00e0Finish<\/p>\n<p><strong>Configure JMSQueue:<\/strong><\/p>\n<p>The following steps are:<\/p>\n<p>Step1: Click on JMS Module<\/p>\n<p>Step 2: Click on JMS Module Name<\/p>\n<p>Step 3: Click on Lock And Edit<\/p>\n<p>Step 4: Click on New<\/p>\n<p>Step 5: Select Queue<\/p>\n<p>Step 6: Description Properties<\/p>\n<p>Name:\u00a0QueueName<\/p>\n<p>JNDI Name: JNDI Name<\/p>\n<p>Template:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0None<\/p>\n<p>&#8211;\u00e0\u00a0Next<\/p>\n<p>Step 7: Select Targets\u00a0\u00a0JMS Server<\/p>\n<p>&#8212;-\u00e0\u00a0Finish<\/p>\n<p><strong>Configure JMSTopic:<\/strong><\/p>\n<p>The following steps are:<\/p>\n<p>Step1: Click on JMS Module<\/p>\n<p>Step 2: Click on JMS Module Name<\/p>\n<p>Step 3: Click on Lock And Edit<\/p>\n<p>Step 4: Click on New<\/p>\n<p>Step 5: Select Topic<\/p>\n<p>Step 6: Description Properties<\/p>\n<p>Name:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TopicName<\/p>\n<p>JNDI Name:\u00a0\u00a0\u00a0\u00a0JNDI Name<\/p>\n<p>Template:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0None<\/p>\n<p>&#8211;\u00e0\u00a0Next<\/p>\n<p>Step 7: Select Targets\u00a0\u00a0JMS Server<\/p>\n<p>&#8212;-\u00e0\u00a0Finish<\/p>\n<p><strong>Delete struck messages from the queue<\/strong>:<\/p>\n<p>The following steps are:<\/p>\n<p>Step1: Click on JMS Module<\/p>\n<p>Step 2: Click on JMS Module Name<\/p>\n<p>Step 3: Click on JMS Queue<\/p>\n<p>Step 4: Click on Monitoring<\/p>\n<p>Step 5: select the queue<\/p>\n<p>Step 6: Click on show messages<\/p>\n<p>Step 7: Select message ID<\/p>\n<p>Step 8: Delete<\/p>\n<p>Step 9: Finish<\/p>\n<p><strong>Check the pending messages in a queue:<\/strong><\/p>\n<p>The following steps are:<\/p>\n<p>Step1: Click on JMS Server<\/p>\n<p>Step 2: Click on JMS Server Name<\/p>\n<p>Step 3: Click on monitoring<\/p>\n<p>Step 4: Click on Active destrination<\/p>\n<p>-\u00e0\u00a0To check the pending messages in queue.<\/p>\n<p><strong>Apache Webserver<\/strong><\/p>\n<p><strong>__________________________________________________________________________________________________________<\/strong><\/p>\n<p><strong>Install the apache web server in Linux:<\/strong><\/p>\n<p>Step 1: first unzip the file on zip file<\/p>\n<p>Gunzip\u00a0\u00a0\u00a0\u00a0httpd-2.0.55.gz<\/p>\n<p>Step 2: tar file is open. Un tar that file<\/p>\n<p>Tar \u2013xvf\u00a0\u00a0httpd-2.o.55.tar<\/p>\n<p>The file will display\u00a0\u00a0\u00a0httpd-2.o.55<\/p>\n<p>Step 3: cd\u00a0\u00a0httpd-2.0.55<\/p>\n<p>.\/configure\u2014prefix= \/home\/apache2<\/p>\n<p>.\/make<\/p>\n<p>.\/make install<\/p>\n<p>The install is completed.<\/p>\n<p><strong>Check Apache servers running processes:<\/strong><\/p>\n<p>Ps\u00a0\u00a0-ef | grephttpd | grep\u00a0\u00a0-v grep<\/p>\n<p>1) To start apache &#8211; httpd \u2013k start<\/p>\n<p>2) To stop apache \u2013 httpd \u2013k stop<\/p>\n<p>3) To Restart apache \u2013 httpd \u2013k restart<\/p>\n<p>Program files \/ Apache software foundation \/ Apache 2.2\/bin folder in<\/p>\n<ol>\n<li>i) Main configuration file in Apache is\u00a0\u00a0\u201chttpd.conf\u201d<\/li>\n<li>ii) Additional config files \u2013\u201cExtra\u201d folder<\/li>\n<\/ol>\n<p>4) Apache default port no \u2013 80<\/p>\n<p>5) Apache ssl default port number \u2013 443<\/p>\n<p>6) To check the syntax \u2013 httpd\u00a0\u00a0-t<\/p>\n<p>7) All html documents \u2013 \u201chtdocs\u201d folder<\/p>\n<p><strong>The Apache Directory Structure<\/strong><strong>:\u00a0<\/strong>The Apache software is typically distributed into the following subdirectories:<\/p>\n<table>\n<tbody>\n<tr>\n<td>cgi-bin<\/td>\n<td>This is where many, if not all, of the interactive programs that you write will reside. These will be programs written with Perl, Java, or other programming languages.<\/td>\n<\/tr>\n<tr>\n<td>Conf<\/td>\n<td>This directory will contain your configuration files.<\/td>\n<\/tr>\n<tr>\n<td>htdocs<\/td>\n<td>This directory will contain your actual hypertext documents. This directory will typically have many subdirectories. This directory is known as the DocumentRoot.<\/td>\n<\/tr>\n<tr>\n<td>Icons<\/td>\n<td>This directory contains the icons (small images) that Apache will use when displaying information or error messages.<\/td>\n<\/tr>\n<tr>\n<td>images<\/td>\n<td>This directory will contain the image files (GIF or JPG) that you will use on your web site.<\/td>\n<\/tr>\n<tr>\n<td>Logs<\/td>\n<td>This directory will contain your log files &#8211; the access_log and error_log files.<\/td>\n<\/tr>\n<tr>\n<td>Sbin<\/td>\n<td>Use nogroup<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Main Configuration file in apache:<\/strong><\/p>\n<ol>\n<li>The Apache software is configured by changing settings in several text files in the Apache conf (configuration) directory.<\/li>\n<li>There are four configuration files used by Apache. The main configuration file is usually called\u00a0<strong>httpd.conf<\/strong>.<\/li>\n<\/ol>\n<table>\n<tbody>\n<tr>\n<td>access.conf<\/td>\n<td>This is The security configuration file. It Contains instructions about which users should be able to access.\u00a0\u00a0And\u00a0\u00a0what information.<\/td>\n<\/tr>\n<tr>\n<td>httpd.conf<\/td>\n<td>This is The server configuration file. It Typically contains directives that affect how the server runs, such as user and group ID&#8217;s it should use when running, the location of other files, etc.<\/td>\n<\/tr>\n<tr>\n<td>srm.conf<\/td>\n<td>This is The resource configuration file. It Contains directives that define where documents are found, how to change addresses to filenames, etc.<\/td>\n<\/tr>\n<tr>\n<td>mime.types<\/td>\n<td>A configuration file that relates filename extensions to file types.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Apache root:<\/strong>\u00a0On an Apache HTTP Server, you can control where the server looks for live HTML documents; in other words, your web pages or content management system.<\/p>\n<p><strong>DocumentRoot:\u00a0<\/strong>. The directory will typically have many subdirectories. This directory is known as the DocumentRoot. The documentRoot directory in apache is htdocs.<\/p>\n<p><strong>Server root:\u00a0Server Root Directory\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/strong>Syntax:\u00a0ServerRoot A&lt;path&gt;&lt; tt=&#8221;&#8221;&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Example:\u00a0ServerRoot \/sw\/pkg\/apache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Since: Apache 1.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/path&gt;&lt;&gt;<\/p>\n<p>This directive sets the root directory in which the server resides. Typically, it contains the subdirectories\u00a0conf\/\u00a0and\u00a0logs\/. Relative paths for other configuration files are taken as relative to this directory. This directive can be also overridden from the command line via the\u00a0-d\u00a0option.<\/p>\n<p><strong>SSL(Security Socket Layer):<\/strong><\/p>\n<p><strong>_____________________________________________________________________________<\/strong><\/p>\n<ol>\n<li><strong>I) Configure SSL in WebLogic:<\/strong><\/li>\n<li><strong>Generating the certificate:<\/strong><\/li>\n<\/ol>\n<p>The following steps are:<\/p>\n<p>Step1: Open a command prompt and set the environment by running the\u00a0<strong>setDomainEnv\u00a0<\/strong>script.<\/p>\n<p>(\u00a0C:\\bea9\\user_projects\\domains\\ram_domain\\bin\\setDomainEnv.cmd)<\/p>\n<p>Step2: Generate the private \u2013 public key pair. For demonstration we would\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0use\u00a0<strong>keytool\u00a0<\/strong>java utility to do so. However we can use other utilities like openssl etc.<\/p>\n<p>keytool\u00a0\u00a0-genkey\u00a0\u00a0-alias mykey\u00a0\u00a0\u00a0-keyalg RSA\u00a0\u00a0\u00a0-keysize 2048\u00a0\u00a0\u00a0-keystore\u00a0\u00a0identity.jks<\/p>\n<p>Step3: Generate a\u00a0<strong>Certificate Signing Request (CSR)<\/strong>\u00a0and send it to Certifying Authority.<\/p>\n<p>keytool\u00a0\u00a0-selfcert\u00a0\u00a0\u00a0-alias mykey\u00a0\u00a0-keystore\u00a0\u00a0\u00a0identity.jks<\/p>\n<p>Step 4: Create a identity\u00a0\u00a0keystore, this can be done my exporting<\/p>\n<p>keytool\u00a0\u00a0\u00a0-export\u00a0\u00a0-alias\u00a0\u00a0mykey\u00a0\u00a0-file\u00a0\u00a0cert.cer\u00a0\u00a0-keystore\u00a0\u00a0\u00a0identity.jks<\/p>\n<p>Step5: Create a trust keystore, this can be done my importing.<\/p>\n<p>keytool\u00a0\u00a0\u00a0-import\u00a0\u00a0\u00a0-alias\u00a0\u00a0\u00a0mykey\u00a0\u00a0-file\u00a0\u00a0cert.cer\u00a0\u00a0\u00a0-keystore\u00a0\u00a0\u00a0trust.jks\u00a0\u00a0\u00a0\u00a0-noprompt<\/p>\n<p>To verify the contents of the keystore, you can use the below command,<\/p>\n<p>keytool\u00a0\u00a0-list\u00a0\u00a0-v\u00a0\u00a0-keystore &lt;keystore-name&gt;\u00a0\u00a0-storepass &lt;keystore-password&gt;<\/p>\n<p><strong>2)\u00a0\u00a0Configuring the keystore on the WebLogic Server:<\/strong><\/p>\n<p>Step 1: Log into the Admin Console, Click on servers<\/p>\n<p>Step 2: Click on Lock and Edit<\/p>\n<p>Step 3: select the server on which you want to configure the SSL\u00a0\u00a0\u00a0\u00a0certificate.(Ex:ms1)<\/p>\n<p>Step 4: Click on keystores<\/p>\n<p>Step 5: select Custom identity and Custom trust<\/p>\n<p><strong>Identiy:<\/strong><\/p>\n<p><strong>CustomIdentitykeystore:<\/strong>C:\\bea9\\user_projects\\domains\\sai_domain\\identity.jks<\/p>\n<p><strong>Custom Identity keystore type:\u00a0<\/strong>jks<\/p>\n<p><strong>Custom identity passphrase :\u00a0<\/strong>Ram@2013<\/p>\n<p><strong>Trust:<\/strong><\/p>\n<p><strong>Custom trust keystore:\u00a0<\/strong>C:\\bea9\\user_projects\\domains\\sai_domain\\trust.jks<\/p>\n<p><strong>Custom trust keystore type:\u00a0<\/strong>jks<\/p>\n<p><strong>Custom trust passphrase :\u00a0<\/strong>Ram@2013<\/p>\n<p>&#8211;\u00e0save\u00a0\u00a0\u00a0\u00a0\u00a0&#8212;\u00e0Acivate changes<\/p>\n<p>Step 6: Click on SSL<\/p>\n<p>Step 7: Enter identity<\/p>\n<p><strong>Private key alias:\u00a0<\/strong>mykey<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Privatekey passphrase :\u00a0<\/strong>Ram@2013<\/p>\n<p>&#8212;\u00e0save\u00a0\u00a0\u00a0\u00a0\u00a0&#8212;\u00e0\u00a0Activate changes<\/p>\n<p>\u00e0To check SSL type browser\u00a0\u00a0<a href=\"http:\/\/www.blogger.com\/null\">https:\/\/localhost:5003(ms1<\/a>\u00a0ssl portnumber)\/messaging(deploying application)<\/p>\n<ol start=\"2\">\n<li><strong>II) Integrate Apache with WebLogic Server:\u00a0<\/strong>Install apache in our machine and open httpd.conf file (C:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\conf\\httpd.conf) and to do the following steps are:<\/li>\n<\/ol>\n<p>Step 1: make sure the apache server run on port number 80 or 8080<\/p>\n<p>Listen localhost:80 or 8080\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Listen:80<\/p>\n<p>Step 2: Copy the module\u00a0<strong>Mod_WL_20<\/strong>\u00a0to C:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\modules<\/p>\n<p>Step 3: copy the module on\u00a0\u00a0<strong>LoadModule WebLogic_module modules\/mod_wl_22.so<\/strong>\u00a0\u00a0to httpd.conf file.<\/p>\n<p>Step 3: copy the below content in to\u00a0\u00a0httpd.conf\u00a0\u00a0on main server.<\/p>\n<p><strong>&lt;Location \/&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SetHandler WebLogic-handler\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/Location&gt;<\/strong><\/p>\n<p><strong>&lt;IfModule mod_WebLogic.c&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WebLogicCluster localhost:5002,localhost:5004\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Debug ON\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WLLogFile c:\/temp\/wlproxy.log\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WLTempDir c:\/temp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/IfModule&gt;<\/strong><\/p>\n<p>Step 4: re-start the server and access the application.<\/p>\n<p><a href=\"http:\/\/www.blogger.com\/null\">http:\/\/localhost:apacheportnumber\/appname(http:\/\/localhost80:\/messaging)<\/a><\/p>\n<p><strong>III) Integrate Apache-SSL with WebLogic server:<\/strong>\u00a0\u00a0Install the\u00a0&#8220;<strong>httpd\/apache_x.x.x-win32-x86-openssl-x.x.x.msi<\/strong>&#8221; s\/w in our machine. Open httpd.conf file Then do the following steps<\/p>\n<p><strong>Step 1:<\/strong>\u00a0Configure apache configure file\u00a0<strong>httpd.conf<\/strong>,\u00a0uncomment the following 2 lines,<br \/>\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LoadModule ssl_module modules\/mod_ssl.so<br \/>\nInclude conf\/extra\/httpd-ssl.conf<\/strong><\/p>\n<p><strong>Step2:<\/strong>\u00a0Execute the following step for windows<\/p>\n<p>set OPENSSL_CONF=C:\\Program Files\\Apache Software Foundation\\Apache2.2\\conf\\openssl.cnf<\/p>\n<p><strong>Step 3:<\/strong>\u00a0Generate certification using openssl,<br \/>\n<strong>openssl req -new -out server.csr<br \/>\nopenssl rsa -in privkey.pem -out server.key<br \/>\nopenssl x509 -in server.csr -out server.cert -req -signkey server.key -days 365<\/strong><br \/>\n<strong>Step 4:<\/strong>\u00a0\u00a0Copy the generation files to the directory defined by httpd-ssl.conf<\/p>\n<p>We have the Self-signed SSL certificates ready now. Now We need to MOVE the &#8220;server.cert&#8221; and \u00a0 \u00a0 \u00a0 \u00a0&#8220;server.key&#8221; file to the<\/p>\n<p>&#8220;C:\\Program Files\\Apache Software Foundation\\Apache2.2\\conf&#8221; location.<\/p>\n<p><strong>Step 5:<\/strong>\u00a0\u00a0check httpd-ssl.conf<\/p>\n<p>Now we need to modify the &#8220;C:\\Program Files\\Apache Software Foundation\\Apache2.2\\conf\\extra\\httpd- ssl.conf&#8221;.<\/p>\n<p>Let all the default options as it is but make sure to modify the following section according to your need:<\/p>\n<p>&lt;VirtualHost _default_:443&gt;<br \/>\nServerAdmin some@email.com<br \/>\nDocumentRoot &#8220;Your Root folder location&#8221;<br \/>\nServerName www.domain.com:443<br \/>\n<strong>ServerAlias domain.com:443\u00a0<\/strong><br \/>\nErrorLog &#8220;logs\/anyFile-error.log&#8221;<br \/>\nCustomLog &#8220;logs\/anyFile-access.log&#8221; common<br \/>\nSSLEngine on<\/p>\n<p>SSLCertificateFile &#8220;C:\/Program Files\/Apache Software Foundation\/Apache2.2\/conf\/server.cert&#8221;<\/p>\n<p>SSLCertificateKeyFile &#8220;C:\/Program Files\/Apache Software Foundation\/Apache2.2\/conf\/server.key&#8221;<br \/>\n&lt;\/VirtualHost&gt;<\/p>\n<p><strong>Step 6<\/strong>: Open an exception in Windows Firewall for TCP port 443.(set ssl port number:443 in our mechine)<\/p>\n<p>Step 7:<strong>\u00a0<\/strong>Access the application using the below url<\/p>\n<p><a href=\"https:\/\/localhost\/app-name\">https:\/\/localhost:443\/<\/a>app-name or\u00a0<a href=\"https:\/\/localhost\/\">https:\/\/localhost<\/a>\/app-name<\/p>\n<p><strong>Set\u00a0\u00a0SSLport number:443 in our mechine:<\/strong><\/p>\n<p>Step 1: Click on start button<\/p>\n<p>Step2 : Click on Control panel<\/p>\n<p>Step 3: Click on windows firewall<\/p>\n<p>Step 4: Click on Advanced Settings<\/p>\n<p>Step 5: Click on Inbounded rules<\/p>\n<p>Step 6: Click on new rule<\/p>\n<p>Step 7: Select port<\/p>\n<p>&#8212;-\u00e0\u00a0click on next<\/p>\n<p>Step 8:\u00a0\u00a0select TCP<\/p>\n<p>Select specific location port: 443<\/p>\n<p>&#8212;&#8212;\u00e0\u00a0next<\/p>\n<p>Step 9: Select Allow the connections<\/p>\n<p>&#8212;-\u00e0\u00a0next\u00a0\u00a0\u00a0\u00a0\u00a0&#8212;\u00e0next<\/p>\n<p>Step 10:\u00a0\u00a0SSL port is created<\/p>\n<p><strong>Diff\u00a0\u00a0b\/w one-way ssl and two-way ssl:<\/strong><\/p>\n<p><strong>One Way SSL<\/strong>\u00a0:- Only the client authenticates the server. This means that the public cert of the server needs to configured in the trust store of the client.<br \/>\n<strong>Two Way SSL:<\/strong>\u00a0&#8211; The client authenticates the server &amp; the server also authenticates the client.<br \/>\nThis means that the public cert of the server needs to configured in the trust store of the client. And Also the public cert of the client needs to be configured on the server&#8217;s trust store.<\/p>\n<p><strong>Virtual Hosting:<\/strong><\/p>\n<p><strong>__________________________________________________________________________________________________________<\/strong><\/p>\n<p><strong>Diff b\/w Name-based and Ip-based virtual hosting:<\/strong><\/p>\n<p><strong>IP-based<\/strong>\u00a0virtual hosts use the IP address of the connection to determine the correct virtual host to serve.<\/p>\n<p><strong>Name-based<\/strong>\u00a0virtual hosting, the server relies on the client to report the hostname as part of the HTTP headers &amp; many different hosts can share the same IP address.<\/p>\n<p><strong>Configure virtual host in apache and WebLogic:<\/strong><\/p>\n<p>go to servers\u00a0\u00a0-&gt; click on admin server -&gt; click protocol -&gt; select the chanel tab -&gt;click new option<\/p>\n<p>N\/w channel name : 80\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0protocol: http\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0and click next -&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0listen Address:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost<\/p>\n<p>listen port\u00a0\u00a0\u00a0\u00a0: 80\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0and click next -&gt; click finish<\/p>\n<p>go to environment -&gt; virtual hosts -&gt;click new option -&gt; create a new virtual host -&gt; click ok.<\/p>\n<p><strong>JVM: Java Virtual Machine<\/strong><\/p>\n<p><strong>________________________________________________________________________________________________________<\/strong><\/p>\n<p><strong>JVM Architecture:\u00a0<\/strong>JVM is the heart of any Java based Application Server. We face most of the issues due to incorrect JVM tuning. It is very important to understand the Overall architecture of the JVM in order to trouble shoot different JVM tuning related issues. Here we are going to discuss the Architecture and the Major parts of a Java Process And the Java Heap Division.<\/p>\n<p>The Following Diagram is just a basic overview of a Java Process in a 2 GB process Size Machine. Usually in 32 bit Windows Operating Systems the default process size will be 2 GB (In Unix based 64 bit operating Systems it can be 4GB or more). So i draw the following Diagram of Java Process to explain the Java Process partitions in a 2Gb process size machine.<\/p>\n<p><strong>Java Process Architecture Diagram<\/strong><\/p>\n<p>In the above diagram we will find different partitions of a Java Process. Please compare the above diagram with below descriptions.<\/p>\n<p>.<\/p>\n<p><strong>1)\u00a0<\/strong>Just for Example we can see that Process Size is 2048 MB (2GB)<\/p>\n<p><strong>2)\u00a0<\/strong>The Java Heap Size is 1024MB (means 1GB) \u00a0 -Xmx1024m<\/p>\n<p><strong>3)\u00a0<\/strong>Native Space = ( ProcessSize \u2013 MaxHeapSize \u2013 MaxPermSize) It means around 768 MB of Native Space.<\/p>\n<p><strong>4)\u00a0<\/strong>MaxPermSpace is around -XX:MaxPermSize=256m<\/p>\n<p><strong>5)\u00a0<\/strong>Young Generation Space is around \u00a0 \u00a040% of Maximum Java Heap.<\/p>\n<p><strong>Different parts of JVM:<\/strong><\/p>\n<p><strong>1) Eden space:\u00a0<\/strong>Eden Space is a Part of Java Heap where the JVM initially creates any objects, where most objects die and quickly are cleaned up by the minor Garbage Collectors (Note: Full Garbage Collection is different from Minor Garbage Collection). Usually any new objects created inside a Java Method go into Eden space and the objects space is reclaimed once the method execution completes. Where as the Instance Variables of a Class usually lives longer until the Object based on that class gets destroyed. When Eden fills up it causes a minor collection, in which some surviving objects are moved to an older generation.<\/p>\n<p>2)\u00a0<strong>Survivor Spaces:\u00a0<\/strong>Eden Space has two Survivor spaces. One survivor space is empty at any given time. These Survivor Spaces serves as the destination of the next copying collection of any living objects in Eden and the other survivor space.<\/p>\n<p>The parameter SurvivorRatio can be used to tune the size of the survivor spaces.<\/p>\n<p>-XX:SurvivorRatio=6 sets the ratio between each survivor space and Eden to be 1:6<\/p>\n<p>If survivor spaces are too small copying collection overflows directly into the tenured generation.<\/p>\n<p>3)\u00a0<strong>Young Generation: (-XX:MaxNewSize):\u00a0<\/strong>Till JDK1.3 and 1.4 we used to set the Young Generation Size using\u00a0<strong>-XX:MaxNewSize<\/strong>. But from JDK1.4 onwards we set the YoungGeneration size using (<strong>-Xmn<\/strong>) JVM option.<\/p>\n<p>Young Generation size is controlled by NewRatio. \u00a0It means setting -XX:NewRatio=3 means that the ratio between the Old Generation and the Young Generation is \u00a01:3. Similarly -XX:NewRatio=8 means that 8:1 ratio of tenured and young generation.<\/p>\n<p><strong>NewRatio:\u00a0<\/strong>NewRatio is actually the ratio between the (YoungGenaration\/Old Generations) has default values of 2 on Sparc , 12 on client Intel, and 8 everywhere else.<\/p>\n<p><strong>NOTE:\u00a0<\/strong>After JDK 1.4 The Young Generation Size can be set using \u00a0(<strong>-Xmn<\/strong>) as well.<\/p>\n<p><strong>1) Virtual space-1:(MaxNewSize \u2013 NewSize):\u00a0<\/strong>The First Virtual Space is actually shows the difference between the -XX:NewSize and -XX:MaxNewSize. \u00a0Or we can say that it is basically a difference between the Initial Young Size and the Maximum Young Size.<\/p>\n<p><strong>JavaHeapArea:( -Xmx and \u2013Xms):\u00a0<\/strong>Java Heap is a Memory area inside the Java Process which holds the java objects. \u00a0Java Heap is a combination of Young Generation Heap and Old Generation Heap. We can set the Initial Java Heap Size using -Xms JVM parameter similarly if we want to set the Maximum Heap Size then we can use -Xmx JVM parameter to define it.<\/p>\n<p><strong>Example:<\/strong><\/p>\n<p><strong>-Xmx1024m<\/strong>\u00a0\u2014&gt; Means Setting the Maximum limit of Heap as 1 GB<\/p>\n<p><strong>-Xms512m\u00a0<\/strong>\u2014&gt; Means setting Java Heap Initial Size as 512m<\/p>\n<p>.<\/p>\n<p><strong>NOTE-1):<\/strong>\u00a0It is always recommended to set the Initial and the Maximum Heap size values as same for better performance.<\/p>\n<p><strong>NOTE-2):<\/strong>\u00a0The\u00a0Theoretical\u00a0limitation of Maximum Heap size for a 32 bit JVM is upto 4GB. Because of the Memory Fragmentation, Kernel Space Addressing, Swap memory usages and the Virtual Machine Overheads are some factors JVM does not allow us to allocate whole 4GB memory for Heap in a 32 bit JVM. So usually on 32-bit Windows Operating Systems the Maximum can be from 1.4 GB to 1.6 GB.<\/p>\n<p>If we want a larger memory allocation according to our application requirement then we must choose the 64-bit operating systems\u00a0with 64 bit JVM. 64-bit JVM provides us a larger address space. So we can have much larger Java Heap \u00a0with \u00a0the increased number of Threads allocation area. Based on the Nature of your Operating system in a 64 bit JVM you can even set the Maximum Heap size upto 32GB.<\/p>\n<p>Example: \u00a0 \u00a0 \u00a0 \u00a0<em>-Xms32g -Xmx32g -Xmn4g<\/em><\/p>\n<p><strong>2) Virtual Space-2: (MaxHeapSize \u2013 InitialHeapSize):\u00a0<\/strong>The Second Virtual Space is actually the Difference between the Maximum Heap size (<strong>-Xmx<\/strong>)and the Initial Heap Size(<strong>-Xms<\/strong>). This is called as virtual space because initially the JVM will allocate the Initial Heap Size and then according to the requirement the Heap size can grow till the MaxHeapSize.<\/p>\n<p><strong>PermGen Space: (-XX:MaxPermSize):\u00a0<\/strong>PermGen is a non-heap memory area where the Class Loading happens and the JVM allocates spaces for classes, class meta data, \u00a0java methods and the reference Objects here. The PermGen is independent from the Heap Area. It can be resized according to the requirement using -XX:MaxPermSize and -XX:PermSize \u00a0JVM Options. The Garbage collection happens in this area of JVM Memory as well. The Garbage collection in this area is called as \u201cClass GC\u201d. We can disable the Class Garbage Collection using the JVM Option -noclassgc. if \u00a0\u201d-noclassgc\u201d Java Option is added while starting the Server. In that case the Classes instances which are not required will not be Garbage collected.<\/p>\n<p><strong>Native Area:\u00a0<\/strong>Native Memory is an area which is usually used by the JVM for it\u2019s internal operations and to execute the JNI codes. The JVM Uses Native Memory for Code Optimization and for loading the classes and libraries along with the intermediate code generation.<\/p>\n<p>The Size of the Native Memory depends on the Architecture of the Operating System and the amount of memory which is already commited to the Java Heap. Native memory is an Process Area where the JNI codes gets loaded or JVM Libraries gets loaded or the native Performance packs and the Proxy Modules gets loaded.<\/p>\n<p>There is no JVM Option available to size the Native Area. but we can calculate it approximately using the following formula:<\/p>\n<p><strong>NativeMemory = (ProcessSize \u2013 MaxHeapSize \u2013 MaxPermSize)<\/strong><\/p>\n<p><strong>Garbage Collection:<\/strong><\/p>\n<p><strong>_________________________________________________________________________________________________________<\/strong><\/p>\n<p><strong>Garbage collection:\u00a0<\/strong>It\u2019s always best to enable the Garbage collection Logging in our production environment as well because it does not cause any resource overhead or any side effect on WebLogic server or another application server\u2019s performance. \u00a0GC log helps us in investigating man issues. Apart from issues it helps us to find out if some tuning is required based on the statistics of the Garbage collection.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Garbage collection logging can be enable and collected in a separate log file by using the following JAVA_OPTIONS:<\/p>\n<p><strong>-Xloggc:D:\/gcLogs\/GCLogs.log \u00a0 \u00a0 \u00a0 \u00a0 -XX:+PrintGCDetails \u00a0 \u00a0 \u00a0 \u00a0-XX:+PrintGCTimeStamps<\/strong><\/p>\n<p>As soon as you add these JAVA_OPTIONS which are JVM specific (above will work for Sun and Open JDKs fine) the JVM will start generating the garbage collection logging in the GCLog.log file. Now if you will open this file then you can<\/p>\n<p><strong>see something like following:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><em>01<\/em><\/td>\n<td><em>4.636: [GC [PSYoungGen: 230400K-&gt;19135K(268800K)] 230400K-&gt;19135K(2058752K), 0.0635710 secs] [Times: user=0.08 sys=0.01, real=0.06 secs]<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>02<\/em><\/td>\n<td><em>7.302: [GC [PSYoungGen: 249535K-&gt;38396K(268800K)] 249535K-&gt;51158K(2058752K), 0.0777300 secs] [Times: user=0.21 sys=0.04, real=0.07 secs]<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td><em>03<\/em><\/td>\n<td><em>7.521: [GC [PSYoungGen: 49735K-&gt;38388K(268800K)] 62496K-&gt;51933K(2058752K), 0.0741680 secs] [Times: user=0.15 sys=0.04, real=0.07 secs]<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>04<\/em><\/td>\n<td><em>7.595: [Full GC (System) [PSYoungGen: 38388K-&gt;0K(268800K)] [PSOldGen: 13545K-&gt;51794K(1789952K)] 51933K-&gt;51794K(2058752K) [PSPermGen: 19868K-&gt;19868K(39936K)], 0.3066610 secs] [Times: user=0.28 sys=0.02, real=0.31 secs]<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td><em>05<\/em><\/td>\n<td><em>9.752: [GC [PSYoungGen: 230400K-&gt;26206K(268800K)] 282194K-&gt;78000K(2058752K), 0.0728380 secs] [Times: user=0.15 sys=0.00, real=0.08 secs]<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>06<\/em><\/td>\n<td><em>11.906: [GC [PSYoungGen: 256606K-&gt;38393K(268800K)] 308400K-&gt;94759K(2058752K), 0.1058920 secs] [Times: user=0.19 sys=0.00, real=0.10 secs]<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td><em>07<\/em><\/td>\n<td><em>13.480: [GC [PSYoungGen: 268793K-&gt;38394K(268800K)] 325159K-&gt;109054K(2058752K), 0.0762360 secs] [Times: user=0.20 sys=0.03, real=0.08 secs]<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>08<\/em><\/td>\n<td><em>18.115: [GC [PSYoungGen: 268794K-&gt;38384K(268800K)] 339454K-&gt;179238K(2058752K), 0.1351350 secs] [Times: user=0.42 sys=0.10, real=0.14 secs]<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td><em>09<\/em><\/td>\n<td><em>20.860: [GC [PSYoungGen: 268784K-&gt;38394K(268800K)] 409638K-&gt;200343K(2058752K), 0.1063430 secs] [Times: user=0.29 sys=0.03, real=0.11 secs]<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>10<\/em><\/td>\n<td><em>22.148: [GC [PSYoungGen: 268794K-&gt;38399K(268800K)] 430743K-&gt;221395K(2058752K), 0.1173980 secs] [Times: user=0.24 sys=0.02, real=0.12 secs]<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td><em>11<\/em><\/td>\n<td><em>23.357: [GC [PSYoungGen: 268799K-&gt;26775K(268800K)] 451795K-&gt;231618K(2058752K), 0.0714130 secs] [Times: user=0.15 sys=0.03, real=0.08 secs]<\/em><\/td>\n<\/tr>\n<tr>\n<td><em>12<\/em><\/td>\n<td><em>24.449: [GC [PSYoungGen: 257175K-&gt;29170K(268800K)] 462018K-&gt;239909K(2058752K), 0.0312400 secs] [Times: user=0.06 sys=0.01, real=0.04 secs]<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>You can notice something in the above output:<\/p>\n<p><strong>Point1:<\/strong>\u00a0[Full GC (System) [PSYoungGen: 38388K-&gt;0K(268800K)] \u00a0 \u00a0It means a Full GC is happening on the complete Heap Area including all the Areas of the Java Heap Space.<\/p>\n<p><strong>Point2:\u00a0<\/strong>[GC [PSYoungGen: 230400K-&gt;19135K(268800K)] \u00a0 Indicates some small GCs which keep on happening in the young generation very frequently, This garbage collection cleans the Young Generation short living Objects.<\/p>\n<p><strong>Point3:\u00a0<\/strong>\u00a0Meaning of the [GC [PSYoungGen: 230400K-&gt;19135K(268800K)] \u00a0 line is around 256MB (268800K) is the Young Generation Size, Before Garbage Collection in young generation the heap utilization in Young Generation area was around \u00a0255MB (230400K) \u00a0and after garbage collection it reduced up to 18MB (19135K)<\/p>\n<p><strong>Point4:\u00a0<\/strong>\u00a0Same thing we can see for Full Garbage collection as well\u2026.How effective the Garbage collection was\u2026[Full GC (System) [PSYoungGen: 38388K-&gt;0K(268800K)] [PSOldGen: 13545K-&gt;51794K(1789952K)] \u00a0Here it says that around<\/p>\n<p>[(old)1789952K + \u00a0young (268800K) ] \u00a0memory space means \u00a0OldGeneration is consuming 1.75GB space and Young Generation is consuming around 255 MB space \u00a0So it means total Heap size is around 2GB.<\/p>\n<p>But analyzing the Garbage collection log like above technique Line by Line is very bad\u2026so here we have an alternative was to analyze the Garbage Collection log in few Seconds to see how much time the Full Garbage collection is taking as an average and other reports\u2026etc.<\/p>\n<p><strong>Step1):\u00a0<\/strong>Download the \u201cgarbagecat-1.0.0.jar \u00a0 (881 KB) \u201d \u00a0tool from the follwing link:<a href=\"http:\/\/garbagecat.eclipselabs.org.codespot.com\/files\/garbagecat-1.0.0.jar\">http:\/\/garbagecat.eclipselabs.org.codespot.com\/files\/garbagecat-1.0.0.jar<\/a><\/p>\n<p><strong>Step2):<\/strong>\u00a0Open a command prompt and then make sure that JAVA is set in the Path so that we can use \u201cjar\u201d utility of JDK to run the \u201cgarbagecat-1.0.0.jar\u201d \u00a0tool.<\/p>\n<p><strong>Step3)<\/strong><strong>:<\/strong>\u00a0Put the \u201cgarbagecat-1.0.0.jar\u201d \u00a0file and the \u201cGCLog.log\u201d file in the same directory. then run the following command:<\/p>\n<p><strong>java \u00a0 \u00a0 \u00a0-jar \u00a0 \u00a0 \u00a0garbagecat-1.0.0.jar \u00a0 \u00a0 \u00a0GCLog.log<\/strong><\/p>\n<p><strong>Step4):<\/strong>\u00a0As soon as our run the above command you will see that in your current directory following files are created:<\/p>\n<p>garbagecat-1.0.0.jar<\/p>\n<p>GCLog.log<\/p>\n<p>gcdb.lck<\/p>\n<p>gcdb.log<\/p>\n<p>gcdb.properties<\/p>\n<p>report.txt<\/p>\n<p><strong>Step5):<\/strong>\u00a0Now open the \u201creport.txt\u201d file to see the Overall report of the Garbage Collection something like following:<\/p>\n<p>========================================<\/p>\n<p>SUMMARY:<\/p>\n<p>========================================<\/p>\n<p># GC Events: 12<\/p>\n<p>GC Event Types: PARALLEL_SCAVENGE, PARALLEL_SERIAL_OLD<\/p>\n<p>Max Heap Space: 2058752K<\/p>\n<p>Max Heap Occupancy: 462018K<\/p>\n<p>Max Perm Space: 39936K<\/p>\n<p>Max Perm Occupancy: 19868K<\/p>\n<p>Throughput: 95%<\/p>\n<p>Max Pause: 306 ms<\/p>\n<p>Total Pause: 1233 ms<\/p>\n<p>First Timestamp: 4636 ms<\/p>\n<p>Last Timestamp: 24449 ms<\/p>\n<p>========================================<\/p>\n<p>.<\/p>\n<p>If you see that the Garbage Collection Max Pause time is very high like more than 5-7 Seconds for a 2 GB heap then you need to worry about it.<\/p>\n<p><strong>NOTE:<\/strong>\u00a0Garbage collection \u00a0is a best utility to generate the Garbage Collection Report for Sun JDK and Open JDK for other JDKs you should use other tools for accurate results.<\/p>\n<p><strong>Garbage collection algorithms:<\/strong><\/p>\n<p>1)\u00a0<strong>Mark-and-sweep collector:<\/strong>\u00a0\u00a0This type of collector first traverses the object graph and marks reachable objects. It then scans the heap for unmarked objects and adds their memory to a list of available memory segments. This collector typically uses a single thread to do its work and is a stop-the-world collector.<\/p>\n<p><strong>2)\u00a0<\/strong><strong>Mark-and-compact collector:<\/strong>\u00a0\u00a0A mark-and-compact collector, sometimes known as a mark-sweep-compact collector, uses the same marking phase as a mark-and-sweep collector. During the second phase, it compacts the heap by copying marked objects to a new area of the heap. These collectors are also stop-the-world collectors.<\/p>\n<p><strong>3)\u00a0<\/strong><strong>Copying collector:<\/strong>\u00a0\u00a0This type of collector divides the heap into two areas, commonly known as semi-spaces. It uses only one semi-space at a time; the JVM creates all new objects in one semi-space. When the garbage collector runs, it copies any reachable objects it finds to the other semi-space as it finds them, thus compacting the heap as it copies live objects. All dead objects are left behind. This algorithm works well for short-lived objects, but the expense of continually copying long-lived objects makes it less efficient. Again, this is a stop-the-world collector.<\/p>\n<p><strong>4)\u00a0<\/strong><strong>Incremental collector:<\/strong>\u00a0\u00a0Incremental collectors basically divide the heap into multiple areas and collect garbage from only one area at a time. This can create much smaller, though more frequent, pauses in your application. There are numerous approaches defining how the actual collection is handled from traditional mark-and-sweep to algorithms designed explicitly for use with multiple smaller areas like the train algorithm. See \u201cIncremental Mature Garbage Collection Using the Train Algorithm\u201d by Jacob Seligmann and Steffen Grarup (<a href=\"http:\/\/www.daimi.aau.dk\/~beta\/Papers\/Train\/train.html\">http:\/\/www.daimi.aau.dk\/~beta\/Papers\/Train\/train.html<\/a>) for more information.<\/p>\n<p><strong>5)\u00a0<\/strong><strong>Generational collector<\/strong>:\u00a0\u00a0This type of collector divides the heap into two or more areas that it uses to store objects with different lifetimes. The JVM generally creates all new objects in one of these areas. Over time, the objects that continue to exist get tenure and move into another area for longer-lived objects. Generational collectors often use different algorithms for the different areas to optimize performance.<\/p>\n<p><strong>6)\u00a0<\/strong><strong>Concurrent collectors<\/strong>:\u00a0\u00a0Concurrent collectors run concurrently with the application, typically as one or more background threads. These collectors typically have to stop-the-world at some point to complete certain tasks, but the amount of time they halt all processing is significantly reduced because of their other background work.<\/p>\n<p><strong>7)\u00a0<\/strong><strong>Parallel collectors:<\/strong>\u00a0\u00a0Parallel collectors typically use one of the traditional algorithms but use multiple threads to parallelize their work on multiprocessor machines. Using multiple threads on multi-CPU machines can dramatically improve the scalability of a Java application on multiprocessor machines.<\/p>\n<p><strong>Creating And Analyze log for Garbage Collection:<\/strong><\/p>\n<p><strong>Creating GC log:<\/strong>\u00a0Set memory argument in startWebLogic.cmd.<\/p>\n<p>-Xms256m \u2013Xmx512m \u2013XX:CompailThreshold=8000 \u2013XX:permSize=48m \u2013XX:MaxPermSize=128m<\/p>\n<p><strong>analyze GC logs:\u00a0\u00a0<\/strong><\/p>\n<p><strong>Srep1:<\/strong>Go to admin console<\/p>\n<p><strong>Step2:<\/strong>\u00a0Click the Adminserver<\/p>\n<p><strong>Step3:\u00a0<\/strong>Select the monitors tab<\/p>\n<p><strong>Step4:\u00a0<\/strong>Click the performance<\/p>\n<p><strong>Step5:\u00a0<\/strong>Select the garbage collector<\/p>\n<p><strong>Security Realms:\u00a0<\/strong>A security realm is a container for the mechanisms including users, groups, security roals, security palaces and providers. That are used to protect WebLogic resources, we can have multiple security reasons in a WebLogic servers domain. But only one can be set as the default realm.<\/p>\n<p>This security realms page, lists is security realms that has been configured in this WebLogic server domain. Click the name of the realms to explore and configure that realm.<\/p>\n<p><strong>Creating users and groups in WLS:<\/strong><\/p>\n<p>Step1:\u00a0\u00a0Goto security realm<\/p>\n<p>Step2: Click on Lock And Edit<\/p>\n<p>Step3: Select Myrealm<\/p>\n<p>Step4: Select user and group tab<\/p>\n<p>Step5: Click on New<\/p>\n<p>Name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0\u00a0Ram<\/p>\n<p>Designation\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0\u00a0WebLogic_Admin<\/p>\n<p>Provider\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0\u00a0Select provider<\/p>\n<p>Password\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0\u00a0Ram123<\/p>\n<p>ConformPwd\u00a0\u00a0:\u00a0\u00a0Ram123<\/p>\n<p>&#8212;&#8212;-&gt;\u00a0\u00a0\u00a0\u00a0Ok<\/p>\n<p>Step6: Click on Ram<\/p>\n<p>Step7: Click on group Tab<\/p>\n<p>Step8: Select Role<\/p>\n<p>Step9: Click on Ok<\/p>\n<p>Step10: Click on Save<\/p>\n<p><strong>Roals:<\/strong><\/p>\n<p><strong>1) Admin Channel Users:\u00a0<\/strong>Admin channel users can access the admin channel.<\/p>\n<p><strong>2) Administrator:<\/strong>\u00a0Administrator can view and modify all the resource attributes and start, stop servers.<\/p>\n<p><strong>3) App Testing:\u00a0<\/strong>App testing group.<\/p>\n<p><strong>4) Cross Domain Connecters:\u00a0<\/strong>Cross Domain Connecters can make inter-domain\u00a0\u00a0calls from foreign domains.<\/p>\n<p><strong>5) Deployers:\u00a0<\/strong>Deployer can view all the resource attributes and deploy applications<strong>.<\/strong><\/p>\n<p><strong>6) Monitors:\u00a0<\/strong>Monitors can view and modify all resource attributes and perform operations not restricted by roles.<\/p>\n<p><strong>7) Operators:\u00a0<\/strong>Operators can view and modify all response attributes and perform server life cycle operations.<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>Difference between unicast and multicast:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"315\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Unicast<\/strong><\/p>\n<p>1)\u00a0\u00a0It is just one-to-one communication that takes place between the client and the server.<\/p>\n<p>2)\u00a0\u00a0In unicast, one packet is transmitted to only one destination at a time. So it recive only one reciver.<\/p>\n<p>3)\u00a0In unicast, the Internet protocol methods, such as,\u00a0<strong>TCP<\/strong>(Transmission Control Protocol) and<strong>UDP<\/strong>(User Datagram Protocol) are used.<\/p>\n<p>4)\u00a0When a user uses the Windows Media Player, he or she has direct contact with the server. Each of the users using the unicast\u00a0<a href=\"http:\/\/www.differencebetween.net\/miscellaneous\/difference-between-caste-system-and-class-system\/\">system<\/a>\u00a0utilises additional bandwidth.<\/td>\n<td width=\"348\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Multicast<\/strong><\/p>\n<p>1) It is a multi-communication level and mainly multicasts enabled routers used for broadcasting.<\/p>\n<p>2) In multicast sends packets to multiple destinations which is represented by a group address. So it receives multiple receivers.<\/p>\n<p>3)\u00a0When the former is more practical as only a small section of the Internet is multicast enabled.<\/p>\n<p>4)\u00a0\u00a0In multicast, there is no direct link between the user and the server. When using Windows Media Player, the user does not have any direct link with the server. Instead, once the user starts to use Windows Media Player, an .nsc or Next how channel is generated which is then delivered to the user from the server.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Trouble shooting issues:<\/strong><\/p>\n<p><strong>_________________________________________________________________________________________________________<\/strong><\/p>\n<p><strong>Deployment:\u00a0\u00a0\u00a0<\/strong>We will send error log to the application team for modification.<\/p>\n<p>Caused By: WebLogic.utils.ErrorCollectionException:<\/p>\n<p>There are 1 nested errors:<\/p>\n<p>WebLogic.j2ee.dd.xml.AnnotationProcessException: Duplicate ejb name &#8216;BDAccountEjbBean&#8217; found: annotation &#8216;Stateless&#8217; on bean failed due to connection pool issue: we will fix connection pool issues and then redeploy the application<\/p>\n<p>Out of memory issue during the deployment:<\/p>\n<p>error:\u00a0<strong>java.lang.outofmemory.permgenspace<\/strong><\/p>\n<p>this error occured due to space in perm area.<\/p>\n<p>setDomainEnv.sh<\/p>\n<p>xx:permsize 128m<\/p>\n<p>xx:maxpermsize 128m<\/p>\n<p>we have set intialpermsize=maxpermsize then restarted the servers, redeployed the application<\/p>\n<p>If one or two application failed when we are triggering through scipt.we will fix that issue and do a deployment using console<\/p>\n<p><strong>JDBC:<\/strong><\/p>\n<p>1) DB down (raise a ticket to db team)<\/p>\n<p>2) In correct hostname or port number ( raise a ticket to network team)<\/p>\n<p>3) Data base connection lost ( telnetipaddress port )<\/p>\n<p>4) Data base user_acc lock ( raise a ticket to db team for unlocking user_acc)<\/p>\n<p>5) Invalid pakage error (raise a ticket to db team)<\/p>\n<p>6) TNS listener error (raise a ticket to db team)<\/p>\n<p>7) Schema does not exist (raise a ticket to db team)<\/p>\n<p>8) Cannot allocate resource error<\/p>\n<p>Intialcapacity : 5<\/p>\n<p>max\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: 15<\/p>\n<p>increase max to 25<\/p>\n<p>9) Connection leaks ( send error to application team)<\/p>\n<p>10) Connection time out ( raise a tickect to db team for long running quries)<\/p>\n<p><strong>JMS:<\/strong><\/p>\n<p>stuck message issues<\/p>\n<p>Check whether dest queue is available, check message format, check queue name.<\/p>\n<p>rolling message issues (messages will run continuously in the loop)<\/p>\n<p>delete those messages in the queue.<\/p>\n<p><strong>Disk Space:<\/strong><\/p>\n<p>If the disk space usage is 95%-100% then we will delete old log files<\/p>\n<p>[root@localhost ~]# df -kh<\/p>\n<p>FilesystemSize\u00a0\u00a0Used Avail Use% Mounted on<\/p>\n<p>\/dev\/sda2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a03.8G\u00a0\u00a01.9G\u00a0\u00a01.8G\u00a0\u00a052% \/<\/p>\n<p>\/dev\/sda1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a046M\u00a0\u00a09.2M\u00a0\u00a0\u00a035M\u00a0\u00a022% \/boot<\/p>\n<p>tmpfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0506M\u00a0\u00a0\u00a0\u00a0\u00a00\u00a0\u00a0506M\u00a0\u00a0\u00a00% \/dev\/shm<\/p>\n<p>\/dev\/sda3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a014G\u00a0\u00a01.8G\u00a0\u00a0\u00a012G\u00a0\u00a0100% \/home<\/p>\n<p>du -kh (disk usage)<\/p>\n<p>s<\/p>\n<p>[root@localhost ~]# du -sh \/home<\/p>\n<p>1.8G\u00a0\u00a0\u00a0\u00a0\/home<\/p>\n<p>[root@localhost bea10.3]# du -sh *<\/p>\n<p>181M\u00a0\u00a0\u00a0\u00a0jdk160_05<\/p>\n<p>28K\u00a0\u00a0\u00a0\u00a0\u00a0logs<\/p>\n<p>211M\u00a0\u00a0\u00a0\u00a0jrockit_160_05<\/p>\n<p>100M\u00a0\u00a0\u00a0\u00a0modules<\/p>\n<p>24K\u00a0\u00a0\u00a0\u00a0\u00a0registry.dat<\/p>\n<p>8.0K\u00a0\u00a0\u00a0\u00a0registry.xml<\/p>\n<p>19M\u00a0\u00a0\u00a0\u00a0\u00a0user_projects<\/p>\n<p>556K\u00a0\u00a0\u00a0\u00a0utils<\/p>\n<p>429M\u00a0\u00a0\u00a0\u00a0wlserver_10.3<\/p>\n<p>delete old log files<\/p>\n<p>\/home\/bea10.3\/user_projects\/domains\/sherkhan\/servers\/AdminServer\/logs<\/p>\n<p>rm -rf Adminserver.log00001\u00a0\u00a0Adminserver.log00002 Adminserver.log00003<\/p>\n<p>rm -rf Adminserver.out00001 Adminserver.out00002 Adminserver.out00003<\/p>\n<p>rm -rf access.log00001 access.log00002 access.log00003<\/p>\n<p>\/home\/bea10.3\/user_projects\/domains\/sherkhan\/servers\/ms1\/logs<\/p>\n<p>rm -rf ms1.log00001<\/p>\n<p>rm -rf ms1.out00001<\/p>\n<p>or zip the log files<\/p>\n<p>\/home\/bea10.3\/user_projects\/domains\/sherkhan\/servers\/AdminServer\/logs<\/p>\n<p>gzip -r *<\/p>\n<p>\/home\/bea10.3\/user_projects\/domains\/sherkhan\/servers\/AdminServer<\/p>\n<p>gzip -r logs<\/p>\n<p><strong>High CPU utilization:<\/strong><\/p>\n<p>top (linux)<\/p>\n<p>prstat (solaris)<\/p>\n<p>top &#8211; 07:45:22 up\u00a0\u00a03:03,\u00a0\u00a03 users,\u00a0\u00a0load average: 0.16, 0.33, 0.17<\/p>\n<p>Tasks: 113 total,\u00a0\u00a0\u00a02 running, 109 sleeping,\u00a0\u00a0\u00a00 stopped,\u00a0\u00a0\u00a02 zombie<\/p>\n<p>Cpu(s):\u00a0\u00a00.0%us,\u00a0\u00a00.7%sy,\u00a0\u00a00.0%ni, 99.3%id,\u00a0\u00a00.0%wa,\u00a0\u00a00.0%hi,\u00a0\u00a00.0%si,\u00a0\u00a00.0%st<\/p>\n<p>Mem:\u00a0\u00a0\u00a01035400k total,\u00a0\u00a01020348k used,\u00a0\u00a0\u00a0\u00a015052k free,\u00a0\u00a0\u00a0\u00a077688k buffers<\/p>\n<p>Swap:\u00a0\u00a02040212k total,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00k used,\u00a0\u00a02040212k free,\u00a0\u00a0\u00a0483724k cached<\/p>\n<p>%cpu %Mem<\/p>\n<p>9523 root\u00a0\u00a0\u00a0\u00a0\u00a0\u00a022\u00a0\u00a0\u00a00\u00a0\u00a0637m 239m 3660 S 98.7 23.7\u00a0\u00a0\u00a00:12.79 java<\/p>\n<p>If you find any zombie process count &gt;50 raise a ticket to solaris admins<\/p>\n<p>If any java processes are occupying 95-100% cpu usage then check the log files for any continuous looping messages or jdbc transaction time outs.<\/p>\n<p>fix the problem and kill manged\u00a0\u00a0server using kill -9 pid and restart the service instance.<\/p>\n<p><strong>404 error:<\/strong><\/p>\n<p>page can&#8217;t be displayed.<\/p>\n<p>10.4.5 404 Not Found<\/p>\n<p>The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.<\/p>\n<p>1) check whether they are using correct url<\/p>\n<p>2) check whether apache server is running ( ps -ef | grephttpd) ( ps -ef | grep -i apache)<\/p>\n<p>3) check the diskspace of Apache server if it is full then delete the log files (df -kh)<\/p>\n<p>goto Apache2.2\/logs<\/p>\n<p>delete old logs<\/p>\n<p>4) Check whether the deployed application is in active state<\/p>\n<p>5) If the deployed application is failed then fix the issue and redeploy the application<\/p>\n<p><strong>Users are getting 404 error some times and they are able to access the application sometimes.<\/strong><\/p>\n<p>1) check whether all managed servers are in running state.<\/p>\n<p>if one of the managed server is in shutdown state then bring up the server.<\/p>\n<p>check the http requests in access.log file for all managed server<\/p>\n<p>if you are getting 404 error in one of the managed server log. then check server log for any errors<\/p>\n<p>i got the in log file:<\/p>\n<p>port already in use<\/p>\n<p>netstat -anp | grep 8002<\/p>\n<p>if the port is listened on any other instance. restat managed server.<\/p>\n<p>if the issue still persists then raise a reqest to network team..<\/p>\n<p><strong>500 error:<\/strong><\/p>\n<p>Service unavailable<\/p>\n<p>this error is due to server down<\/p>\n<p>check apache or WebLogic service instance is the server is down then start the server.<\/p>\n<p><strong>Slow response:<\/strong><\/p>\n<p>check All WebLogic server status. bring the servers up if they are down<\/p>\n<p>check network handshake requests in application logs. If you found any issues related to n\/w then raise request to n\/w team.<\/p>\n<p>check for stuck thread issues in WebLogic. If you found any stuck thread issues then take thread dump and analyze.<\/p>\n<p>checkcpu usage for java processes.<\/p>\n<p>check heap size of WebLogic server gc log or in console.<\/p>\n<p>If the heap size is more than 80% then take heap dump send it to l3 support.<\/p>\n<p>check no of users logged in to the application.<\/p>\n<p>check for long running quiries from data base side.<\/p>\n<p>check for latency in data base side.<\/p>\n<p>check memory leaks in gc logs.<\/p>\n<p>check connection leaks in the WebLogic server side.<\/p>\n<p>check space in WebLogicunix machine.<\/p>\n<p>check apache server space.<\/p>\n<p><strong>OOM(OutOfMemory):<\/strong><\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0Login to the Corresponding Server through Putty<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0Then Check the Status of the Server instances<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0Check the Server logs and Out logs for OutOfMemory Error<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0Take the Access logs at the time of OOM and it will be good if we take thread dump<\/p>\n<p>If Server(s) is\/are in Running State.<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0Analysis the Thread dump for the Cause of OutOfMemory Error (Due to App\/Server)<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0Then Depending on the Server Status (if not in Running State) Restart the Server.<\/p>\n<ol>\n<li><strong>i) OutOfMemory during deployment:<\/strong><\/li>\n<li>If the application is huge(contains more than 100 JSPs), we might encounter this problem with default JVM settings.<\/li>\n<li>The reason for this is, the MaxPermSpace getting filled up.<\/li>\n<li>This space is used by JVM to store its internal datastructures as well<\/li>\n<li>as class definitions. JSP generated class definitions are also stored in here.<\/li>\n<li>MaxPermSpace is outside java heap and cannot expand dynamically.<\/li>\n<li>So fix is to increase it by passing the argument in startup script of the server: \u2013XX:MaxPermSize=128m (default is 64m)<\/li>\n<\/ol>\n<ol>\n<li><strong>ii) Memory related issues can be caused by many problems including:<\/strong><\/li>\n<\/ol>\n<p>? Java Heap is undersized for the environment<\/p>\n<p>? There is not enough native memory available for the java process<\/p>\n<p>? Web server is overloaded<\/p>\n<p>Below are some general guidelines on how to address memory-related issues. In addition, you should search the \u201cMy Oracle Support\u201d knowledge base for the specific \u201cOutOfMemory\u201d error message that you see in your PIA_WebLogic.log.<\/p>\n<p>Also, you can collect further details on WebLogic memory usage by using monitoring tools referenced in section \u201cMonitoring WebLogic Memory Usage\u201d<\/p>\n<p><strong>General Guidelines on Fixing OutOfMemory Issues:<\/strong><\/p>\n<ol>\n<li>First, you need to determine if WebLogic is running out of \u201cnative heap\u201d memory or \u201cjava heap\u201d memory. Typically you are able to tell this by checking the \u201cOutOfMemory\u201d error message in the PIA_WebLogic.log:<\/li>\n<li>If the error message refers to \u201cnative\u201d or to a \u201cthread\u201d related error, it is an issue with \u201cnativememory\u201d. Examples of errors due to running out of native memory are:<\/li>\n<\/ol>\n<p>? \u201cUnable to create new native thread\u201d<\/p>\n<p>? \u201cError starting thread: Not enough storage is available\u201d<\/p>\n<p>Native memory errors are more likely to occur on PeopleTools 8.50 and lower versions where you are running a 32-bit java process (which has address space limitations)<\/p>\n<ol>\n<li>Any other error messages, are usually due to running out of java heap memory<\/li>\n<li>If you are running out of java heap, you may want to start by increasing the java heap settings (if you are unable to increase java heap setting, then the other option is to add more WebLogic PIA\u2019s to the environment).<\/li>\n<\/ol>\n<p>Increase the java heap setting as follows:<\/p>\n<ol>\n<li>First check the current heap setting by searching string \u201c-Xmx\u201d in your WebLogic log (for Unix, search PIA_stdout.log. For Windows, search NTservice-&lt;DOMAIN_NAME&gt;-PIA.log).<\/li>\n<\/ol>\n<p>The \u201c-Xmx\u201d value shows you the current heap setting. For example, these settings show that the minimum heap (-Xms) and maximum heap (-Xmx) are set to 512mg:<\/p>\n<p>Java command line=java -server \u2013Xms512m \u2013Xmx512m<\/p>\n<ol start=\"8\">\n<li>For PeopleTools 8.50, try increasing the heap (at 256mg increments) up to 1.5gb. For PeopleTools 8.51 or 8.52, you can increase the heap even higher, provided the server has enough memory available.<\/li>\n<\/ol>\n<p>For Unix, you can change the heap setting in file setEnv.sh. Example:<\/p>\n<p>JAVA_OPTIONS_LINUX=&#8221;-jrockit -XnoOpt -XXnoJITInline \u2013Xms768m \u2013Xmx768m<\/p>\n<p>? For Windows, you will either need to change the setting in the Windows registry, or else change setting in setEnv.cmd and then rebuild the Windows Service<\/p>\n<p><strong>Refer to the following document for more details on changing the java heap setting:<\/strong><\/p>\n<p>Doc#638298.1: How To Increase\/Decrease JVM Heap Size for WebLogic<\/p>\n<ol start=\"3\">\n<li>If you are running out of native memory heap, then you may want to consider doing the following:<\/li>\n<li>Lower the java heap setting (ieXmx\/Xms settings) in order to allow more of the java process\u2019 memory to be used for \u201cNative Memory\u201d. (see step 2b above, for instructions on changing java heap setting)<\/li>\n<\/ol>\n<p>If the java heap is already being fully utilized, and you are unable to lower it, then you may want to consider adding additional PIA\u2019s to your environment<\/p>\n<ol>\n<li>Lower the thread stack size. Note that the threads use native memory, so if you lower the thread stack size, then the threads will not consume as much memory. The thread stack size is specified using parameter \u201c-Xss\u201d. Refer to the following document for details<\/li>\n<\/ol>\n<p>651285.1: WebLogic Error: &#8220;java.lang.OutOfMemoryError: unable to create new native thread&#8221;<\/p>\n<p><strong>Log files not rotating<\/strong>:<\/p>\n<p>check the diskspace if it is full then delete old logs<\/p>\n<p>check whether log4j properties file set in classpath<\/p>\n<ol>\n<li>Check the Status of the Server<\/li>\n<li>.\/startWebLogic.sh<\/li>\n<li>.\/startManagedWebLogic.sh &lt;manageservername&gt;<\/li>\n<li>[0R]<\/li>\n<li>Check through console.<\/li>\n<li>Check the disk Space(if full, Delete the logs and then need to restart the Server)<\/li>\n<li>du \u2013kh (folder)<\/li>\n<li>df \u2013kh (filesystem)<\/li>\n<li>avail capacity<\/li>\n<li>45% 90%<\/li>\n<\/ol>\n<p>If full , mv &lt;source path&gt;&lt;destination path&gt;<\/p>\n<p>Delete, rm \u2013rf&lt;filename: adminserver.log&gt;<\/p>\n<p><strong>Stuck thread:<\/strong><\/p>\n<p>&#8220;[STUCK]\u201d<\/p>\n<p>When a transaction is running more than 5 minutes, a message (example below) is logged to the PIA_WebLogic.log.<\/p>\n<p>&lt;Apr 18, 2011 12:47:04 PM PDT&gt;&lt;Error&gt;&lt;WebLogicServer&gt;&lt;BEA-000337&gt;&lt;<strong>[<\/strong>STUCK] ExecuteThread: &#8216;4&#8217; for queue: &#8216;WebLogic.kernel.Default (self-tuning)&#8217; has been busy for &#8220;675&#8221; seconds working on the request \u2026..<\/p>\n<p>Note that the message shows that the thread is \u2018STUCK\u2019. But in fact, the thread may not be stuck, but is just taking a long time to complete. These threads often successfully complete, if given enough time.<\/p>\n<p>If you see a lot of long-running threads, at the time users are experiencing problem, then this indicates that the web server is having issues processing threads, which may cause the web server to hang.<\/p>\n<p>Long running threads can be caused by different issues. The problem often occurs due to issues on the app server or database subsequently causing the threads to queue up and wait on the web server. So if you see a lot of stuck threads, you may want to troubleshoot further by doing the following:<\/p>\n<ol>\n<li>Get a thread dump as described in section &#8220;Creating\/Analyzing Thread Dumps&#8221;. The thread dump may help you determine whether the threads are getting hung up on the app server or database.<\/li>\n<li>Have your DBA check for long running SQL&#8217;s and\/or DB locks<\/li>\n<li>You can also look at the &#8216;Stuck&#8217; thread messages in the PIA_WebLogic.log to see what user(s) are running the transactions and the specific component they are running. This may help you determine if there is a specific user and\/or transaction that is causing the problems.<\/li>\n<\/ol>\n<p><strong>Port Conflict Issue:<\/strong><\/p>\n<p>While configuring a new WebLogic instance and starting it, that might be get an issue like : &#8220;Port already in use&#8221;. There could be many reasons for this one.<\/p>\n<ol>\n<li>on the same machine multiple standalone instances might be running one of the instance already used that port which you have given for new configuration.<\/li>\n<li>apache might be running with the same port.<\/li>\n<li>middleware might be running on the same machine with same port<\/li>\n<\/ol>\n<p>On Solaris Operating environment we have 2 options:<\/p>\n<ol>\n<li>usingpfiles command<\/li>\n<\/ol>\n<p>netstat \u2013na|grep &#8211;&gt; identify port in use<\/p>\n<p>pfiles |grep -isockname |grep port &#8211;&gt; look for every java process is initialized by startWebLogic.sh or startManagedWebLogic.sh<\/p>\n<ol start=\"2\">\n<li>Another way costly one (Third party package) to find the process that is using particular port is :<\/li>\n<\/ol>\n<p>lsof -itcp:<\/p>\n<ol start=\"3\">\n<li>Best way is perl script using a method it will check only standard ports which are used by the system.<\/li>\n<\/ol>\n<p>getservbyport(intport_number, const char *protocol_name)<\/p>\n<p>#!\/usr\/bin\/perl<\/p>\n<p>($name, $aliases, $port_number, $protocol_name) = getservbyport(7001, &#8220;tcp&#8221;);<\/p>\n<p>print &#8220;Name = $name\\n&#8221;;<\/p>\n<p>print &#8220;Aliases = $aliases\\n&#8221;;<\/p>\n<p>print &#8220;Port Number = $port_number\\n&#8221;;<\/p>\n<p>print &#8220;Protocol Name = $protocol_name\\n&#8221;;<\/p>\n<p><strong>JVM memory arguments:<\/strong><\/p>\n<p>-XX:-PrintGCDetails outputs detailed\u00a0\u00a0information at each collection<\/p>\n<p>-XX:-PrintGCTimeStamps outputs a time stamp at the start of each collection<\/p>\n<p>-xloggc=&lt;filename&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0outputs gc information to the specified file<\/p>\n<p>-XX:-DisableExplicitGC disable calls to system .gc( )<\/p>\n<p>&#8211; -XX:NewSize=2m default size of new generation<\/p>\n<p>-XX:MaxNewSize=size maximum size of the new generation<\/p>\n<p>-XX:PermSize=64m default size of permanent generation<\/p>\n<p>-XX:MaxPermSize=64m maximum size of the permanent generation<\/p>\n<p>&#8211; -Xms256m Initial heap size<\/p>\n<p>&#8211;Xmx512m\u00a0\u00a0maximum heap size<\/p>\n<p>-xx:survivor Ratio=&lt;value&gt;\u00a0\u00a0\u00a0Ratio of survivors spaces to young generation<\/p>\n<p>-XX:-UseParallelGC\u00a0\u00a0\u00a0Use parallel garbage collection for scavenges.<\/p>\n<p><strong>THREAD DUMP<\/strong><\/p>\n<p><strong>Tread dump:-<\/strong>\u00a0Thread dump provides a snapshot of the current active live threads. It provides the stack trace of all the java threads in the JVM. It is used when the server is hung and we want to see the threads executing and take their dump.<\/p>\n<p>There are different ways to take thread dump.<\/p>\n<p><strong>In unix<\/strong>: kill -3 &lt;pid&gt;<\/p>\n<p><strong>In windows:<\/strong>\u00a0\u00a0ctrl+break<\/p>\n<p><strong>WebLogic.Admin utility:\u00a0\u00a0<\/strong>javaWebLogic.Admin -url t3:\/\/localhost:7001 -username WebLogic -password WebLogic THRED_DUMP<\/p>\n<p><strong>WLST Scripting:<\/strong><\/p>\n<p>connect(&#8216;WebLogic&#8217;,&#8217;WebLogic&#8217;,&#8217;t3:\/\/localhost:7001&#8242;)<\/p>\n<p>cd(&#8216;server&#8217;)<\/p>\n<p>cd(&#8216;AdminServer&#8217;)<\/p>\n<p>TreadDump()<\/p>\n<p>disconnect()<\/p>\n<p>exit()<\/p>\n<p><strong>Admin console:\u00a0<\/strong><\/p>\n<p><strong>Step1:\u00a0<\/strong>login to the admin console<\/p>\n<p><strong>Step2:\u00a0<\/strong>Click on server<\/p>\n<p><strong>Step3:\u00a0<\/strong>Navigate to servers<\/p>\n<p><strong>Step4:\u00a0<\/strong>Click monitor tab<\/p>\n<p><strong>Step5:\u00a0<\/strong>Click on tread<\/p>\n<p><strong>Step6:\u00a0<\/strong>Click on the dumpthread stack.<\/p>\n<p><strong>Locating the Thread Dump:\u00a0\u00a0<\/strong>The thread dump is placed in the WebLogic log file. The log file location varies depending on the OS platform:<\/p>\n<p><strong>For UNIX:<\/strong>\u00a0the output is sent to:<\/p>\n<p>&lt;PS_HOME&gt;\/webserv\/&lt;DOMAIN_NAME&gt;\/servers\/logs\/PIA_stdout.log<\/p>\n<p><strong>For Linux:<\/strong>\u00a0the output is sent to:<\/p>\n<p>&lt;PS_HOME&gt;\/webserv\/&lt;DOMAIN_NAME&gt;\/servers\/logs\/PIA_stderr.log<\/p>\n<p><strong>For Windows:<\/strong>\u00a0the output is sent to:<\/p>\n<p>&lt;PS_HOME&gt;\\webserv\\&lt;DOMAIN_NAME&gt;\\servers\\PIA\\logs\\NTservice-&lt;DOMAIN_NAME&gt;-PIA.log<\/p>\n<p><strong>Analyzing a Thread Dump:\u00a0<\/strong>The thread dump can be a bit challenging to analyze, and you may need assistance from an Oracle Support Engineer. Below are some tips on how to analyze the thread dump. This information is broken out into the following sections:<\/p>\n<ol>\n<li>General Information about the thread dump<\/li>\n<li>Overview of types of threads commonly seen in thread dump<\/li>\n<li>Examples of different issues you may observe in the thread dump<\/li>\n<\/ol>\n<p><strong>1) General Information about the Thread Dump:\u00a0\u00a0<\/strong>Note that the thread dump always begins with this line:<\/p>\n<p><strong>===== FULL THREAD DUMP ===============<\/strong><\/p>\n<p>And ends with this line:<\/p>\n<p><strong>===== END OF THREAD DUMP ===============<\/strong><\/p>\n<p>The first line of the thread dump shows when the thread dump was created, followed by the exact java version you are using.<\/p>\n<p>Example:<\/p>\n<p><strong>Mon Apr 18 12:46:56 2011<\/strong><\/p>\n<p><strong>Oracle JRockit(R) R28.0.0-679-130297-1.6.0_17-20100312-2123-windows-ia32\u00a0<\/strong><\/p>\n<p><strong>2) Overview of Types of Threads commonly seen in Thread Dump:<\/strong><\/p>\n<ol>\n<li><strong>i) Threads waiting for Requests:\u00a0\u00a0<\/strong>You will always see some threads that are just waiting for work, as WebLogic always allocates some threads to be available and ready to process any incoming requests. These threads can easily be identified because you\u2019ll see<strong>\u201cExecuteThread.waitForRequest\u201d<\/strong>in the call stack. These threads will be in \u2018ACTIVE\u2019 or \u2018STANDBY\u2019 mode. These threads do not have much significance when troubleshooting. However, if you see a lot of these threads waiting for requests (20 or more), it most likely indicates that the environment is just recovering from a very heavy load, when the thread dump was taken (and as the load diminishes, WebLogic will remove many of these extra threads that are waiting for requests)<\/li>\n<\/ol>\n<p><strong>Ex:\u00a0at WebLogic\/work\/ExecuteThread.waitForRequest(ExecuteThread.java:157)<\/strong><\/p>\n<ol>\n<li><strong>ii) Socket Muxer Threads:\u00a0<\/strong>You will also see approximately two to five socket muxer threads. These threads&#8217; main responsibility is to read the request off the socket and pass the work to the appropriate thread. WebLogic allocates a percentage of execute threads from the self-tuning thread pool to be Muxer threads. Usually you will see three or four of these threads:<\/li>\n<\/ol>\n<p><strong>&#8220;ExecuteThread: &#8216;0&#8217; for queue:\u00a0&#8216;WebLogic.socket.Muxer'&#8221; id=25 idx=0x60 tid=2068 prio=5 alive, in native<\/strong><\/p>\n<p><strong>iii) ListenThreads:\u00a0<\/strong>You will also see approximately six \u201clisten threads\u201d, usually three for SSL and three for non-SSL. The purpose of these threads is to wait for connections to arrive. All browser requests enter the WebLogic server through these threads.<\/p>\n<p><strong>&#8220;DynamicListenThread[Default]&#8221;<\/strong><strong>\u00a0id=39 idx=0x90 tid=2812 prio=9 alive, in native<\/strong><\/p>\n<p><strong>&#8220;DynamicSSLListenThread[DefaultSecure]&#8221;<\/strong><strong>\u00a0id=40 idx=0x94 tid=3148 prio=9 alive, in native<\/strong><\/p>\n<ol>\n<li><strong>iv) Jolt Connection Threads:\u00a0<\/strong>WebLogic Server and the Tuxedo Application Server use Jolt to communicate with each other. PIA creates two threads inside the WebLogic\u2019s JVM per Jolt connection. For each Jolt connection made between WebLogic and the Tuxedo Application Servers, you will see a LLENwReader and a LLENwWriter thread in the thread dump:<\/li>\n<\/ol>\n<p><strong>&#8220;LLENwReader&#8221;<\/strong><strong>\u00a0id=52 idx=0xc4 tid=4408 prio=5 alive, in native, daemon<\/strong><\/p>\n<p><strong>&#8220;LLENwWriter&#8221;<\/strong><strong>\u00a0id=53 idx=0xc8 tid=7828 prio=5 alive, waiting, native_blocked, daemon<\/strong><\/p>\n<ol>\n<li><strong>v) Threads waiting on Application Server:\u00a0<\/strong>If the web server is waiting on the app server to process a request, you will see the following thread (below)<\/li>\n<\/ol>\n<p><strong>at\u00a0bea\/jolt\/IOBuf.waitOnBuf(IOBuf.java:119)<\/strong><\/p>\n<p><strong>3) Examples of Different Issues you may Observe in Thread Dump:\u00a0<\/strong>Below are examples of different issues and the thread stacks you may observe.<\/p>\n<p><strong>Many threads waiting on App Server:\u00a0<\/strong>If you see a lot of threads such as the one below, then this means that many of the WebLogic threads are waiting on the application server to finish processing the request:<\/p>\n<p><strong>at\u00a0bea\/jolt\/IOBuf.waitOnBuf(IOBuf.java:119)<\/strong><\/p>\n<ol>\n<li><strong>i) Many threads processing the same call stack:\u00a0<\/strong>If you see many threads all processing the same call stack, then you may need to review contents of the call stack in order to troubleshoot the issue. For example, in one case, the web server hung and the thread dump showed hundreds of threads like the one below. This was caused by an issue with a proxy server configuration, causing all threads to get hung up at logout:<\/li>\n<\/ol>\n<p><strong>com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord<\/strong><strong>(SSLSocketImpl.java:798)<\/strong><\/p>\n<p><strong>psft.pt8.psp.logoutAccessedPIAs<\/strong><strong>(Unknown Source)<\/strong><\/p>\n<ol>\n<li><strong>ii) All threads busy and waiting on one thread:\u00a0<\/strong>By design, the PIA does not allow more than one request per HTTP session, to be submitted to the application server. If the PIA receives multiple requests from the same HTTP session, it will queue up all subsequent requests and process just one at a time. Typically, there should not be situations where the PIA receives multiples requests from the same HTTP session. However, this can occur in the following situations:<\/li>\n<li>You are using a proxy server that is re-submitting requests to the web server if a response is not received within a certain time.<\/li>\n<\/ol>\n<p>-OR-<\/p>\n<ol start=\"2\">\n<li>A user submits a long-running request, and while waiting for the request to finish, the user continuously attempts to submit more requests.<\/li>\n<\/ol>\n<p>When one of the above scenarios occurs, in the thread-dump you see one request waiting on Jolt to get response from the App-Server and many other threads waiting for the lock on the session to be released. Below are excerpts from a thread dump, showing this situation:<\/p>\n<ol>\n<li><strong>a)<\/strong>There are many threads like this that are \u201cblocked\u201d, and all the threads are waiting on the same lock #.<\/li>\n<\/ol>\n<p><strong>&#8212; Blocked trying to get lock: java\/lang\/String@0x27D36AC0[thin lock]<\/strong><\/p>\n<ol>\n<li><strong>b)<\/strong>The thread that is holding the lock on \u201c0x27D36AC0\u201d (that all blocked threads are waiting on), is usually processing a jolt request (ie it is waiting on the application server):<\/li>\n<\/ol>\n<p><strong>at bea\/jolt\/IOBuf.waitOnBuf<\/strong><strong>(IOBuf.java:119)<\/strong><\/p>\n<p><strong>^&#8211; Holding lock: java\/lang\/String@0x27D36AC0[thin lock]<\/strong><\/p>\n<ol>\n<li><strong>c)<\/strong>At the end of the thread dump, you may see a list of \u201cblocked locked chains\u201d. In this list, you\u2019ll notice that all threads are waiting on one thread: \u201cThread #0\u201d in this example. Which happens to be a jolt request (ie it is waiting on application server)<\/li>\n<\/ol>\n<p><strong>Blocked lock chains<\/strong><\/p>\n<p><strong>===================<\/strong><\/p>\n<p><strong>Chain 2:\u00a0&#8220;[ACTIVE] ExecuteThread: &#8216;2&#8217; for queue: &#8216;WebLogic.kernel.Default (self-tuning)'&#8221; id=35 idx=0x80 tid=3964 waiting for java\/lang\/String@0x27D36AC0\u00a0\u00a0held by:<\/strong><\/p>\n<p><strong>&#8220;[ACTIVE] ExecuteThread: &#8216;0&#8217;<\/strong><strong>\u00a0for queue: &#8216;WebLogic.kernel.Default (self-tuning)'&#8221; id=16 idx=0x48 tid=180 in chain 1<\/strong><\/p>\n<p><strong>Chain 3: &#8220;[ACTIVE] ExecuteThread: &#8216;3&#8217; for queue: &#8216;WebLogic.kernel.Default (self-tuning)'&#8221; id=44 idx=0xa4 tid=4620 waiting for java\/lang\/String@0x27D36AC0\u00a0\u00a0held by:<\/strong><\/p>\n<p><strong>&#8220;[ACTIVE] ExecuteThread: &#8216;0&#8217;<\/strong><strong>\u00a0for queue: &#8216;WebLogic.kernel.Default (self-tuning)'&#8221; id=16 idx=0x48 tid=180 in chain 1<\/strong><\/p>\n<p><strong>Chain 4:\u00a0&#8220;[ACTIVE] ExecuteThread: &#8216;4&#8217; for queue: &#8216;WebLogic.kernel.Default (self-tuning)'&#8221; id=49 idx=0xb8 tid=1120 waiting for java\/lang\/String@0x27D36AC0<\/strong><\/p>\n<p><strong>held by:<\/strong><\/p>\n<p><strong>&#8220;[ACTIVE] ExecuteThread: &#8216;0&#8217; for queue:<\/strong><strong>\u00a0&#8216;WebLogic.kernel.Default (self-tuning)'&#8221; id=16 idx=0x48 tid=180 in chain 1<\/strong><\/p>\n<p><strong>Analysing ThreadDump by using Summari tool:<\/strong><\/p>\n<p>Download: The binary is available for download at\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<a href=\"http:\/\/yusuke.homeip.net\/samurai\/en\/samurai.jar\">http:\/\/yusuke.homeip.net\/samurai\/en\/samurai.jar<\/a><\/p>\n<p><strong>How to launch samurai:\u00a0<\/strong>You can simply double-click to launch Samurai on your desktop or type as following in your command prompt.<\/p>\n<p>$java\u00a0\u00a0-jar\u00a0\u00a0samurai.jar<\/p>\n<p>Automatic update is not available with this way. Please check and download latest version manually.<\/p>\n<p><strong>Step1:\u00a0<\/strong>Drag and drop the ThreadDump into summary tool<\/p>\n<p><strong>Step2:\u00a0<\/strong>When Samurai detects a thread dump in your log, a tab named &#8220;Thread Dump&#8221; will appear.<\/p>\n<p><strong>Step3:\u00a0<\/strong>You can just click &#8220;Thread dumps&#8221; tab to see the analysis result. Samurai colors idle threads in\u00a0<strong>gray<\/strong>, blocked threads in\u00a0<strong>red<\/strong>\u00a0and running threads in<strong>\u00a0green<\/strong>.<\/p>\n<p>There are two resultant views and Samurai shows\u00a0<strong>&#8220;Table view&#8221;<\/strong>\u00a0by default.<br \/>\nIn many cases, you are just interested in the table view and the\u00a0<strong>sequence view<\/strong>. Use the table view to decide which thread needs be inspected, the sequence view to understand the thread&#8217;s behavior.<\/p>\n<p><strong>Result1:<\/strong><\/p>\n<p><strong>Result2:<\/strong><\/p>\n<p><strong>HeapDump:\u00a0<\/strong>A Heapdump\u00a0is a snapshot of JVM memory \u2013 it shows the live objects on the heap along with references between objects. It is used to determine memory usage patterns and memory leak suspects.\u00a0It is useful to analyse OOM(OutOfMemory) situations.<\/p>\n<p><strong>To take Heap dump:<\/strong><\/p>\n<p>Eclipse Memory Ananlyser\u00a0is a very useful tool to analyze heap dumps. It has a lot of features such as Memory Leak detection where it runs an automated test to determine the suspected leaks.<\/p>\n<p>Step 1)\u00a0Start the WebLogic Server, with the application in active state which causes memory leak.<\/p>\n<p>Step 2)\u00a0Get the process id of the server using jps<\/p>\n<p>Step 3)\u00a0Access the application that causes memory leak<\/p>\n<p>Step 4)\u00a0Take heap dump at regular interval using jmap.<\/p>\n<p>jmap -dump:format=b,file=dump1.bin [processId]<\/p>\n<p><strong>Analyzer HeapDump by using Eclipse MAT:\u00a0\u00a0\u00a0<\/strong>Analyzer\u00a0\u00a0Open the Heap Dump in Eclipse Memory Analyzer (U can download it from<a href=\"http:\/\/www.eclipse.org\/mat\/downloads.php\">http:\/\/www.eclipse.org\/mat\/downloads.php<\/a>) Approximate size is 42 MB. Just u need to extract this Zip then u can directly start (no Installation needed)<\/p>\n<p><strong>Step1:<\/strong><\/p>\n<p><strong>Step2:\u00a0<\/strong>Observe the heap usage of Objects in the heap dumps. If the object instance keeps on increasing in the subequent heap dumps, force a garbage collection from the WebLogic Server console.<\/p>\n<p><strong>Step3:\u00a0<\/strong>Take heap dumps again and open in the Eclipse Memory Analyzer. If the number of instances still don\u2019t go down for those objects, you can expect to see this<br \/>\n<strong>&lt;Jul 16, 2010 10:49:15 AM IST&gt; &lt;Critical&gt; &lt;Health&gt; &lt;BEA-310003&gt; &lt;Free memory in<br \/>\nthe server is 47,856 bytes. There is danger of OutOfMemoryError&gt;<br \/>\nException in thread \u201cThread-12?\u00a0java.lang.OutOfMemoryError:\u00a0Java heap space<br \/>\nat demo.MemoryLeakTest.runTest(MemoryLeakTest.java:14)<br \/>\nat jsp_servlet.__memoryleak$1.run(__memoryleak.java:86)<br \/>\nat java.lang.Thread.run(Thread.java:619)<\/strong><\/p>\n<p>If the leak is happening due to a WebLogic Class, it can be a known issue or an undiscovered BUG. You need to get in touch with Oracle Support. If it\u2019s an Application Class, you need to contact the developers. Out of Memory can also happen dude to third party codes such as database drivers.<\/p>\n<p><strong>How to install Eclips MAT? How to Analyze Heapdump using Eclips MAT and Jhat tools:<\/strong><\/p>\n<p><strong>Step1:\u00a0<\/strong>download the Eclips MAT<\/p>\n<p><strong>Step2:\u00a0<\/strong>Extract Memory Analyser zip file and open MemoryAnalyzer.ini<\/p>\n<p><strong>Step3:\u00a0<\/strong>\u00a0Double-click on MemoryAnalyzer.exe to start Memory Analyser Tool<\/p>\n<p><strong>Step4:\u00a0<\/strong>Select Search for new features to install and click Next<\/p>\n<p><strong>Step5:<\/strong>\u00a0\u00a0Accept the license agreements and click Next<\/p>\n<p><strong>Step6:\u00a0<\/strong>Click Finish to install the extensions<\/p>\n<p><strong>Step7:\u00a0<\/strong>Click Install All to ignore the warning<\/p>\n<p><strong>Step8:\u00a0<\/strong>Restart Memory Analyser to reflect changes.<\/p>\n<p><strong>JPROFILE<\/strong><\/p>\n<p>Introduction:\u00a0JProfiler eases developers in creating more efficient applications by improving their performance. It is oriented towards testing and exploring different aspects of the performance of a Java program, concerning the operation of the JVM making use of available platform resources. JProfile is mainly using to find out the memory leaks of JVM.<\/p>\n<p>JProfiler provides the following functionality:<\/p>\n<ol>\n<li>Memory consumption measurement<\/li>\n<li>Memory stack frames tracing<\/li>\n<li>CPU loads profiling<\/li>\n<li>Momentary heap allocation information<\/li>\n<li>Thread state progress statistics<\/li>\n<li>Visual representation of JVM work loads by different parameters<\/li>\n<li>Source code reference<\/li>\n<li>Garbage collection during profiling<\/li>\n<li>Remote profiling<\/li>\n<li>Profiling only of a particular stage or a combination of several stages of the program life cycle<\/li>\n<li>Using different target environments<\/li>\n<li>Saving profiler information for further examination<\/li>\n<li>Exporting profiler information in text format<\/li>\n<\/ol>\n<p><strong>JProfiler<\/strong>\u00a0is a commercially licensed\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_(programming_language)\">Java<\/a>\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Profiling_(computer_programming)\">profiling<\/a>\u00a0tool developed by ej-technologies GmbH, targeted at\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_EE\">Java EE<\/a>\u00a0and\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_SE\">Java SE<\/a>applications.<\/p>\n<ol>\n<li>JProfiler works both asa stand-alone application and as a plug-in for the Eclipse software development environment.<\/li>\n<li>JProfiler supports local profiling (analysis of applications running on the same machine as the JProfiler software) and remote profiling (analysis of Java applications running on remote machines)<\/li>\n<li>Enables both memory profile to assess memory usage and dynamic allocation leaks and CPU profiling to assess thread conflicts.<\/li>\n<li>Provides visual representation for the virtual machine load in terms of active and total bytes, instances, threads, classes, Garbage Collector activity.<\/li>\n<\/ol>\n<p>Download Jprofiler(<a href=\"http:\/\/www.ej-technologies.com\/download\/jprofiler\/files.html\">http:\/\/www.ej-technologies.com\/download\/jprofiler\/files.html<\/a>)<\/p>\n<p>You will be asked to provide your name and e-mail id.An Evaluation Key will be mailed to you.<\/p>\n<p>At the time of installation, you will be prompted for the installation key, copy it from your mail and paste it as shown in the screenshots.<\/p>\n<p><strong><\/p>\n<p><\/strong><\/p>\n<p>NOTE:\u00a0It is not recommended to use JProfiler in Production Environments .as it consumes more resources.which may not be desired in Production Envs.<\/p>\n<p><strong>Patch:\u00a0<\/strong>A\u00a0<strong>patch<\/strong>\u00a0is a piece of software designed to fix problems<a href=\"http:\/\/en.wikipedia.org\/wiki\/Patch_(computing)#cite_note-news.com-1\"><sup>[1]<\/sup><\/a>\u00a0with, or update a\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Computer_program\">computer program<\/a>\u00a0or its supporting data. This includes fixing\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Security_vulnerability\">security vulnerabilities<\/a><a href=\"http:\/\/en.wikipedia.org\/wiki\/Patch_(computing)#cite_note-news.com-1\"><sup>[1]<\/sup><\/a>\u00a0and other\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Computer_bug\">bugs<\/a>, and improving the\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Usability\">usability<\/a>\u00a0or\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Performance\">performance<\/a>. Though meant to fix problems, poorly designed patches can sometimes introduce new problems (see\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_regression\">software regressions<\/a>). In some special cases updates may knowingly break the functionality, for instance, by removing components for which the update provider is no longer licensed or disabling a device.<\/p>\n<p>Patch management is the process of using a strategy and plan of what patches should be applied to which systems at a specified time.<\/p>\n<p><strong>Patch installation steps:<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Step1:\u00a0<\/strong>Take the back up of bea home directory and config.xml file<\/p>\n<p><strong>Step2:\u00a0<\/strong>Copy all patches along with the patch-catalog.xml file to the Linux box.at\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/oracle\/utils\/bsu\/cache_dir<\/p>\n<p><strong>Step3:\u00a0<\/strong>Stop all the servers including admin.<\/p>\n<p><strong>Step4:\u00a0<\/strong>On the Linux machine go to the bsu folder. ( *\/oracle\/utils\/bsu\/) and run the\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0following command<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Ex:<\/strong>\u00a0.\/bsu.sh -prod_dir=&lt;WebLogic home&gt; -patchlist=&lt;patch name&gt; -verbose -install<\/p>\n<p><strong>Step5:\u00a0<\/strong>Use the below command to check the output<\/p>\n<p>*\\oracle\\utils\\bsu&gt; .\/bsu.sh -view -prod_dir=\/usr\/local\/oracle\/wls1033\/wlserver_10.3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-status=applied<\/p>\n<p><strong>Step6:\u00a0<\/strong>Start the all servers.<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Step7:\u00a0<\/strong>Check the application health.<\/p>\n<p><strong>Commands:<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Patch installation:\u00a0<\/strong>.\/bsu.sh -prod_dir=\/usr\/local\/oracle\/wls1033\/wlserver_10.3 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0patchlist=4EWM -verbose\u00a0\u00a0\u00a0-install<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Patch Uninstallation:\u00a0<\/strong>.\/bsu.sh -remove -patchlist=1FKM &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0prod_dir=\/usr\/local\/oracle\/wls1033\/wlserver_10.3 \u2013verbose<\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Check for what are all patches installed:\u00a0<\/strong>.\/bsu.sh -view &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0prod_dir=\/usr\/local\/oracle\/wls1033\/wlserver_10.3 -status=applied<\/p>\n<p><strong>Creating patch logs:<\/strong>\u00a0\u00a0.\/bsu.sh -report -log=test.log -log_priority=trace<\/p>\n<p>Screen shots<\/p>\n<p>Applying patches on WebLogic Server using Oracle Smart\u00a0Update(BSU):\u00a0\u00a0Oracle provides the Smart Update utility to apply patches and upgrade the WebLogic Server installations. Oracle\u2019s WebLogic Server is now a critical component\u00a0 of Fusion Middleware and every other component of Fusion Middleware requires WebLogic Server to be installed as\u00a0 a pre-requisite. Applying patches and upgrading WebLogic Server is quite straight forward using the Oracle\u2019s Smart Update utility,the documentation for Oracle Smart Update Utility can be found\u00a0<a href=\"http:\/\/download.oracle.com\/docs\/cd\/E12839_01\/doc.1111\/e14143\/toc.htm\">here.<\/a><\/p>\n<p>Step1: Shutdown and take a complete backup of the WLS environment.<\/p>\n<p>The Startup\/Shutdown scripts are placed in\u00a0\u00a0\u00a0$WLS_HOME\/user_projects\/domains\/&lt;domain_name&gt;\/bin<\/p>\n<p>Step2:\u00a0The Oracle Smart Update Tool is located at<strong>\u00a0\u00a0<\/strong>\u201c$WLS_HOME\/utils\/bsu<strong>\u201c<\/strong><\/p>\n<p><strong>Step3:\u00a0<\/strong>Launch the the Oracle Smart Update Tool :<\/p>\n<p><strong>Step4:<\/strong>\u00a0Once logged in, you will be presented with Oracle Smart Update Dialog.<\/p>\n<p><strong>Step5:<\/strong>\u00a0You can choose to \u201cRegister for security updates\u201d, this is usually helpful to keep yourself updated with the latest security updates and product expiration.<\/p>\n<p><strong>Step7:<\/strong>\u00a0On the left pane you would see \u00a0 WebLogic Servers installed\u00a0 and on the right pane you will see two tabs. \u201cGet Patches\u201d and \u201cManage Patches\u201d and a section to show the downloaded patches.<\/p>\n<p><strong>Step8:<\/strong>\u00a0Now select the patches and hit the \u201cDownload Selected\u201d button, you will be prompted if you wish to to validate and resolve conflicts.<\/p>\n<p><strong>Step9:<\/strong>\u00a0The Validation completes with the following message:<\/p>\n<p><strong>Step10:<\/strong>\u00a0Click \u201cOK\u201d to proceed downloading the patches.<\/p>\n<p><strong>Step11:<\/strong>\u00a0Once the patches are downloaded and click the \u201cManage Patches\u201d tab to proceed with the patch application. In the \u201cDownloaded Patches\u201d section you will notice the patches downloaded, click the \u201cup\u201d arrow to apply the patch<\/p>\n<p><strong>Step12:<\/strong>\u00a0You will be prompted with couple of prompts for you to take action:<\/p>\n<p>Click \u201cOK\u201d to proceed<\/p>\n<p><strong>Step13:<\/strong>\u00a0Once more the validation is done, click \u201cOK\u201d to proceed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>Step14:<\/strong>\u00a0 One more \u201cAre you sure?\u201d prompt, annoying I know. Click \u201cProceed\u201d to apply the patch<\/p>\n<p><strong>Step15:\u00a0<\/strong>\u00a0Once the patch is applied you\u2019d see the patch in the Applied Patches \u201cDefault\u201d tab<\/p>\n<p>That\u00a0\u00a0the patch is now applied. If you face any issues its worth investigating the server logs.<\/p>\n<p><strong>Log File Location:\u00a0<\/strong>The log file location is:<\/p>\n<p>C:\/bea\/user_projects\/domains\/ram_domain\/servers\/admin server\/log<\/p>\n<p><strong>1) Access log:<\/strong><\/p>\n<p><strong>2) Serveer log:<\/strong>\u00a0The\u00a0server log\u00a0records information about events such as the startup and shutdown of servers, the deployment of new applications, or the failure of one or more subsystems. The messages include information about the time and date of the event as well as the ID of the user who initiated the event.<\/p>\n<p><strong>3) Domain log:\u00a0<\/strong>This will have about domain information. (domainname.log)<\/p>\n<p><strong>4) AdminServer log:\u00a0<\/strong>This will have about the AdminServer information. (AdminServer.log)<\/p>\n<p><strong>5) Out logs:\u00a0<\/strong>This will have about the JVM output. (Adminserver.out)<\/p>\n<p><strong>6) Application logs:\u00a0<\/strong>This will have information about each and every application which we deployed in server.<\/p>\n<p><strong>7) Node Manager logs:\u00a0<\/strong>This will have information about Node Manager. (node manager.log)<\/p>\n<p>(C:\/bea\/WebLogic91\/common\/nodemanager\/nodemanager.log)<\/p>\n<p><strong>Diff b\/w WebLogic 8,9,10 &amp; 11 versions:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td>Features<\/td>\n<td>WLS8.1<\/td>\n<td>WLS9x<\/td>\n<td width=\"139\">WLS10.3 and 11G<\/td>\n<\/tr>\n<tr>\n<td>JDBC Connection Pool-Max Capacity<\/td>\n<td>PM-25(AdminServer)<\/p>\n<p>DM-15(AdminServer)<\/p>\n<p>PM-15(managed Server)<\/td>\n<td>PM and DM-15<\/p>\n<p>(AdminServer and Managed Server)<\/td>\n<td width=\"139\">PM and DM-15<\/p>\n<p>(AdminServer and Managed Server)<\/td>\n<\/tr>\n<tr>\n<td>Execute ThreadDefaultThreadCount<\/td>\n<td>PM-25(AdminServer)<\/p>\n<p>DM-15(AdminServer)<\/p>\n<p>PM-15(managed Server)<\/td>\n<td>PM and DM-15<\/p>\n<p>(AdminServer and Managed Server)<\/td>\n<td width=\"139\">PM and DM-15<\/p>\n<p>(AdminServer and<\/p>\n<p>Managed Server)<\/td>\n<\/tr>\n<tr>\n<td>JMS Services<\/td>\n<td>Queue and Topics can beCreated under JMS Server<\/td>\n<td>Queue and Topic Services Can be Created only by JMS Module<\/td>\n<td width=\"139\">Queue and Topic Services<\/p>\n<p>Can be Created only by JMS Module<\/td>\n<\/tr>\n<tr>\n<td>JMS Server Starting and Stopping<\/td>\n<td>Not Available<\/td>\n<td>Not Available<\/td>\n<td width=\"139\">Particular JMS Instances Can be Stopped<\/td>\n<\/tr>\n<tr>\n<td>JMS Advanced features<\/td>\n<td>Quota,SAF(Store and Forward Agents) is not Available<\/td>\n<td>Quota,SAF(Store and Forward Agents)is Available<\/td>\n<td width=\"139\">Quota,SAF<\/p>\n<p>(Store and Forward Agents)<\/p>\n<p>is Available<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td>JMS Configuration repository<\/td>\n<td>NO Config file for JMS<\/td>\n<td>Separate Configuration File for JMS inside the\u00a0 WebLogic Domain<\/td>\n<td>Separate Configuration File for JMS inside the\u00a0 WebLogic Domain<\/td>\n<\/tr>\n<tr>\n<td>JMS transaction<\/td>\n<td>No JMS transaction Logs<\/td>\n<td>No JMS transaction Logs<\/td>\n<td>JMS transaction Logs<\/td>\n<\/tr>\n<tr>\n<td>Cluster\u2014Unicast\u00a0 Address<\/td>\n<td>No Unicast Address<\/td>\n<td>No Unicast address<\/td>\n<td>Unicast Address is available<\/td>\n<\/tr>\n<tr>\n<td>JMS Destination KeyCustom Key TypeFacility<\/td>\n<td>No Custom Key Type<\/td>\n<td>No Custom Key Type<\/td>\n<td>No Custom Key Type<\/td>\n<\/tr>\n<tr>\n<td>Garbage Collector Process Scheduled GC<\/td>\n<td>No GC<\/td>\n<td>NO GC<\/td>\n<td>Scheduled Garbage Collection<\/td>\n<\/tr>\n<tr>\n<td>XML\u2014Xpath and XLang\u2014WebService<\/td>\n<td>Not Supported<\/td>\n<td>Supported<\/td>\n<td>Supported<\/td>\n<\/tr>\n<tr>\n<td>EJB 3.0<\/td>\n<td>Not Supported<\/td>\n<td>Supported<\/td>\n<td>Supported<\/td>\n<\/tr>\n<tr>\n<td>Advanced WEbservice Support by SOA<\/td>\n<td>Not Supported<\/td>\n<td>NOT Supported<\/td>\n<td>Supported<\/td>\n<\/tr>\n<tr>\n<td>Oracle Fusion and Ebusiness Suite Integration<\/td>\n<td>Not Supported<\/td>\n<td>Not Supported<\/td>\n<td>Supported<\/td>\n<\/tr>\n<tr>\n<td>Log File(Default Transaction Log)<\/td>\n<td>Available<\/td>\n<td>Not Available<\/td>\n<td>Not Available<\/td>\n<\/tr>\n<tr>\n<td>JDBC log<\/td>\n<td>Available<\/td>\n<td>Not Available<\/td>\n<td>Not Available<\/td>\n<\/tr>\n<tr>\n<td>Jolt Connection Pools<\/td>\n<td>Not Available<\/td>\n<td>Available<\/td>\n<td>Not Available<\/td>\n<\/tr>\n<tr>\n<td>Config folder<\/td>\n<td>Not Available<\/td>\n<td>Available<\/td>\n<td>Available<\/td>\n<\/tr>\n<tr>\n<td>Prepare, Active states<\/td>\n<td>No Prepare state for application. Only active state<\/td>\n<td>Prepare state for application, This optimises memory utilization.<\/td>\n<td>Prepare state for application, This optimises memory utilization.<\/td>\n<\/tr>\n<tr>\n<td>Deployment fails<\/td>\n<td>Server dosent come up if deployment fails<\/td>\n<td>Server boots in ADMIN mode if deployment failes<\/td>\n<td>Server boots in ADMIN mode if deployment failes<\/td>\n<\/tr>\n<tr>\n<td>configuration information<\/td>\n<td>All configuration information is in one config.xml<\/td>\n<td>Seperate xml files for domain config and jms modules are added<\/td>\n<td>Seperate xml files for domain config and jms modules are added<\/td>\n<\/tr>\n<tr>\n<td>Side by side deployment<\/td>\n<td>Side by side deployment is not possible<\/td>\n<td>Side by side deployment is possible<\/td>\n<td>Side by side deployment is possible<\/td>\n<\/tr>\n<tr>\n<td>Lock and Edit<\/td>\n<td>Not Available<\/td>\n<td>Available<\/td>\n<td>Available<\/td>\n<\/tr>\n<tr>\n<td>Connection pools<\/td>\n<td>We have connection pools and datasources<\/td>\n<td>We have datasources and connection pools are inside datasources.<\/td>\n<td>We have datasources and connection pools are inside datasources.<\/td>\n<\/tr>\n<tr>\n<td>app inf lib and classes<\/td>\n<td>Not Available<\/td>\n<td>Available<\/td>\n<td>Available<\/td>\n<\/tr>\n<tr>\n<td>Deployment updates<\/td>\n<td>We need to delete and redeploy from admin console<\/td>\n<td>We can update the application using admin console<\/td>\n<td>We can update the application using admin console<\/td>\n<\/tr>\n<tr>\n<td>Queues<\/td>\n<td>We have exclude queues.<\/td>\n<td>We have work managers<\/td>\n<td>We have work managers<\/td>\n<\/tr>\n<tr>\n<td>WebLogic Scripting Tool(WLST)<\/td>\n<td>Not Available<\/td>\n<td>Available<\/td>\n<td>Available<\/td>\n<\/tr>\n<tr>\n<td>license.bea<\/td>\n<td>genericlicense.bea file for each version that you candownload from Oracle.<\/td>\n<td>genericlicense.bea file for each version that you candownload from Oracle.<\/td>\n<td>In WLS 10 MP2 and above, the downloadedsoftware comes with a fully blown license so no need to evendownload a new one from Oracle.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Ticketing Tools<\/strong><\/p>\n<p><strong>1) BMC Remedy ticketing tool:<\/strong><\/p>\n<p><strong>IITL(Information Technology Infrastructure Library)Process:<\/strong><\/p>\n<ol>\n<li>Change Management.<\/li>\n<li>Incident Management.<\/li>\n<li>Problem Management.<\/li>\n<li>Release Management.<\/li>\n<\/ol>\n<p><strong>Different Types of Tickets:<\/strong><\/p>\n<p><strong>1) Incident ticket which identity by INC:\u00a0<\/strong>Something happen accidently the ticket which raises manually or automatically.<\/p>\n<p><strong>Ex:\u00a0<\/strong>WebLogic server failed to startup\u00a0<strong>\u00a0<\/strong>ticket will be raised automatically.<\/p>\n<p><strong>2) Change ticket by CRQ:\u00a0<\/strong>If somebody wants to do change or creating a new during that time the change management ticket uses.<\/p>\n<p><strong>3) Problem ticket which identified by PBC:\u00a0<\/strong>It is used to managed problem investigations known errors and solutions DB(Data Base)entries. Problem management can practically prevent the occurency of incidents errors and addition management.<\/p>\n<p><strong>States of Tickets:<\/strong><\/p>\n<p><strong>1) New:\u00a0<\/strong>Displays when creating a new record or ticket.<\/p>\n<p><strong>2) Assigned:\u00a0<\/strong>Auto set to assigned when you create a new incident assigned to some one.<\/p>\n<p><strong>3) In progress:\u00a0<\/strong>Actively working on that incident also must select at assigning a record to yourself.<\/p>\n<p><strong>4) Pending:\u00a0<\/strong>can\u2019t work on that incident must fill in the reason failed or pending. It means keeping the ticket on hold for some time.<\/p>\n<p><strong>5) Resolved:\u00a0<\/strong>A solution or work around has been found, must fill in the status reason failed.<\/p>\n<p><strong>6) Closed:<\/strong>\u00a0The system<strong>\u00a0<\/strong>will auto-close in\u00a0<strong>five\u00a0<\/strong>business days or if user wants close the ticket we can close immediately or manually.<\/p>\n<p><strong>7) Canceled:\u00a0<\/strong>If record was an accident or the issue doesn\u2019t need resolution customer or support staff may task incident as cancelled.<\/p>\n<p><strong>Urgency or priority:<\/strong><\/p>\n<p><strong>1) Critical:\u00a0<\/strong>It will impact business.<\/p>\n<p><strong>2) High:\u00a0<\/strong>It will import only for that server or only for that particular batch systems.<\/p>\n<p><strong>3) Medium:\u00a0<\/strong>It is not that much critical but still we need take task on that job.<\/p>\n<p><strong>4) Low:\u00a0<\/strong>It does not require to consider this point.<\/p>\n<p>Based on how many systems, process and business units are afforded as well as if the work around is possible or not.<\/p>\n<p><strong>2)\u00a0\u00a0Amdocs clarify CRM Support:<\/strong><\/p>\n<p><strong>Handling Change Request:\u00a0<\/strong>If any config\u00a0\u00a0changes have been done. The change request will be raised.<\/p>\n<p><strong>Status of Tickets:<\/strong><\/p>\n<p><strong>1) Requested:\u00a0<\/strong>The ticket is in requested state. These are different levels of approvals needed for implementing any change request.<\/p>\n<p>Level1:\u00a0\u00a0Line manager ready.<\/p>\n<p>Level2:\u00a0\u00a0Production co-ordinater ready.<\/p>\n<p>Level3:\u00a0\u00a0Change co-ordinater ready.<\/p>\n<p>Level4:\u00a0\u00a0Skill group implementation(Request implementer) ready.<\/p>\n<p><strong>2) Ready:\u00a0<\/strong>While getting the approvals the ticket will be in ready state.<\/p>\n<p><strong>3) Scheduled:\u00a0<\/strong>After getting the approvals the ticket will come in to scheduled state.<\/p>\n<p><strong>4) Accepted:\u00a0<\/strong>For implementing any change request ticket should be in scheduled state. The request has to be accepted.<\/p>\n<p><strong>5) Resoled:<\/strong><\/p>\n<p><strong>6) Failed<\/strong><\/p>\n<p><strong>7) Rejected<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Weblogic Server Administration<\/p>\n<p> History <\/p>\n<p>BEA began as a software company, founded in 1995 and headquartered in San Jose, California. It grew to have 78 offices worldwide at the time of its acquisition by Oracle. BEA Weblogic, now Oracle Weblogic Server &#8211; Java EE enterprise infrastructure platform WebLogic Server: Oracle WebLogic is a server software application [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/3926"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3926"}],"version-history":[{"count":1,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/3926\/revisions"}],"predecessor-version":[{"id":3927,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/3926\/revisions\/3927"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}