<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>James Bayer&apos;s Blog</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/" />
   <link rel="self" type="application/atom+xml" href="http://blogs.oracle.com/jamesbayer/xml/rss.xml" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156</id>
   <updated>2009-11-18T18:17:57Z</updated>
   
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type Enterprise 4.23-en</generator>


<entry>
   <title>WebLogic Server Shared Libraries For Static Resources</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/11/weblogic_server_shared_librari.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.15632</id>
   
   <published>2009-11-18T18:11:12Z</published>
   <updated>2009-11-18T18:17:57Z</updated>
   
   <summary>In the OTN WLS General forum someone asked a question regarding using Shared Libraries to share static web resources among applications.  “Basically, we are trying to load jquery, css files, shared images, and what not into a shared library for access from other Web Applications.”  Shared libraries will handle this use case well.  I’ve put together a basic example using a simple image that is put into a shared library that is referenced by another web application.  The image in the screen shot below is from a shared library.  The web application that references it simply contains the JSP and a reference to the shared library in the weblogic.xml deployment descriptor.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="Eclipse" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>In the <a href="http://forums.oracle.com/forums/forum.jspa?forumID=570&amp;start=0">OTN WLS General forum</a> someone <a href="http://forums.oracle.com/forums/thread.jspa?messageID=3912404#3912404">asked a question regarding using Shared Libraries</a> to share static web resources among applications.&#160; “Basically, we are trying to load jquery, css files, shared images, and what not into a shared library for access from other Web Applications.”&#160; Shared libraries will handle this use case well.&#160; I’ve put together a basic example using a simple image that is put into a shared library that is referenced by another web application.&#160; The image in the screen shot below is from a shared library.&#160; The web application that references it simply contains the JSP and a reference to the shared library in the weblogic.xml deployment descriptor.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicServerSharedLibrariesForStaticRe_AB53/SharedLibExample_2.jpg"><img title="SharedLibExample" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="249" alt="SharedLibExample" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicServerSharedLibrariesForStaticRe_AB53/SharedLibExample_thumb.jpg" width="802" border="0" /></a> </p>  <h3>Basic Steps</h3>  <ol>   <li>Assemble the resources (images, css, etc) in a base directory, with subdirectories if desired</li>    <li>In the main directory, create a META-INF/MANIFEST.MF file describing the library</li>    <li>Package the base directory as a WAR file</li>    <li>Deploy the WAR as a library to WLS</li>    <li>Refer to the Shared Library in a web application’s WEB-INF/weblogic.xml</li>    <li>Refer to the static resources from the library in the web application as if they are local to your application</li> </ol>  <p><a href="http://download.oracle.com/docs/cd/E12839_01/web.1111/e13706/libraries.htm#WLPRG325">Here is the link to the full documentation</a> that describes all of the options for Shared Libraries in WebLogic.</p>  <h3>Simple Example</h3>  <p>I recommend taking a look at the shared libraries that ship with WebLogic Server to use as an example.&#160; In WLS 10.3.x they are located here: &lt;MIDDLEWARE_HOME&gt;\wlserver_10.3\common\deployable-libraries</p>  <p>Here is what my META-INF/MANIFEST.MF file looks like for my example, I simply copied an existing MANFIEST.MF from jsf-1.2.war and made edits:</p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Manifest-Version: 1.0</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Specification-Title: Images</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Specification-Version: 1.0</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Implementation-Title: Images Implementation</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Implementation-Version: 1.0</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Implementation-Vendor: Oracle</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Extension-Name: images</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre></pre>

<p>Here is what the packaging of the library looks like after zipping it up as a WAR file:</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">C:\temp\images&gt;jar -tf images.war</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">META-INF/</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">META-INF/MANIFEST.MF</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">oralogo_small.gif</pre></pre>

<p>As you can see, it’s only a simple WAR file with an oracle image in the base directory with a META-INF/MANIFEST.MF file describing the library.&#160; To deploy this to the WLS, you can do that as normal other than noting that it is a library.&#160; After doing that it will show up like this in the console:</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicServerSharedLibrariesForStaticRe_AB53/deployments_2.jpg"><img title="deployments" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="296" alt="deployments" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicServerSharedLibrariesForStaticRe_AB53/deployments_thumb.jpg" width="850" border="0" /></a> </p>

<p>If you’re using <a href="http://www.oracle.com/technology/products/enterprise-pack-for-eclipse/index.html">Oracle Enterprise Pack for Eclipse</a> and set your Windows-&gt;Preferences-&gt;Server-&gt;Runtime Environments correctly, then the existing shared libraries should be available in Preferences-&gt;WebLogic-&gt;Shared Libraries and you can add the library you just created to the list.&#160; This will allow you to edit the WEB-INF/weblogic.xml in the IDE with a dialog box, correctly specify the reference to the shared library, and deploy the shared library for you to the server if it has not been done already when you deploy the application.</p>

<p>weblogic.xml</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">&lt;?xml version=&quot;<span style="color: #8b0000">1.0</span>&quot; encoding=&quot;<span style="color: #8b0000">UTF-8</span>&quot;?&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">&lt;wls:weblogic-web-app xmlns:wls=&quot;<span style="color: #8b0000">http://xmlns.oracle.com/weblogic/weblogic-web-app</span>&quot; xmlns:xsi=&quot;<span style="color: #8b0000">http://www.w3.org/2001/XMLSchema-instance</span>&quot; xsi:schemaLocation=&quot;<span style="color: #8b0000">http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd</span>&quot;&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    &lt;wls:weblogic-version&gt;10.3.2&lt;/wls:weblogic-version&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    &lt;wls:context-root&gt;ImagesWeb&lt;/wls:context-root&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    &lt;wls:library-ref&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        &lt;wls:library-<span style="color: #0000ff">name</span>&gt;images&lt;/wls:library-<span style="color: #0000ff">name</span>&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        &lt;wls:specification-version&gt;1.0&lt;/wls:specification-version&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        &lt;wls:exact-match&gt;<span style="color: #0000ff">true</span>&lt;/wls:exact-match&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    &lt;/wls:library-ref&gt;</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">&lt;/wls:weblogic-web-app&gt;</pre></pre>

<p>Now in the index.jsp, I can simply refer to the image as if it were in my base directory of the application like this:</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">&lt;img src=&quot;<span style="color: #8b0000">oralogo_small.gif</span>&quot;/&gt;</pre></pre>

<h3>Conclusion</h3>

<p>Shared libraries are usually used to share code such as jars and class files in WARs and EARs, but they can also be used to share static resources.&#160; So let’s say I wanted to share a jar file, I would have a WEB-INF/lib directory in my shared library, and put any jars that I wanted my application’s to have in there.&#160; If it is an EAR file, then I would use APP-INF/lib.</p>

<p>You can <a href="http://blogs.oracle.com/jamesbayer/SimpleSharedLibraryExample.zip">download this extremely simple example here</a>.&#160; I tested this with WLS 10.3.2 also known as 11g PS1.</p>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[Oracle&rsquo;s Brian Oliver on Data Grid Design Patterns]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/11/oracles_brian_oliver_on_data_g.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.15385</id>
   
   <published>2009-11-05T16:07:39Z</published>
   <updated>2009-11-05T16:07:42Z</updated>
   
   <summary>Last week I wrote about my experiences playing with the Coherence Inbator’s Push Replication Pattern and showed some screenshots of the JMX instrumentation with JConsole and my post is already out of date.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="Coherence" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>Last week <a href="http://blogs.oracle.com/jamesbayer/2009/10/synchronizing_coherence_cluste.html">I wrote about my experiences</a> playing with the Coherence Inbator’s Push Replication Pattern and showed some screenshots of the JMX instrumentation with JConsole and my post is already out of date.&#160; This week there has been a <a href="http://brianoliver.wordpress.com/2009/11/01/new-coherence-incubator-releases-3/">new release</a> of the <a href="http://coherence.oracle.com/display/INCUBATOR/Home">Coherence Incubator</a> projects.&#160;&#160; Another new development is that you now learn directly from the lead of the Coherence Incubator projects as <a href="http://www.infoq.com/presentations/Data-Grid-Design-Patterns-Brian-Oliver">InfoQ just posted a video presentation</a> from <a href="http://brianoliver.wordpress.com/">Brian Oliver</a> discussing several of the projects and the rationale behind them.&#160; One announcement I’m particularly fond of is the new Examples project.&#160; This should help jump-start those getting started with the Coherence Incubator as in prior releases the examples were in separate places and not as complete.&#160; Cheers to the Incubator team for continuing to improve and share these patterns.</p>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[Synchronizing Coherence Clusters &ndash; A Tour of Push Replication]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/10/synchronizing_coherence_cluste.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.15173</id>
   
   <published>2009-10-22T22:30:39Z</published>
   <updated>2009-11-05T16:08:30Z</updated>
   
   <summary>Lately I&apos;ve been able to do some Coherence work with some local customers and play with the Coherence Incubator projects.  This entry will showcase one of the examples for Push Replication for sharing data among separate Coherence clusters.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="Coherence" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>Lately I've been able to do some <a href="http://coherence.oracle.com/display/COH/Oracle+Coherence+Knowledge+Base+Home">Coherence</a> work with some local customers and play with the <a href="http://coherence.oracle.com/display/INCUBATOR/Home">Coherence Incubator</a> projects.&#160; This entry will showcase one of the examples for Push Replication for sharing data among separate Coherence clusters.</p>  <h2>Inter-cluster Data Replication</h2>  <p>Coherence clustering technology makes a lot of sense for customers to be able to scale applications horizontally and reliably with very fast predictable performance.&#160; This is of course easy to do within one data center on a fast network.&#160; One of the common challenges that customers have is around High Availability and Disaster Recovery and keeping data synchronized across data centers.&#160; Normally Coherence is optimized to use UDP unicast or multicast, but what happens if the network is unreliable and/or has high latency which is common when networking multiple data centers?&#160; The answer is <a href="http://coherence.oracle.com/display/COH35UG/Configuring+and+Using+Coherence+Extend">Coherence TCP Extend</a>, which addresses these challenges by using TCP and the result is that multiple Coherence clusters can communicate together.</p>  <p>Multiple data centers are not the only reason you need to keep multiple clusters in sync.&#160; I recently came across a use case where it made sense to have separate Coherence clusters on different physical machines.&#160; The JVM processes for each machine have a single digit millisecond SLA for round trip time per request, so they are very sensitive to any outside events and it was a requirement to isolate the processes as much as possible.&#160; In this scenario one physical machine was Active and one was Passive for fail-over.&#160; During load-testing on the Active machine we found that bringing up cluster members on the Passive machine in the middle of the test impacted performance when both machines were part of the same cluster.&#160; Using a single Coherence cluster per machine ensures that the impact of cluster membership events are isolated to that machine only.</p>  <p>Leveraging the <a href="http://coherence.oracle.com/display/INCUBATOR/Push+Replication+Pattern+2.4.0">Coherence Incubator Push Replication</a> pattern, multiple Coherence clusters can keep data in sync whether they are on the same network subnet with low-latency or hundreds of miles apart in separate data centers.&#160; Let's take a look at the simplest example, which is Active - Passive scenario.&#160; In this situation we'll use Push Replication to make sure that Cache Entry operations (insert/update/delete) in the Active cache are replicated in the Passive cache.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/Incubator-PushReplication-Active-Passive_4.png"><img title="Incubator-PushReplication-Active-Passive" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="95" alt="Incubator-PushReplication-Active-Passive" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/Incubator-PushReplication-Active-Passive_thumb_1.png" width="238" border="0" /></a> </p>  <h2>Run the Example</h2>  <p>To run this example called ActivePassiveExample - which is included in the src distribution of the Push Replication Pattern, I used the following software:</p>  <ul>   <li><a href="http://www.oracle.com/technology/software/products/ias/htdocs/coherence.html">Coherence 3.5.2</a> for Java, </li>    <li><a href="http://coherence.oracle.com/display/INCUBATOR/Coherence+Common+1.4.0">Coherence Common 1.4.0</a></li>    <li><a href="http://coherence.oracle.com/display/INCUBATOR/Command+Pattern+2.4.0">Command Pattern 2.4.0</a></li>    <li><a href="http://coherence.oracle.com/display/INCUBATOR/Messaging+Pattern+2.4.0">Messaging Pattern 2.4.0</a></li>    <li><a href="http://coherence.oracle.com/display/INCUBATOR/Push+Replication+Pattern+2.4.0">Push Replication Pattern 2.4.0</a></li>    <li><a href="http://ant.apache.org/">Apache Ant 1.7.1</a></li>    <li><a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/download.jsp">JMX RI 1.2.1</a> - this is optional, simply do not issue the "-http" on either of the jmx ant targets which will prevent the JMX HTTP Adapter from binding</li>    <li><a href="http://blogs.oracle.com/jamesbayer/CoherenceIncubatorPushReplicationExample.zip">My build.xml and other example code</a></li> </ul>  <p></p>  <p></p>  <h3>The Ant Approach</h3>  <p>One of my colleagues <a href="http://www.linkedin.com/in/randystafford">Randy Stafford</a> introduced me using an ant build.xml file to organize different types of Coherence cluster processes.&#160; I found it to be a much simpler and cleaner approach than what I had been doing (multiple shell scripts or multiple Eclipse launch configurations).&#160; This way it is simple to centralize the shared configuration to a set of properties that are used by all of the ant targets and each process can easily override one of the properties with a -DpropertyName=propertyValue at the command line.&#160; Take a look at the build.xml file and let me know what you think.</p>  <h3>Step by Step</h3>  <ul>   <li>Set the build.properties paths according to your environment</li>    <li>Set up shells with ANT_HOME and JAVA_HOME and the PATH, setAntEnv.txt is an example</li>    <li>Run ant from those shells with the appropriate targets as described in build.xml.&#160; Minimum for this example:      <br />ant compile (you can reuse this shell)       <br />ant run_active_cache_server      <br />ant run_passive_cache_server      <br />ant run_active_publisher</li>    <li>Most likely you will also want to run the JMX and Console processes to see the values.      <br />ant run_active_jmx      <br />ant run_passive_jmx      <br />ant run_passive_console</li> </ul>  <h3>Guided Tour</h3>  <p>Once the JMX processes are running for Active and Passive, you can use jconsole to locally bind to the two MBeanConnector process.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/cluster_2.jpg"><img title="cluster" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="754" alt="cluster" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/cluster_thumb.jpg" width="904" border="0" /></a> </p>  <p>To verify that the passive cache received all the updates you can execute the run_passive_console target and execute two commands to see the contents.</p>  <ul>   <li>cache passive-cache</li>    <li>list</li> </ul>  <p>Notice that at the bottom of my output that the entry values are the last ten number leading up to 10000, which is what we expect looking at the sample publishing code.</p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 636px; padding-top: 5px; border-bottom: #cecece 1px solid; height: 238px; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>]   ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.5, OldestMemberId=1}
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>]   InvocationService{Name=Management, State=(SERVICE_STARTED), Id=1, Version=3.1, OldestMemberId=1}
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>]   )
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">cache passive-cache
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] 2009-10-22 17:07:31.797/10.344 Oracle Coherence GE 3.5.1/461p2 &lt;Info&gt; (thread=Main Thread, member=3): Loaded cache configuration from &quot;<span style="color: #8b0000">jar:file:/C:/Oracle/coherence-v3.5.1b461/coherence/lib/coherence.jar!/coherence-cache-config.
</span></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">xml&quot;<span style="color: #8b0000">
</span></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] 2009-10-22 17:07:32.156/10.703 Oracle Coherence GE 3.5.1/461p2 &lt;D5&gt; (thread=DistributedCache, member=3): Service DistributedCache joined the cluster <span style="color: #0000ff">with</span> senior service member 1
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>] 2009-10-22 17:07:32.172/10.719 Oracle Coherence GE 3.5.1/461p2 &lt;D5&gt; (thread=DistributedCache, member=3): Service DistributedCache: received ServiceConfigSync containing 259 entries
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] &lt;distributed-scheme&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>]   &lt;scheme-<span style="color: #0000ff">name</span>&gt;example-distributed&lt;/scheme-<span style="color: #0000ff">name</span>&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>]   &lt;service-<span style="color: #0000ff">name</span>&gt;DistributedCache&lt;/service-<span style="color: #0000ff">name</span>&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>]   &lt;backing-map-scheme&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>]     &lt;local-scheme&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>]       &lt;scheme-ref&gt;example-binary-backing-map&lt;/scheme-ref&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>]     &lt;/local-scheme&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>]   &lt;/backing-map-scheme&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>]   &lt;autostart&gt;<span style="color: #0000ff">true</span>&lt;/autostart&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>] &lt;/distributed-scheme&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] Map (?):
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">list
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] 2 = 9992
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>] 3 = 9993
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] 1 = 9991
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>] 0 = 10000
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] 5 = 9995
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>] 4 = 9994
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] 6 = 9996
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>] 8 = 9998
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] 9 = 9999
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">     [<span style="color: #0000ff">java</span>] 7 = 9997
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">     [<span style="color: #0000ff">java</span>] Map (passive-cache):</pre></pre>

<p>Let's look at the Active cluster processes.&#160; You can see that there are caches defined for many of the Incubator patterns.&#160; Below you can see that the publishing-active cache should have a size of 10 after running the run_active_publisher ant target.</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/publishingCacheStore_2.jpg"><img title="publishingCacheStore" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="566" alt="publishingCacheStore" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/publishingCacheStore_thumb.jpg" width="716" border="0" /></a> </p>

<p>Consider the role of some of the other caches:
  <br />DistributedCacheForCommandPattern - stores command contexts and co-located commands

<p>  <br />DistributedCacheForMessages - stores messages (in this case - entries that need to be pushed to the other cluster)</p>

<p>  <br />DistributedCacheForSubscriptions - maintains durable subscribers for the publishers</p></p>

<p>You can learn more about these caches by looking at the <a href="http://coherence.oracle.com/display/INCUBATOR/Home">Coherence Incubator Wiki</a> and reviewing the cache-config xml files that correspond to the Incubator project they are named for.</p>

<p>Looking at the MBean for the PublishingService, you can find operations to suspend, resume, and drain messages that have yet to be published.</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/publishingService%20%5B2%5D_2.jpg"><img title="publishingService [2]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="566" alt="publishingService [2]" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/publishingService%20%5B2%5D_thumb.jpg" width="716" border="0" /></a> </p>

<p>So if you suspend() the PublishingService, any changes to the publishing-active cache will be queued up as messages in the DistributedCacheForMessages coherence.messagingpattern.messages cache.&#160; You can try this by executing the suspend() operation then the run_active_publisher target again.&#160; You should then see the messaging cache full of the operations waiting to be replicated to the passive-cache.</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/messagesCache_2.jpg"><img title="messagesCache" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="566" alt="messagesCache" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/messagesCache_thumb.jpg" width="716" border="0" /></a> </p>

<p>Now if you execute the resume() operation on the PublisherService, the messages will replicate to the passive-cache.&#160; Alternatively you could execute the drain() operation and all of the messages waiting to be replicated would be deleted and the passive-cache would never receive those updates.</p>

<p>On the Passive cluster, you can see the TCP Extend working by looking at the ConnectionManager and the Connection MBeans.&#160; The passive process is listening in this case on port 20000 and has 1 active connection.</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/tcp_extend_2.jpg"><img title="tcp_extend" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="566" alt="tcp_extend" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/CoherenceIncubatorPushReplicationTour_DD98/tcp_extend_thumb.jpg" width="712" border="0" /></a> </p>

<h2>Conclusion</h2>

<p>This should give you a quick idea of the capabilities of the Push Replication Pattern and some of the JMX enabled capabilities in the Coherence Incubator projects.&#160; This is the most basic example and there are also samples for Hub-and-Spoke, Active-Active, and Federated patterns which are more complex.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Deployment Plan Example for WebLogic Server Part 2</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/09/deployment_plan_example_for_we.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.14262</id>
   
   <published>2009-09-08T22:45:13Z</published>
   <updated>2009-09-09T15:05:06Z</updated>
   
   <summary>I had some people contact me about my previous post on deployment plans that still had questions about a more complex example of using WebLogic Server deployment API support for JSR-88 Deployment Plans.  Steve Button – one of the WebLogic Server Product Managers -  provided a very helpful presentation on Deployment Plans that I will embed below.  I have also posted a Deployment Plan Sample on http://samplecode.oracle.com.  The sample illustrates how to change a web.xml context parameter value from “development” to “qualityassurance” to “production” all without modifying the EAR file at all.  The presentation and sample should help you become more familiar with the capabilities.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>I had some people contact me about my <a href="http://blogs.oracle.com/jamesbayer/2009/07/11gr1_update_and_a_deployment.html">previous post on deployment plans</a> that still had questions about a more complex example of using WebLogic Server deployment API support for JSR-88 Deployment Plans.&#160; Steve Button – one of the WebLogic Server Product Managers -&#160; provided a very helpful presentation on Deployment Plans that I will embed below.&#160; </p>  <p>I have also posted a <a href="https://codesamples.samplecode.oracle.com/servlets/tracking?id=S461">Deployment Plan Sample</a> on <a href="http://samplecode.oracle.com">http://samplecode.oracle.com</a>.&#160; The sample illustrates how to change a web.xml context parameter value from “development” to “qualityassurance” to “production” all without modifying the EAR file at all.&#160; The presentation and sample should help you become more familiar with the capabilities.</p>  <p><strong>UPDATED 9/9/2009</strong> – Also there is a complete Oracle By Example – showing how to <a href="http://www.oracle.com/technology/obe/fusion_middleware/wls103/appdeploy/deploy/deploy_plan/deploy_plan.htm">create and use a Deployment Plan step-by-step</a>.</p>  <div id="__ss_1951556" style="width: 425px; text-align: left"><a title="WebLogic Deployment Plan Example" style="display: block; margin: 12px 0px 3px; font: 14px helvetica,arial,sans-serif; text-decoration: underline" href="http://www.slideshare.net/jambay/weblogic-deployment-plan-example">WebLogic Deployment Plan Example</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=deploymentplanexample-090904080844-phpapp02&amp;stripped_title=weblogic-deployment-plan-example" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=deploymentplanexample-090904080844-phpapp02&amp;stripped_title=weblogic-deployment-plan-example" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>    <div style="font-size: 11px; padding-top: 2px; font-family: tahoma,arial; height: 26px">View more <a style="text-decoration: underline" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration: underline" href="http://www.slideshare.net/jambay">jambay</a>.</div> </div>]]>
      
   </content>
</entry>

<entry>
   <title>BEA Product Documentation is Moving to Oracle.com Websites</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/08/bea_product_documentation_is_m.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.13996</id>
   
   <published>2009-08-25T16:21:54Z</published>
   <updated>2009-08-25T16:21:57Z</updated>
   
   <summary>As part of the decommissioning of bea.com websites to oracle.com websites, edocs.bea.com is going to be shutdown at the end of August 2009.  This means if you have bookmarked or linked to edocs in other places, those links will break.  Metalink Note 876228.1 has the official announcement on the support website.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>As part of the decommissioning of bea.com websites to oracle.com websites, edocs.bea.com is going to be shutdown at the end of August 2009.&#160; This means if you have bookmarked or linked to edocs in other places, those links will break.&#160; Metalink Note 876228.1 has the official announcement on the support website.</p>  <p><b>The new OTN URL for legacy BEA releases is:</b>     <br /><a href="http://www.oracle.com/technology/documentation/bea_doc_index.html">http://www.oracle.com/technology/documentation/bea_doc_index.html</a>     <br /><b>The new OTN URL for legacy WLS releases is:</b>     <br /><a href="http://www.oracle.com/technology/documentation/weblogic_server.html">http://www.oracle.com/technology/documentation/weblogic_server.html</a></p>  <h3>My Documentation Tips</h3>  <p>In case you forget or misplace these URL’s it’s helpful to know how to navigate there from scratch.&#160; Let me give you a short tour that will at least point you on how to find the older WebLogic Server release documentation.&#160; The documentation for the 11g release of middleware (powered by WebLogic 10.3.1) has a new look and feel compared to edocs.&#160;&#160; You can always find the documentation by starting at OTN <a title="http://www.oracle.com/technology/" href="http://www.oracle.com/technology/">http://www.oracle.com/technology/</a>.</p>  <ul>   <li>There is a drop-down menu that will take you to the middleware documentation. <a title="http://www.oracle.com/technology/documentation/middleware.html" href="http://www.oracle.com/technology/documentation/middleware.html">http://www.oracle.com/technology/documentation/middleware.html</a> </li>    <li>If you click through to the 11g html library you’ll land at a page like this: <a title="http://download.oracle.com/docs/cd/E12839_01/index.htm" href="http://download.oracle.com/docs/cd/E12839_01/index.htm">http://download.oracle.com/docs/cd/E12839_01/index.htm</a> </li>    <li>There is a link in the left column to drill down into WebLogic Server which takes you here: <a title="http://download.oracle.com/docs/cd/E12839_01/wls.htm" href="http://download.oracle.com/docs/cd/E12839_01/wls.htm">http://download.oracle.com/docs/cd/E12839_01/wls.htm</a> </li>    <li>On the bottom right-hand side of the WLS page you’ll see the links to the older releases. <a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/BEAProductDocumentationisMoving_8D50/OlderReleases_2.jpg"><img title="OlderReleases" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="117" alt="OlderReleases" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/BEAProductDocumentationisMoving_8D50/OlderReleases_thumb.jpg" width="244" align="left" border="0" /></a> </li> </ul>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p>Personally the way I like to use the documentation is via google search.</p>  <p>I have a keyboard shortcut that allows me to type “wls securing web applications” which then automatically opens a the google search for:</p>  <ul>   <li>site:<a href="http://download.oracle.com/docs/cd/E12839_01/">http://download.oracle.com/docs/cd/E12839_01/</a> securing web applications </li> </ul>  <p>Check out the results, it works pretty well.</p>  <p><a title="http://www.google.com/search?&amp;ie=utf-8&amp;oe=utf-8&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a&amp;q=site%3Ahttp%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE12839_01%2F+securing+web+applications" href="http://www.google.com/search?&amp;ie=utf-8&amp;oe=utf-8&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a&amp;q=site%3Ahttp%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE12839_01%2F+securing+web+applications">http://www.google.com/search?&amp;ie=utf-8&amp;oe=utf-8&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a&amp;q=site%3Ahttp%3A%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FE12839_01%2F+securing+web+applications</a></p>]]>
      
   </content>
</entry>

<entry>
   <title>11gR1 Update and a Deployment Plan Example for WebLogic Server</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/07/11gr1_update_and_a_deployment.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.13458</id>
   
   <published>2009-07-23T04:51:21Z</published>
   <updated>2009-07-23T15:48:51Z</updated>
   
   <summary>It is a very exciting time to be involved with Oracle Fusion Middleware.  First, there are many new features and capabilities in the recently released 11gR1 that I’m learning about in training this week.  One of the ways I gauge the increasing interest in WebLogic Server is the increasing number of posts in the WebLogic Server - General forum on OTN.  Today was an especially busy day and someone inquired on a fairly straight-forward problem: Can I change the context root of a web application without modifying the archive?</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p><font color="#ff0000">7-23-09 Update: I updated this post slightly overnight after I thought of a few additional comments, an easier approach and I took in feedback from a comment.</font></p>  <h2>11gR1 Release</h2>  <p><img style="display: inline; margin-left: 0px; margin-right: 0px" src="http://oracleimg.com/technology/images/11g-logos/fusion-middleware-11g.gif" align="left" /> It is a very exciting time to be involved with Oracle Fusion Middleware.&#160; First, there are many new features and capabilities in the <a href="http://oracle.com/fusionmiddleware11g">recently released 11gR1</a> that I’m learning about in training this week.&#160; My focus is mostly on WebLogic Server and surrounding technologies categorized in the Application Grid space and the SOA products.&#160; Beyond the best-of-breed qualities in the stand-alone middleware products, there is an ever-increasing amount of synergy between Oracle’s other products, both middleware and elsewhere.&#160; The number of products certified and making use of WebLogic Server is incredible.&#160; This has high value for customers in the consolidation of skill-sets and infrastructure.&#160; I am personally very impressed with the amount of innovation that has occurred in a little over a year since Oracle acquired BEA Systems, and I’m excited about what is coming in future releases.&#160; My blog folder where I store ideas for future blog entries just keeps getting more and more backlogged as I come across things worth investigating and sharing.</p>  <h2>Deployment Plan JSR-88 Example in WebLogic Server</h2>  <h3>The Forum Question</h3>  <p>One of the ways I gauge the increasing interest in WebLogic Server is the increasing number of posts in the <a href="http://forums.oracle.com/forums/forum.jspa?forumID=570">WebLogic Server - General</a> forum on OTN.&#160; Today was an especially busy day and someone inquired on a fairly straight-forward problem:</p>  <p><a href="http://forums.oracle.com/forums/thread.jspa?messageID=3640136"><strong>Can I change the context root of a web application without modifying the archive?</strong></a></p>  <h3>How can you do it?</h3>  <p>Fortunately if you need to make minor configuration adjustments in application deployment descriptors (such as web.xml, weblogic.xml, application.xml, or weblogic-application.xml), but do not need to change any application code you can use a <a href="http://java.sun.com/j2ee/tools/deployment/index.jsp">Deployment Plan (also known as JSR-88)</a> to do this in <a href="http://download.oracle.com/docs/cd/E12840_01/wls/docs103/deployment/understanding.html#wp1056889">WebLogic Server deployments</a>.&#160; I’m not going to go into great detail here, but the essential idea is that an xml file, usually called Plan.xml that is located outside the application archive, can be used to override or set undeclared values in the deployment descriptors that are embedded in an application archive.&#160; See the image below.</p>  <p><img src="http://download.oracle.com/docs/cd/E12840_01/wls/docs103/deployment/wwimages/deployment-02-1-1.gif" /> </p>  <h3>Why would you ever need this?</h3>  <p>There are many reasons why you may not want to modify an application archive, one of which is testing.&#160; For example, if you have successfully completed testing for a particular version an application, it is desirable to keep the application archive unmodified between environments so you can have increased confidence that the application will behave the same in multiple environments as it is promoted.&#160; Another reason might be portability.&#160; You could have one generic J2EE or JEE application archive without proprietary deployment descriptors and put all of those proprietary deployment descriptor values outside of that archive.&#160; I know that WebLogic Portal code used this feature at one time to change the verbosity of a log level that was set with a Servlet initialization paramter, so you could also use this to change configuration values at runtime provided those are in a supported deployment descriptor.</p>  <p>Several other WebLogic bloggers have addressed Deployment Plans, so before I write about how I addressed this particular forum question, just know that you can get a general overview and more detailed examples from the following posts:</p>  <ul>   <li><a title="http://m-button.blogspot.com/2008/08/how-to-use-deployment-plan.html" href="http://m-button.blogspot.com/2008/08/how-to-use-deployment-plan.html">http://m-button.blogspot.com/2008/08/how-to-use-deployment-plan.html</a> </li>    <li><a title="http://biemond.blogspot.com/2009/04/using-weblogic-deployment-plan-to.html" href="http://biemond.blogspot.com/2009/04/using-weblogic-deployment-plan-to.html">http://biemond.blogspot.com/2009/04/using-weblogic-deployment-plan-to.html</a> </li>    <li>In French – but with some screencasts - <a title="http://blog.xebia.fr/2008/04/17/les-plans-de-deploiement-weblogic/" href="http://blog.xebia.fr/2008/04/17/les-plans-de-deploiement-weblogic/">http://blog.xebia.fr/2008/04/17/les-plans-de-deploiement-weblogic/</a> and translated to English with Google <a title="http://bit.ly/SbQPx" href="http://bit.ly/SbQPx">http://bit.ly/SbQPx</a> </li> </ul>  <h3>A Simple Example</h3>  <p>There is a context-root element in a web application module’s weblogic.xml file that specifies the context root of the application.&#160; When building a web application with Oracle Enterprise Pack for Eclipse, the value is automatically set to the Web Application name.&#160; Check out the WEB-INF/weblogic.xml from my Web Application named PlanWEB.</p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;?</span>xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;<span style="color: #0000ff">?&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;</span><span style="color: #c71585">wls</span>:<span style="color: #800000">weblogic</span>-<span style="color: #ff0000">web</span>-<span style="color: #ff0000">app</span> <span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">wls</span>=<span style="color: #0000ff">&quot;http://xmlns.oracle.com/weblogic/weblogic-web-app&quot;</span> <span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">xsi</span>=<span style="color: #0000ff">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> <span style="color: #ff0000">xsi</span>:<span style="color: #ff0000">schemaLocation</span>=<span style="color: #0000ff">&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd&quot;</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #c71585">wls</span>:<span style="color: #800000">weblogic</span>-<span style="color: #ff0000">version</span><span style="color: #0000ff">&gt;</span>10.3.1<span style="color: #0000ff">&lt;/</span><span style="color: #c71585">wls</span>:<span style="color: #800000">weblogic</span>-version<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;</span><span style="color: #c71585">wls</span>:<span style="color: #800000">context</span>-<span style="color: #ff0000">root</span><span style="color: #0000ff">&gt;</span>PlanWEB<span style="color: #0000ff">&lt;/</span><span style="color: #c71585">wls</span>:<span style="color: #800000">context</span>-root<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;/</span><span style="color: #c71585">wls</span>:<span style="color: #800000">weblogic</span>-web-app<span style="color: #0000ff">&gt;</span></pre></pre>

<p>I have confirmed that my application is deployed and listening at the /PlanWEB context root on my server.&#160; How you deploy it, weblogic.Deployer, WLST, or the console is up to you.&#160; Now lets say I want to change the context root to /FooWEB at runtime, even though the weblogic.xml file in the application archive will have PlanWEB listed in the deployment descriptor.</p>

<h3>Option 1 – The Console – The easy GUI driven way</h3>

<p>Browse the deployment, specifically to the web module of the context root you want to change.&#160; Here’s a shot of my Deployments page after I have expanded the EAR to see it’s modules.</p>

<p>Home –&gt; Deployments –&gt; PlanEAR</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/11gR1UpdateandaDeploymentPlanExampleforW_1420A/console1_2.jpg"><img title="console1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="192" alt="console1" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/11gR1UpdateandaDeploymentPlanExampleforW_1420A/console1_thumb.jpg" width="624" border="0" /></a> </p>

<p>Click on PlanWEB, then click the configuration tab and look at the bottom of that page.&#160; You’ll see the current context root, but not editable (depending on your console preferences it may already be editable).</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/11gR1UpdateandaDeploymentPlanExampleforW_1420A/contextRoot_2.jpg"><img title="contextRoot" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="111" alt="contextRoot" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/11gR1UpdateandaDeploymentPlanExampleforW_1420A/contextRoot_thumb.jpg" width="395" border="0" /></a> </p>

<ul>
  <li>Lock and edit the console if you have not already and put in a new value like “FooWEB” and click the save button. </li>

<p>  <li>The next page should prompt you for the location where the console should write the plan.xml file on the file system.&#160; Choose whatever location makes sense, but it probably makes sense to put it somewhere in the domain directory structure or some other standard or convention you come up with. </li></p>

<p>  <li>Now activate the session.&#160; The context root should now be /FooWEB and the configuration tab of the console show now also reflect that. </li><br />
</ul></p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/11gR1UpdateandaDeploymentPlanExampleforW_1420A/FooWEB_2.jpg"><img title="FooWEB" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="111" alt="FooWEB" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/11gR1UpdateandaDeploymentPlanExampleforW_1420A/FooWEB_thumb.jpg" width="395" border="0" /></a> </p>

<p>Here is my plan.xml that the WebLogic Server Console generated for me.</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;?</span>xml version='1.0' encoding='UTF-8'<span style="color: #0000ff">?&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;</span><span style="color: #800000">deployment</span>-<span style="color: #ff0000">plan</span> <span style="color: #ff0000">xmlns</span>=<span style="color: #0000ff">&quot;http://xmlns.oracle.com/weblogic/deployment-plan&quot;</span> <span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">xsi</span>=<span style="color: #0000ff">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> <span style="color: #ff0000">xsi</span>:<span style="color: #ff0000">schemaLocation</span>=<span style="color: #0000ff">&quot;http://xmlns.oracle.com/weblogic/deployment-plan http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd&quot;</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">application</span>-<span style="color: #ff0000">name</span><span style="color: #0000ff">&gt;</span>foo<span style="color: #0000ff">&lt;/</span><span style="color: #800000">application</span>-name<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">variable</span>-<span style="color: #ff0000">definition</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">variable</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>WeblogicWebApp_ContextRoots_12483492503430<span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>&quot;FooWEB&quot;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">variable</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">&lt;/</span><span style="color: #800000">variable</span>-definition<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">override</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">name</span><span style="color: #0000ff">&gt;</span>PlanEAR.ear<span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-name<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">type</span><span style="color: #0000ff">&gt;</span>ear<span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-type<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">descriptor</span> <span style="color: #ff0000">external</span>=<span style="color: #0000ff">&quot;false&quot;</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">root</span>-<span style="color: #ff0000">element</span><span style="color: #0000ff">&gt;</span>weblogic-application<span style="color: #0000ff">&lt;/</span><span style="color: #800000">root</span>-element<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>META-INF/weblogic-application.xml<span style="color: #0000ff">&lt;/</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-descriptor<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">descriptor</span> <span style="color: #ff0000">external</span>=<span style="color: #0000ff">&quot;false&quot;</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">root</span>-<span style="color: #ff0000">element</span><span style="color: #0000ff">&gt;</span>application<span style="color: #0000ff">&lt;/</span><span style="color: #800000">root</span>-element<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>META-INF/application.xml<span style="color: #0000ff">&lt;/</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-descriptor<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">descriptor</span> <span style="color: #ff0000">external</span>=<span style="color: #0000ff">&quot;true&quot;</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">root</span>-<span style="color: #ff0000">element</span><span style="color: #0000ff">&gt;</span>wldf-resource<span style="color: #0000ff">&lt;/</span><span style="color: #800000">root</span>-element<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>META-INF/weblogic-diagnostics.xml<span style="color: #0000ff">&lt;/</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-descriptor<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-override<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">override</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">name</span><span style="color: #0000ff">&gt;</span>PlanWEB.war<span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-name<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">type</span><span style="color: #0000ff">&gt;</span>war<span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-type<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">descriptor</span> <span style="color: #ff0000">external</span>=<span style="color: #0000ff">&quot;false&quot;</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">root</span>-<span style="color: #ff0000">element</span><span style="color: #0000ff">&gt;</span>weblogic-web-app<span style="color: #0000ff">&lt;/</span><span style="color: #800000">root</span>-element<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>WEB-INF/weblogic.xml<span style="color: #0000ff">&lt;/</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">variable</span>-<span style="color: #ff0000">assignment</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>WeblogicWebApp_ContextRoots_12483492503430<span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">xpath</span><span style="color: #0000ff">&gt;</span>/weblogic-web-app/context-root<span style="color: #0000ff">&lt;/</span><span style="color: #800000">xpath</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">operation</span><span style="color: #0000ff">&gt;</span>replace<span style="color: #0000ff">&lt;/</span><span style="color: #800000">operation</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;/</span><span style="color: #800000">variable</span>-assignment<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-descriptor<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">module</span>-<span style="color: #ff0000">descriptor</span> <span style="color: #ff0000">external</span>=<span style="color: #0000ff">&quot;false&quot;</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">root</span>-<span style="color: #ff0000">element</span><span style="color: #0000ff">&gt;</span>web-app<span style="color: #0000ff">&lt;/</span><span style="color: #800000">root</span>-element<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">&lt;</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>WEB-INF/web.xml<span style="color: #0000ff">&lt;/</span><span style="color: #800000">uri</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-descriptor<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  <span style="color: #0000ff">&lt;/</span><span style="color: #800000">module</span>-override<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">config</span>-<span style="color: #ff0000">root</span><span style="color: #0000ff">&gt;</span>C:\temp\foo\plan<span style="color: #0000ff">&lt;/</span><span style="color: #800000">config</span>-root<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">deployment</span>-plan<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre></pre>

<h3>Option 2 – weblogic.PlanGenerator – a more manual approach that could be used for automation</h3>

<p>Here are the steps for creating the deployment plan yourself with weblogic.PlanGenerator.</p>

<ul>
  <li>Export the EAR file to a directory – my enterprise archive name is PlanEAR.ear </li>

<p>  <li>Go to your domain's bin dir with a shell and call setDomainEnv </li></p>

<p>  <li>Call a command like this from the dir where the EAR is with the configured shell: </li><br />
</ul></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 612px; padding-top: 5px; border-bottom: #cecece 1px solid; height: 30px; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">java weblogic.PlanGenerator -all -plan Plan.xml PlanEAR.ear</pre></pre>

<ul>
  <li>That should generate a Plan.xml file in that directory with a bunch of stubs for values you could change at runtime in the Plan.xml file.&#160;&#160; </li>

<p>  <li>Change the value of the variable for the context root.&#160; Note that the variable name is auto-generated, but it still yields a clue by the variable name prefix. </li><br />
</ul></p>

<p><strong>Original:</strong></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">variable</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>WeblogicWebApp_ContextRoots_12482790756401<span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span> <span style="color: #ff0000">xsi</span>:<span style="color: #ff0000">nil</span>=<span style="color: #0000ff">&quot;true&quot;</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">variable</span><span style="color: #0000ff">&gt;</span></pre></pre>

<p><strong>New:</strong></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">variable</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>WeblogicWebApp_ContextRoots_12482790756401<span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>FooWEB<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">variable</span><span style="color: #0000ff">&gt;</span></pre></pre>

<ul>
  <li>Note that I did not use quotes for FooWEB whereas the console approach did use them.&#160; Either way seemed to work just fine. </li>

<p>  <li>In order to override the context root we need to do a <strong>replace</strong> operation in the variable assignment since the element already exists in the archive. Edit Plan.xml again, this time modifying the relevant variable assignment section of the Plan.xml.&#160; Note, if the weblogic.xml did not already have the context-root explicitly listed as an xml element, then the original section could have been used. </li><br />
</ul></p>

<p><strong>Original:</strong></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">variable</span>-<span style="color: #ff0000">assignment</span><span style="color: #0000ff">&gt;</span> 
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>WeblogicWebApp_ContextRoots_12482790756401<span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span> 
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">xpath</span><span style="color: #0000ff">&gt;</span>/weblogic-web-app/context-root<span style="color: #0000ff">&lt;/</span><span style="color: #800000">xpath</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">variable</span>-assignment<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre></pre>

<p><strong>New:</strong></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">variable</span>-<span style="color: #ff0000">assignment</span><span style="color: #0000ff">&gt;</span> 
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span>WeblogicWebApp_ContextRoots_12482790756401<span style="color: #0000ff">&lt;/</span><span style="color: #800000">name</span><span style="color: #0000ff">&gt;</span> 
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">xpath</span><span style="color: #0000ff">&gt;</span>/weblogic-web-app/context-root<span style="color: #0000ff">&lt;/</span><span style="color: #800000">xpath</span><span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">&lt;</span><span style="color: #800000">operation</span><span style="color: #0000ff">&gt;</span>replace<span style="color: #0000ff">&lt;/</span><span style="color: #800000">operation</span><span style="color: #0000ff">&gt;</span> 
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">variable</span>-assignment<span style="color: #0000ff">&gt;</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre></pre>

<p>Now we can use the weblogic.Deployer command for a redeployment with this new deployment plan Plan.xml and the EAR.&#160; We also could have used WLST.</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 600px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 99.91%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; height: 16px; background-color: #fbfbfb">java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password welcome1 -redeploy -name PlanEAR -source PlanEAR.ear -targets AdminServer -plan Plan.xml</pre></pre>
After the command completes, I can now access the application at <a href="http://locahost:7001/FooWEB/">http://locahost:7001/FooWEB/</a>. 

<p><br /></p>

<p>Special thanks to fellow bloggers <a href="http://m-button.blogspot.com/2008/08/how-to-use-deployment-plan.html">Max</a>, <a href="http://biemond.blogspot.com/2009/04/using-weblogic-deployment-plan-to.html">Edwin</a>, and <a href="http://blog.xebia.fr/2008/04/17/les-plans-de-deploiement-weblogic/">Benoit</a> for their entries related to this topic.&#160; Cheers. </p>]]>
      
   </content>
</entry>

<entry>
   <title>Using WLST with the WebLogic Server Job Scheduler</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/04/using_wlst_with_the_weblogic_s.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.11449</id>
   
   <published>2009-04-09T20:00:44Z</published>
   <updated>2009-04-09T20:13:55Z</updated>
   
   <summary>I recently wrote about a simple example using the WebLogic Server Job Scheduler.  This describes how to cancel the jobs and get visibility into job execution status with WLST.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>I recently <a href="http://blogs.oracle.com/jamesbayer/2009/04/a_simple_job_scheduler_example.html">wrote about a simple example using the WebLogic Server Job Scheduler</a>.&#160; This describes how to cancel the jobs and get visibility into job execution status.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/UsingWLSTwiththeWebLogicServerJobSchedul_D2F9/jmx%20%5B2%5D_2.jpg"><img title="jmx [2]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="468" alt="jmx [2]" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/UsingWLSTwiththeWebLogicServerJobSchedul_D2F9/jmx%20%5B2%5D_thumb.jpg" width="638" border="0" /></a> </p>  <h3>Cancelling a task</h3>  <p>One of the things to note about the JobScheduler is that you <a href="http://e-docs.bea.com/wls/docs103/commonj/commonj.html#wp1061781">cannot call certain CommonJ API calls</a>, particularly around cancelling tasks.&#160; The way to do that is via the <a href="http://download.oracle.com/docs/cd/E12839_01/wls/docs103/wlsmbeanref/mbeans/JobSchedulerRuntimeMBean.html">JobSchedulerRuntimeMBean</a>, exposed with console functionality or via JMX.&#160; Obviously the console is great for on-demand access, but what if you want to script things to make automated decisions?</p>  <p>Here is some sample output from a WLST session that shows me browsing to the JobSchedulerRuntimeMBean, finding an active task and cancelling it.</p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 585px; padding-top: 5px; border-bottom: #cecece 1px solid; height: 289px; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/offline&gt; connect('weblogic','weblogic','t3:<span style="color: #008000">//localhost:7011')</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Connecting to t3:<span style="color: #008000">//localhost:7011 with userid weblogic ...</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Successfully connected to managed Server 'managedServer1' that belongs to domain 'wldf_domain'.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Warning: An insecure protocol was used to connect to the
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">server. To ensure on-the-wire security, the SSL port or
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Admin port should be used instead.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverConfig&gt; domainRuntime()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">DomainRuntime MBeanServer is not enabled on a Managed Server.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverConfig&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   AdminConsole
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   AppDeployments
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   BridgeDestinations
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   Clusters
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   CustomResources
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   DeploymentConfiguration
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   Deployments
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   EmbeddedLDAP
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   ErrorHandlings
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   FileStores
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   InternalAppDeployments
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   InternalLibraries
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JDBCDataSourceFactories
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JDBCStores
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JDBCSystemResources
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JMSBridgeDestinations
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JMSInteropModules
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JMSServers
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JMSSystemResources
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JMX
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JTA
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JoltConnectionPools
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   Libraries
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   Log
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   LogFilters
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   Machines
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   MailSessions
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   MessagingBridges
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   MigratableTargets
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   RemoteSAFContexts
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   SAFAgents
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   SNMPAgent
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   SNMPAgentDeployments
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   Security
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   SecurityConfiguration
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   SelfTuning
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   Servers
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   ShutdownClasses
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   SingletonServices
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   StartupClasses
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   SystemResources
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   Targets
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   VirtualHosts
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   WLDFSystemResources
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   WLECConnectionPools
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   WSReliableDeliveryPolicies
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   WTCServers
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   WebAppContainer
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   WebserviceSecurities
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   XMLEntityCaches
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   XMLRegistries
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   AdminServerName                              AdminServer
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   AdministrationMBeanAuditingEnabled           <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   AdministrationPort                           9002
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   AdministrationPortEnabled                    <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   AdministrationProtocol                       t3s
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ArchiveConfigurationCount                    0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ClusterConstraintsEnabled                    <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ConfigBackupEnabled                          <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ConfigurationAuditType                       none
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ConfigurationVersion                         10.3.0.0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ConsoleContextPath                           console
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ConsoleEnabled                               <span style="color: #0000ff">true</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ConsoleExtensionDirectory                    console-ext
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   DomainVersion                                10.3.0.0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   GuardianEnabled                              <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   InternalAppsDeployOnDemandEnabled            <span style="color: #0000ff">true</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   LastModificationTime                         0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Name                                         wldf_domain
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Notes                                        <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Parent                                       <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ProductionModeEnabled                        <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   RootDirectory                                C:\Oracle\wls10gR3\user_projects\domains\wldf_domain
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Type                                         Domain
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   freezeCurrentValue                           Void : <span style="color: #0000ff">String</span>(attributeName)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   isSet                                        <span style="color: #0000ff">Boolean</span> : <span style="color: #0000ff">String</span>(propertyName)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   unSet                                        Void : <span style="color: #0000ff">String</span>(propertyName)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverConfig&gt; serverRuntime()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   ApplicationRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   AsyncReplicationRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   ClusterRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   ConnectorServiceRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   DefaultExecuteQueueRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   EntityCacheCumulativeRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   EntityCacheCurrentStateRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   EntityCacheHistoricalRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   ExecuteQueueRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JDBCServiceRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JMSRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JTARuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JVMRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   JoltRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   LibraryRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   LogBroadcasterRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   LogRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   MANAsyncReplicationRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   MANReplicationRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   MailSessionRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   MaxThreadsConstraintRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   MinThreadsConstraintRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   PathServiceRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   PersistentStoreRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   RequestClassRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   SAFRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   SNMPAgentRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   ServerChannelRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   ServerSecurityRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   ServerServices
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   SingleSignOnServicesRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   ThreadPoolRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   TimerRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   WANReplicationRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   WLDFRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   WTCRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   WebServerRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   WorkManagerRuntimes
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ActivationTime                               1237559025844
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   AdminServer                                  <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   AdminServerHost                              192.168.2.1
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   AdminServerListenPort                        7001
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   AdminServerListenPortSecure                  <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   AdministrationPort                           9002
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   AdministrationPortEnabled                    <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   AdministrationURL                            t3:<span style="color: #008000">//192.168.2.1:7011</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   CurrentDirectory                             C:\Oracle\wls10gR3\user_projects\domains\wldf_domain\.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   CurrentMachine
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   DefaultExecuteQueueRuntime                   <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   DefaultURL                                   t3:<span style="color: #008000">//192.168.2.1:7011</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   EntityCacheCumulativeRuntime                 <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   EntityCacheCurrentStateRuntime               <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   EntityCacheHistoricalRuntime                 <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   HealthState                                  Component:ServerRuntime,State:HEALTH_OK,MBean:managedServer1,ReasonCode:[]
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   JoltRuntime                                  <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ListenAddress                                JBAYER-LAP/192.168.2.1
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ListenPort                                   7011
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ListenPortEnabled                            <span style="color: #0000ff">true</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   MANAsyncReplicationRuntime                   <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   MANReplicationRuntime                        <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Name                                         managedServer1
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   OpenSocketsCurrentCount                      3
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Parent                                       <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   PathServiceRuntime                           <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   RestartRequired                              <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   RestartsTotalCount                           0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   SSLListenAddress                             <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   SSLListenPort                                7002
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   SSLListenPortEnabled                         <span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ServerClasspath                              C:\Oracle\wls10gR3\JROCKI~1\jre\bin\jrockit\jrockit1.6.0.jar;C:\Oracle\wls10gR3\JROCKI~1\jre\bin\jrockit\jmapi.jar;C:\Oracle\wls10gR3\JROCKI~1\
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">3\JROCKI~1\jre\bin\jrockit\rmp.jar;C:\Oracle\wls10gR3\JROCKI~1\jre\bin\jrockit\latency.jar;C:\Oracle\wls10gR3\JROCKI~1\jre\lib\resources.jar;C:\Oracle\wls10gR3\JROCKI~1\jre\lib\rt.jar;C:\Oracle\w
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">acle\wls10gR3\JROCKI~1\jre\lib\jsse.jar;C:\Oracle\wls10gR3\JROCKI~1\jre\lib\jce.jar;C:\Oracle\wls10gR3\JROCKI~1\jre\lib\charsets.jar;C:\Oracle\wls10gR3\JROCKI~1\jre\classes;C:\JDeveloper\mywork\J
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">ener.jar;C:\Oracle\wls10gR3\patch_wlw1030\profiles\<span style="color: #0000ff">default</span>\sys_manifest_classpath\weblogic_patch.jar;C:\Oracle\wls10gR3\patch_wls1030\profiles\<span style="color: #0000ff">default</span>\sys_manifest_classpath\weblogic_patch.jar;C:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">ult\sys_manifest_classpath\weblogic_patch.jar;C:\Oracle\wls10gR3\patch_cie670\profiles\<span style="color: #0000ff">default</span>\sys_manifest_classpath\weblogic_patch.jar;C:\Oracle\wls10gR3\patch_cie660\profiles\<span style="color: #0000ff">default</span>\sys_manif
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">s10gR3\patch_alsb1030\profiles\<span style="color: #0000ff">default</span>\sys_manifest_classpath\weblogic_patch.jar;C:\Oracle\wls10gR3\JROCKI~1\lib\tools.jar;C:\Oracle\wls10gR3\WLSERV~1.3\server\lib\weblogic_sp.jar;C:\Oracle\wls10
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">cle\wls10gR3\modules\features\weblogic.server.modules_10.3.0.0.jar;C:\Oracle\wls10gR3\WLSERV~1.3\server\lib\webservices.jar;C:\Oracle\wls10gR3\modules\ORGAPA~1.5/lib/ant-all.jar;C:\Oracle\wls10gR
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">\Oracle\wls10gR3\jdeveloper\modules\features\adf.share_11.1.1.jar;;C:\Oracle\wls10gR3\WLSERV~1.3\common\<span style="color: #0000ff">eval</span>\pointbase\lib\pbclient57.jar;C:\Oracle\wls10gR3\WLSERV~1.3\server\lib\xqrl.jar;;;C:\Or
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">sysext_manifest_classpath\weblogic_ext_patch.jar
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   SocketsOpenedTotalCount                      3
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   State                                        RUNNING
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   StateVal                                     2
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Type                                         ServerRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   WANReplicationRuntime                        <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   WLECConnectionServiceRuntime                 <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   WeblogicVersion                              WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR380042 Thu Sep 11 13:33:40 PDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> 7372756 Fri Sep 12 17:05:44 EDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR380913 Wed Oct 15 13:24:22 PDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR381739 Tue Oct 21 14:06:14 IST 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR381056 Mon Oct 06 10:48:50 EDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR374413, CR378680 Tue Sep 02 09:55:36 PDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR378102 Wed Sep 10 23:28:48 PDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR378741 Tue Sep 09 13:08:51 PDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">WebLogic Server Temporary Patch <span style="color: #0000ff">for</span> CR378781, CR380313 Fri Sep 19 13:34:16 PDT 2008
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">WebLogic Server 10.3  Fri Jul 25 16:30:05 EDT 2008 1137967
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   addRequestClassRuntime                       <span style="color: #0000ff">Boolean</span> : WebLogicMBean(weblogic.management.runtime.RequestClassRuntimeMBean)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   forceShutdown                                Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   forceSuspend                                 Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   getServerChannel                             <span style="color: #0000ff">java</span>.net.InetSocketAddress : <span style="color: #0000ff">String</span>(protocol)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   getURL                                       <span style="color: #0000ff">String</span> : <span style="color: #0000ff">String</span>(protocol)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   preDeregister                                Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   restartSSLChannels                           Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   resume                                       Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   shutdown                                     Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   shutdown                                     Void : Integer(timeout),<span style="color: #0000ff">Boolean</span>(ignoreSessions)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   start                                        Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   suspend                                      Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   suspend                                      Void : Integer(timeout),<span style="color: #0000ff">Boolean</span>(ignoreSessions)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverRuntime&gt; cd('ClusterRuntime')
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   myCluster
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverRuntime/ClusterRuntime&gt; cd('myCluster')
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JobSchedulerRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">dr--   ServerMigrationRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   UnicastMessaging
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ActiveSingletonServices                      <span style="color: #0000ff">java</span>.lang.<span style="color: #0000ff">String</span>[TimerMaster]
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   AliveServerCount                             1
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   CurrentMachine                               <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   CurrentSecondaryServer
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   DetailedSecondariesDistribution              <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ForeignFragmentsDroppedCount                 0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   FragmentsReceivedCount                       581
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   FragmentsSentCount                           581
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   HealthState                                  Component:<span style="color: #0000ff">null</span>,State:HEALTH_OK,MBean:<span style="color: #0000ff">null</span>,ReasonCode:[]
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   MulticastMessagesLostCount                   0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Name                                         myCluster
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   PrimaryCount                                 0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ResendRequestsCount                          0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   SecondaryCount                               0
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   SecondaryDistributionNames                   <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   SecondaryServerDetails
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ServerNames                                  <span style="color: #0000ff">java</span>.lang.<span style="color: #0000ff">String</span>[managedServer1]
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Type                                         ClusterRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   UnicastMessaging                             <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   preDeregister                                Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster&gt; cd('JobSchedulerRuntime')
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JobSchedulerRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime&gt; cd('JobSchedulerRuntime')
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   ExecutedJobs
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Name                                         JobSchedulerRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Type                                         JobSchedulerRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   getJob                                       WebLogicMBean : <span style="color: #0000ff">String</span>(id)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   preDeregister                                Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime&gt; cd('ExecutedJobs')
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime/ExecutedJobs&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">dr--   JobRuntime-managedServer1_1237564053328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime/ExecutedJobs&gt; cd('JobRuntime-managedServer1_1237564053328')
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime/ExecutedJobs/JobRuntime-managedServer1_1237564053328&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Description                                  jamesbayer.client.SystemOutTimerListener@2ed941
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ID                                           managedServer1_1237564053328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   LastLocalExecutionTime                       1237564580328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   LocalExecutionCount                          18
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Name                                         JobRuntime-managedServer1_1237564053328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Period                                       30000
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   State                                        Running
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Timeout                                      6719
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   TimerListener                                jamesbayer.client.SystemOutTimerListener@333c5d
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Type                                         JobRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   cancel                                       Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   preDeregister                                Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime/ExecutedJobs/JobRuntime-managedServer1_1237564053328&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Description                                  jamesbayer.client.SystemOutTimerListener@2ed941
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   ID                                           managedServer1_1237564053328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   LastLocalExecutionTime                       1237564850547
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   LocalExecutionCount                          27
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Name                                         JobRuntime-managedServer1_1237564053328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Period                                       30000
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   State                                        Running
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Timeout                                      18812
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   TimerListener                                jamesbayer.client.SystemOutTimerListener@349b7f
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Type                                         JobRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   cancel                                       Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   preDeregister                                Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime/ExecutedJobs/JobRuntime-managedServer1_1237564053328&gt; cmo.cancel()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">wls:/wldf_domain/serverRuntime/ClusterRuntime/myCluster/JobSchedulerRuntime/JobSchedulerRuntime/ExecutedJobs/JobRuntime-managedServer1_1237564053328&gt; ls()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Description                                  jamesbayer.client.SystemOutTimerListener@2ed941
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   ID                                           managedServer1_1237564053328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   LastLocalExecutionTime                       1237564850547
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   LocalExecutionCount                          27
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   Name                                         JobRuntime-managedServer1_1237564053328
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Period                                       30000
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   State                                        Cancelled
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Timeout                                      -1
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r--   TimerListener                                <span style="color: #0000ff">null</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r--   Type                                         JobRuntime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-r-x   cancel                                       Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">-r-x   preDeregister                                Void :
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre></pre>

<h3>Automating JobScheduler status checking</h3>

<p>One of my customers asked me about how they could periodically check if a task was running in the cluster, and if it is not then send someone an email, etc.&#160; Basically, the sky is the limit with scripting.&#160; A more advanced use of this would be to connect this to alerts in <a href="http://edocs.bea.com/wls/docs103/wldf_configuring/index.html">WebLogic Diagnsotic Framework</a> or SNMP traps in <a href="http://www.oracle.com/enterprise_manager/index.html">Oracle Enterprise Manager</a>, but this is a start.&#160; Here is a python script that you can invoke with WLST that will do several things:</p>

<ul>
  <li>Connect to the Admin Server </li>

<p>  <li>Get a list of all managed servers in the cluster </li></p>

<p>  <li>Check each managed server for a particular running timer task </li></p>

<p>  <li>If no running tasks are found exit with a non-zero exit code, otherwise exit a zero exit code </li><br />
</ul></p>

<p><strong>isJobRunning.py</strong></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 624px; padding-top: 5px; border-bottom: #cecece 1px solid; height: 236px; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">user='weblogic'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">pw='weblogic'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">adminServer='localhost'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">adminPort='7001'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">clusterName='myCluster'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">timerRunning=<span style="color: #0000ff">false</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">timerClass='jamesbayer.client.SystemOutTimerListener'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">## Standard Connection
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">try</span>:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  connect(user,pw,'t3:<span style="color: #008000">//'+adminServer+':'+adminPort)</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">except:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">print</span> 'Error connecting to Admin Server'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">## Get the list of managed servers <span style="color: #0000ff">in</span> the cluster
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">try</span>:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  domainConfig()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  cd('Clusters/'+clusterName)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  managedServers=cmo.getServers()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  <span style="color: #0000ff">print</span> 'Found ' + `len(managedServers)` + ' managed servers'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">except:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  <span style="color: #0000ff">print</span> 'Error navigating DomainConfig MBean tree <span style="color: #0000ff">for</span> the list of managed servers'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">## Loop through managed servers and look <span style="color: #0000ff">for</span> the job
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">domainRuntime()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">for</span> managedServer <span style="color: #0000ff">in</span> managedServers:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">try</span>:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    managedServerName=managedServer.getName()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">print</span> 'Trying ' + managedServerName
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    cd('/ServerRuntimes/'+managedServerName)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">if</span> cmo.getState() == 'RUNNING':
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      cd( '/ServerRuntimes/'+managedServerName+'/ClusterRuntime/'+clusterName+'/JobSchedulerRuntime/JobSchedulerRuntime')
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      <span style="color: #0000ff">try</span>:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        jobs=cmo.getExecutedJobs()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">for</span> job <span style="color: #0000ff">in</span> jobs:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">          <span style="color: #0000ff">if</span> job.getDescription().<span style="color: #0000ff">find</span>(timerClass) &gt; -1 and job.getState() == 'Running':
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">            timerRunning=<span style="color: #0000ff">true</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            <span style="color: #0000ff">print</span> timerClass + ' is running on ' +  managedServerName
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">      except:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">print</span> 'Error checking ' + managedServerName + ' ExecutedJobs'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">else</span>:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">      <span style="color: #0000ff">print</span> managedServerName + ' is not RUNNING'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  except:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">print</span> 'Error checking JobScheduler on ' + managedServerName
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">if</span> timerRunning:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">break</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">disconnect()
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">if</span> timerRunning:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  <span style="color: #0000ff">print</span> 'The Job is Running'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  exit(exitcode=0)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">else</span>:
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  <span style="color: #0000ff">print</span> 'The Job is NOT Running'
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  exit(exitcode=1)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre></pre>

<p><strong>Script output</strong></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 612px; padding-top: 5px; border-bottom: #cecece 1px solid; height: 429px; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">C:\Oracle\wls10gR3\user_projects\domains\wldf_domain&gt;bin\setDomainEnv.cmd
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">C:\Oracle\wls10gR3\user_projects\domains\wldf_domain&gt;<span style="color: #0000ff">java</span> weblogic.WLST C:\MyData\Accounts\PepsiAmericas\JobScheduler\isJobRunning.py
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Initializing WebLogic Scripting Tool (WLST) ...
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Welcome to WebLogic Server Administration Scripting Shell
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Type help() <span style="color: #0000ff">for</span> help on available commands
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Connecting to t3:<span style="color: #008000">//localhost:7001 with userid weblogic ...</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Successfully connected to Admin Server 'AdminServer' that belongs to domain 'wldf_domain'.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Warning: An insecure protocol was used to connect to the
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">server. To ensure on-the-wire security, the SSL port or
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Admin port should be used instead.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Location changed to serverRuntime tree. This is a read-only tree <span style="color: #0000ff">with</span> DomainMBean as the root.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">For more help, use help(domainConfig)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Found 1 managed servers
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Location changed to domainRuntime tree. This is a read-only tree <span style="color: #0000ff">with</span> DomainMBean as the root.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">For more help, use help(domainRuntime)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Trying managedServer1
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Disconnected from weblogic server: AdminServer
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">The Job is Running
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Exiting WebLogic Scripting Tool.
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">C:\Oracle\wls10gR3\user_projects\domains\wldf_domain&gt;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre></pre>]]>
      
   </content>
</entry>

<entry>
   <title>A Simple Job Scheduler Example - WebLogic Server Clustered Timer</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/04/a_simple_job_scheduler_example.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.11413</id>
   
   <published>2009-04-08T21:13:15Z</published>
   <updated>2009-04-08T21:13:31Z</updated>
   
   <summary>Did you know WebLogic Server can schedule future tasks similar to a cron job?  This even works in a WebLogic cluster.  Using a cluster ensures that as long as one of the managed servers in the cluster is available, your task has a high-availability characteristic and the task will execute.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>Did you know WebLogic Server can schedule future tasks similar to a cron job?&#160; This even works in a WebLogic cluster.&#160; Using a cluster ensures that as long as one of the managed servers in the cluster is available, your task has a high-availability characteristic and the task will execute.&#160; This has come up for at least 3 of my local customers.&#160; Every once in awhile I see questions about WebLogic timers from my peers, so I thought I’d share a simple example for how this works and some extra tidbits based on personal experience that might not be in the standard documentation.&#160; Read on if you want to see how to schedule a simple println() task to execute every 30 seconds in a cluster that can survive server failures in both the WebLogic tier and the database tier (provided you use Oracle RAC).</p>  <h3></h3>  <h3><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/HA_4.jpg"><img title="HA" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="396" alt="HA" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/HA_thumb_1.jpg" width="640" border="0" /></a> </h3>  <h3>Background</h3>  <p>Oracle (then BEA Systems) and IBM collaborated on a common API for Timers and Work Managers (think multi-threading) that would be portable across application servers.&#160; They aptly named this API <a href="http://e-docs.bea.com/wls/docs103/commonj/commonj.html">CommonJ</a>.&#160; This API has been supported in WebLogic Server since 9.x and apparently in WebSphere since 6.x.&#160; When combined with WebLogic clustering support, the CommonJ Timer API is known as the <a href="http://e-docs.bea.com/wls/docs103/commonj/commonj.html#wp1058049">Job Scheduler</a>.&#160; It <a href="http://e-docs.bea.com/wls/docs103/commonj/commonj.html#wp1058097">requires some configuration as described in the docs</a>, but essentially the way it works under the covers is by serializing the class that will execute the task and some related metadata to a database.&#160; Using the <a href="http://e-docs.bea.com/wls/docs103/cluster/migration.html#leasing">leasing</a> feature of WebLogic Server, exactly one cluster member will be responsible for JobScheduler (singleton service) which executes the Timer Tasks.&#160; The server responsible for this service will check the database every 30 seconds to see if there are new tasks to execute.</p>  <h3>Instructions for the System Out Example Timer</h3>  <p>These instructions assume starting from scratch with nothing but a basic WebLogic Server installation and a database like Oracle XE.&#160; I run all of this easily on my 2+ yr old laptop (I do have 3+ gig of ram).&#160; The documentation is more detailed now, so definitely refer to that as well.</p>  <ol>   <li>Create a new domain with 1 Admin Server and at least one Managed Server that will be a part of a cluster.&#160; Refer to the <a href="http://www.oracle.com/technology/obe/fusion_middleware/wls103/index.html">Oracle By Example page for WLS</a> if you need help with this, but you should be able to do all of this from the Configuration Wizard.&#160; I named my cluster “myCluster” and my managed servers “managedServer1” and “managedServer2”. </li>    <li><a href="http://edocs.bea.com/wls/docs103/commonj/commonj.html#wp1058100">Set up the database</a> – Basically run the DDL for your DB, which will create a table called <code>WEBLOGIC_TIMERS</code>. If you don’t set up database often, here is my simple POC sequence with Oracle XE.&#160; In production, I would recommend Oracle RAC with a Multi Data Source, but you can POC this with an XE database or a single database node if you can live with a single point of failure.&#160; Open the XE database web console and create a new database user, of course I use weblogic/weblogic for the user name password and give them admin rights.&#160; Start sqlplus and login as that user.&#160; Navigate to the directory that contains the DDL you want to run and use the @ syntax to execute the DDL like this.&#160; You can of course ignore the messages about the comments not being valid commands: <a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/scheduler.ddl_2.jpg"><img title="scheduler.ddl" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="342" alt="scheduler.ddl" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/scheduler.ddl_thumb.jpg" width="673" border="0" /></a> </li>    <li>Keep the sql prompt open, we’ll use it again in a minute.&#160; Notice that the script is in the oracle\920 directory, that simply means for 9.2+ of Oracle DB, it works totally fine for me on XE 10g. </li>    <li><a href="http://edocs.bea.com/wls/docs103/commonj/commonj.html#wp1058104">Configure the data source</a> – Create a new data source for this and target it at all the servers in your domain (or at least the ones in your cluster) and specify it as the cluster’s JobScheduler Data Source.&#160; I recommend that you test your data source when you are creating it. </li>    <li><a href="http://edocs.bea.com/wls/docs103/cluster/migration.html#wp1049008">Set up leasing</a> – You can use consensus or database leasing, but since we already using the DB for the Job Scheduler, just do database leasing which creates a table called ACTIVE (at least in the recent releases of WLS, it used to be something like WEBLOGIC_ACTIVE in earlier releases).&#160; This means running the appropriate <code>WL_HOME/</code><code>server/db/</code><code>dbname</code><code>/leasing.ddl </code>as well as configuring the data source, which can be the same one you used before, and configuring the cluster to use that data source for leasing.&#160; Make sure you note database based leasing requires a highly-available database.&#160; If the connection goes away, the managed servers will fail.&#160; For this reason you can use multi data sources with Oracle RAC to get an even more HA architecture, but Oracle XE works fine for a POC.&#160; I got consensus leasing to work at one time in the past using WLS 9.2, but if I remember correctly I had to install Node Manager and configure “machines” for my servers for it to work.&#160; So DB-based leasing is what I’m using in this example because it’s simpler and I have not had issues with it before. <a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/leasing.ddl_2.jpg"><img title="leasing.ddl" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="134" alt="leasing.ddl" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/leasing.ddl_thumb.jpg" width="673" border="0" /></a> </li>    <li><a href="http://edocs.bea.com/wls/docs103/commonj/commonj.html#wp1061074">Write some code</a> – There is a sample in the docs showing how to look up the job scheduler and schedule a task.&#160; I’ll take care of that for you, here is a <a href="http://blogs.oracle.com/jamesbayer/TimerWeb.war">WAR</a> (Servlet 2.5 based) that has code to register the task via a servlet and a <a href="http://blogs.oracle.com/jamesbayer/TimerListener.jar">JAR</a> file that contains the class that implements the TimerListener interface.&#160; The source code is at the way bottom of this post.</li>    <li>Deploy the WAR file, target it at the cluster, and make sure the application is started. </li>    <li>Edit your server classpath to contain the timer implementation class which is in the JAR referenced earlier.&#160; You might be asking yourself, why the heck does the timer listener class need to be placed on the system classpath?!!&#160; Well if you think about how the classloaders work, the singleton service running the tasks does not have access to the classes from the JEE module that registered the timer.&#160; It is running as a WebLogic system thread.&#160; This class will be deserialized from the database, potentially on another server.&#160; So I recommend not doing anything too sophisticated in the timer listener.&#160; If you have lots of logic with multiple classes, just consider having the timer listener drop a message on a distributed JMS queue, which can have an MDB from another application that does all of your heavy lifting.&#160; Back to putting the TimerListener implementation on the classpath, I accomplished this by added the following line to my domain’s setDomainEnv.cmd script.&#160; There is also the option to use an <a href="http://edocs.bea.com/wls/docs103/ejb/implementing.html#wp1191405">EJB Timer</a>, which apparently does not have the system classpath requirement, but I haven’t tried that before.      <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">set PRE_CLASSPATH=C:\JDeveloper\mywork\JobSchedulerApp\TimerListener\deploy\TimerListener.jar
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre></pre>
  </li>

<p>  <li>Optional – Enable verbose logging for the related sub-systems, I find this helpful when troubleshooting.&#160; <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.debug.DebugSingletonServices=<span style="color: #0000ff">true</span> -Dweblogic.JobScheduler=<span style="color: #0000ff">true</span></pre></pre><br />
  </li></p>

<p>  <li>Restart your Admin Server and Managed Server.&#160; Make sure you see the JAR in the classpath settings in the log file.&#160; <a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/args_2.jpg"><img title="args" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="343" alt="args" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/ASimpleJobSchedulerExampleWebLogicServer_A14/args_thumb.jpg" width="644" border="0" /></a> </li></p>

<p>  <li>If your enabled the additional logging, you should see that leasing and job scheduler are creating log entries like the following in the managed server log file (not in standard out!).&#160; </li></p>

<p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">####&lt;Apr 8, 2009 3:10:01 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '1' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221401078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Checking Failed Leases&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">####&lt;Apr 8, 2009 3:10:11 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '2' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221411078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Now checking lease statuses.&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">####&lt;Apr 8, 2009 3:10:11 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '2' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221411078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Checking <span style="color: #0000ff">for</span> registered Migratable Targets and Singleton Services without a lease&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">####&lt;Apr 8, 2009 3:10:11 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '2' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221411078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: TimerMaster - Found an owner - -7090657857495109585/managedServer1&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">####&lt;Apr 8, 2009 3:10:11 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '2' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221411078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Checking existant, but expired leases&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">####&lt;Apr 8, 2009 3:10:11 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '2' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221411078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Checking Failed Leases&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">####&lt;Apr 8, 2009 3:10:21 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '0' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221421078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Now checking lease statuses.&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">####&lt;Apr 8, 2009 3:10:21 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '0' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221421078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Checking <span style="color: #0000ff">for</span> registered Migratable Targets and Singleton Services without a lease&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">####&lt;Apr 8, 2009 3:10:21 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '0' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221421078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: TimerMaster - Found an owner - -7090657857495109585/managedServer1&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">####&lt;Apr 8, 2009 3:10:21 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '0' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221421078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Checking existant, but expired leases&gt; <br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">####&lt;Apr 8, 2009 3:10:21 PM CDT&gt; &lt;Debug&gt; &lt;SingletonServices&gt; &lt;jbayer-lap&gt; &lt;managedServer1&gt; &lt;[ACTIVE] ExecuteThread: '0' <span style="color: #0000ff">for</span> queue: 'weblogic.kernel.Default (self-tuning)'&gt; &lt;&lt;WLS Kernel&gt;&gt; &lt;&gt; &lt;&gt; &lt;1239221421078&gt; &lt;BEA-000000&gt; &lt;SingletonMonitor: Checking Failed Leases&gt; </pre></pre></p>

<p>  <li>Register the timer by hitting the URL or invoking the web service of one of the managed servers.&#160; In my case that is <a title="http://localhost:7011/TimerWeb/timerservlet" href="http://localhost:7011/TimerWeb/timerservlet">http://localhost:7011/TimerWeb/timerservlet</a>.&#160; Note that each time you invoke the URL successfully a new timer listener will be registered with the cluster, so you probably only want to do this once.</li></p>

<p>  <li>Notice the messages in standard out if this is working correctly. </li></p>

<p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">timerExpired() called at 4/8/09 3:12 PM<br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">timerExpired() called at 4/8/09 3:13 PM</pre></pre></p>

<p>  <li>Shut down the managed server that has the messages printing to standard out.&#160; You should see the messages show up on another managed server in the cluster in standard out.</li></p>

<p>  <li>Now shut down all of the managed servers and restart at least one.</li></p>

<p>  <li>You should see the timer task start printing to standard out when one of the managed servers in the cluster is available.</li><br />
</ol></p>

<h3>Summary</h3>

<p>So you should have a working timer example in WebLogic Server that survives failures.&#160; The debug messages in the managed server log files can be helpful in trouble-shooting in case anything goes wrong.&#160; A couple other things to note, you cannot cancel timer tasks via CommonJ API calls when running in the JobScheduler.&#160; You have to use the <a href="http://edocs.bea.com/wls/docs103/wlsmbeanref/mbeans/JobRuntimeMBean.html">JobRuntimeMBean</a> for that.&#160; I’ll show an example of using this bean with WLST in another entry.&#160; Here is the source code for the servlet and the timer listener classes.&#160; Hopefully this will help you utilize this powerful capability built-in to WebLogic.</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">package</span> view.jamesbayer;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">import</span> commonj.timers.TimerManager;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">import</span> jamesbayer.client.SystemOutTimerListener;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">import</span> java.io.IOException;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">import</span> java.io.PrintWriter;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">import</span> javax.naming.InitialContext;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">import</span> javax.servlet.*;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">import</span> javax.servlet.http.*;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> TimerServlet <span style="color: #0000ff">extends</span> HttpServlet {
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> init(ServletConfig config) <span style="color: #0000ff">throws</span> ServletException {
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">super</span>.init(config);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    }
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> service(HttpServletRequest request,
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">                        HttpServletResponse response) <span style="color: #0000ff">throws</span> ServletException,
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">                                                             IOException {
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        PrintWriter out = response.getWriter();
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        out.println(&quot;<span style="color: #8b0000">&lt;html&gt;</span>&quot;);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        out.println(&quot;<span style="color: #8b0000">&lt;head&gt;&lt;title&gt;TimerServlet&lt;/title&gt;&lt;/head&gt;</span>&quot;);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">try</span> {
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            System.out.println(&quot;<span style="color: #8b0000">service() entering try block to intialize the timer from JNDI</span>&quot;);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            InitialContext ic = <span style="color: #0000ff">new</span> InitialContext();
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            TimerManager jobScheduler =
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">                (TimerManager)ic.lookup(&quot;<span style="color: #8b0000">weblogic.JobScheduler</span>&quot;);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            System.out.println(&quot;<span style="color: #8b0000">jobScheduler reference </span>&quot; + jobScheduler);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            commonj.timers.TimerListener timerListener =
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">                <span style="color: #0000ff">new</span> SystemOutTimerListener();
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">            System.out.println(&quot;<span style="color: #8b0000">timerListener reference </span>&quot; + timerListener);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">            jobScheduler.schedule(timerListener, 0, 30 * 1000);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            <span style="color: #008000">//execute this job every 30 seconds</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            System.out.println(&quot;<span style="color: #8b0000">service() started the timer</span>&quot;);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">            out.write(&quot;<span style="color: #8b0000">Started the timer - status:</span>&quot;);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        } <span style="color: #0000ff">catch</span> (Throwable t) {
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">            System.out.println(&quot;<span style="color: #8b0000">service() error initializing timer manager with JNDI name weblogic.JobScheduler </span>&quot; +                               t);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        }
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        out.println(&quot;<span style="color: #8b0000">&lt;/body&gt;&lt;/html&gt;</span>&quot;);
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        out.close();
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    }
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">}</pre></pre>

<p></p>

<p></p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">package</span> jamesbayer.client;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">import</span> java.io.Serializable;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">import</span> java.text.SimpleDateFormat;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">import</span> java.util.Date;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"><span style="color: #0000ff">import</span> commonj.timers.Timer;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">import</span> commonj.timers.TimerListener;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> SystemOutTimerListener <span style="color: #0000ff">implements</span> Serializable, TimerListener 
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">{
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">	<span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">final</span> <span style="color: #0000ff">long</span> serialVersionUID = 8313912206357147939L;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">	<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> timerExpired(Timer timer) 
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">	{
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">		SimpleDateFormat sdf = <span style="color: #0000ff">new</span> SimpleDateFormat();
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">		System.out.println( &quot;<span style="color: #8b0000">timerExpired() called at </span>&quot; + sdf.format( <span style="color: #0000ff">new</span> Date() ) );
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">	}
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">}</pre></pre>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[Oracle Enterprise Pack for Eclipse 11g &ndash; WebLogic Interop Tip]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/03/oracle_enterprise_pack_for_ecl.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.11000</id>
   
   <published>2009-03-25T19:49:09Z</published>
   <updated>2009-03-25T19:49:32Z</updated>
   
   <summary>OEPE 11g is out I had to rush out and try it.&#160; I used the full install from OTN.&#160; I assume most users of OEPE 11g will also be WebLogic users.&#160; Out of the box, Workspaces are not pre-configured with...</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p><a href="http://blogs.oracle.com/otn/2009/03/oracle_enterprise_pack_for_ecl.html">OEPE 11g is out</a> I had to rush out and try it.&#160; I used the <a href="http://www.oracle.com/technology/software/products/oepe/oepe_11g.html">full install from OTN</a>.&#160; I assume most users of OEPE 11g will also be WebLogic users.&#160; Out of the box, Workspaces are not pre-configured with a WTP Server Runtime or WebLogic Shared Libraries because OEPE doesn’t know where WebLogic is installed or which version you want to use if you have multiple installations.&#160; There is a simple way to enable this by specifying your WebLogic home in the eclipse.ini file.&#160; I added the following line (substitute your path to WLS):</p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-Dweblogic.home=C:/Oracle/wls10gR3/wlserver_10.3
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"></pre></pre>

<p>Now your Workspaces (existing and new) should become populated with a WebLogic Server Runtime of the version you specified with WebLogic Shared Libraries.&#160; Ah, but there is another gotcha!&#160; In order for this to work with WLS 10gR3 Eclipse needs to be started with a JDK6 JVM.&#160; In my case,&#160; my system’s default JVM was JDK5, so I had to explicitly tell OEPE 11g to start with JDK 6 by specifying the JVM in eclipse.ini.&#160; If you use JRockit instead of Sun you may want to make other adjustments such as making the min/max memory the same and not configuring PermSize at all, but those are just extra tweaks. Again, specify your specific path, but here is mine:</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">-vm
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">C:/Oracle/wls10gR3/jrockit_160_05/jre/bin/javaw.exe</pre></pre>

<p>Using Windows-&gt;Preferences you should be able to see the end result when you launch Eclipse.&#160; Be sure to check out the <a href="http://www.oracle.com/technology/products/enterprise-pack-for-eclipse/tutorials.html">OEPE 11g tutorials</a> for some great examples.</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/OracleEnterprisePackforEclipse11gWebLogi_D041/runtime_2.jpg"><img title="runtime" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="305" alt="runtime" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/OracleEnterprisePackforEclipse11gWebLogi_D041/runtime_thumb.jpg" width="644" border="0" /></a> </p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/OracleEnterprisePackforEclipse11gWebLogi_D041/libs_2.jpg"><img title="libs" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="443" alt="libs" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/OracleEnterprisePackforEclipse11gWebLogi_D041/libs_thumb.jpg" width="463" border="0" /></a></p>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[Eclipse2JDev Series &ndash; An Eclipse user tries JDeveloper]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/03/eclipse2jdev_series_an_eclipse.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.10986</id>
   
   <published>2009-03-24T22:01:00Z</published>
   <updated>2009-03-24T22:01:21Z</updated>
   
   <summary>Since I’ve joined Oracle via the BEA acquisition I have had the opportunity to start learning JDevleoper and I like it a lot, but I’ve had some bumps in the road since I’m so used to Eclipse.  There are some differences for accomplishing certain tasks in JDeveloper and Eclipse and I thought I’d write about my transition from the perspective of a long-time Eclipse user.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="Eclipse" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Eclipse2JDev" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="JDeveloper" scheme="http://www.sixapart.com/ns/types#category" />
   
      <category term="Workshop" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>Since I’ve joined Oracle via the BEA acquisition I have had the opportunity to start learning <a href="http://www.oracle.com/technology/software/products/jdev/index.html">JDevleoper</a> and I like it a lot, but I’ve had some bumps in the road since I’m so used to Eclipse.&#160; Much of the IDE tooling for the Oracle’s SOA, BPM, and Application Server products is migrating to JDeveloper, which is Oracle’s comprehensive IDE.&#160; This gives developers using Oracle products a very easy-to-use and highly integrated development environment.&#160; Oracle is still strongly committed to the Eclipse community as evidenced by the contributions to many Eclipse detailed on the <a href="http://www.oracle.com/technology/products/enterprise-pack-for-eclipse/index.html">Oracle Enterprise Pack for Eclipse</a> page and just announced 11g.&#160; There are some differences for accomplishing certain tasks in JDeveloper and Eclipse and I thought I’d write about my transition from the perspective of a long-time Eclipse user.&#160; Some members of the JDeveloper team have agreed to vet these entries and I hope others will contribute some knowledge as well.&#160; I’ll use Workshop 10gR3 and JDeveloper 11g as my points of comparison.</p>  <h3>Application and Project Archive Packaging</h3>  <p>This use case was part of the inspiration for this series, simply to have an Enterprise Application with a Web Module that has a dependency on a Java project that is also included in the exported EAR.&#160; In Eclipse WTP, this is accomplished by creating 3 separate projects and linking them together:</p>  <ol>   <li>Enterprise Application Project – named LibraryTestApp </li>    <li>Utility Project – named LibraryUtility </li>    <li>Dynamic Web Project – named LibraryWeb </li> </ol>  <p>As you can see in the J2EE Module Dependencies section of the LibraryTestApp project, I have placed dependencies on the other 2 projects, which results in the LibraryUtility.jar being placed in the EAR’s APP-INF/lib and the WAR being included in the EAR as well.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/EclipseDependencies_4.jpg"><img title="EclipseDependencies" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="220" alt="EclipseDependencies" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/EclipseDependencies_thumb_1.jpg" width="644" border="0" /></a>&#160; </p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/EclipseEAR_2.jpg"><img title="EclipseEAR" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="280" alt="EclipseEAR" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/EclipseEAR_thumb.jpg" width="355" border="0" /></a> </p>  <p>JDeveloper has the concept of an Application, which is a container for Projects.&#160; So first create a new Generic Application named LibraryTestApp.&#160; The wizard guides you through the creation of a project for this application, and selected JSP and Servlet technologies and name the project LibraryWeb.&#160; Then add a new Java Project to this Application and call it LibraryUtility.&#160; Both of these projects are initially empty, so create a new JSP file in the Web project.&#160; Looking at the structure for the web module, you can see that it has a WEB-INF directory, but no lib directory underneath it.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/JDev_2.jpg"><img title="JDev" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="267" alt="JDev" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/JDev_thumb.jpg" width="422" border="0" /></a> </p>  <h3></h3>  <h3>How To Create a Directory</h3>  <p>I’m going to side-track this a bit and talk about a variation to this use case.&#160; The first time I tried this I already had a pre-built jar file on the file system and my very first intuition was to create a lib directory underneath of WEB-INF and copy the file over.&#160; JDeveloper does not allow you to create folders with a right-click on WEB-INF.&#160; In fact, creating a folder is not directly supported in JDeveloper.&#160; You can indirectly accomplish it by launching the “New…” wizard and generic file, and put the folder name in the Wizard.&#160; </p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/file_2.jpg"><img title="file" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="383" alt="file" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/file_thumb.jpg" width="644" border="0" /></a> </p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/lib_2.jpg"><img title="lib" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="341" alt="lib" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/lib_thumb.jpg" width="638" border="0" /></a> </p>  <p>This was not exactly intuitive to me as I was used to the Resource Perspective in Eclipse that gives you a pretty good idea of what all the files look like on the file system and lets you manipulate them.&#160; I heard from the product team that this is an often requested feature and is being considered for future JDeveloper releases.&#160; It turns out that you can also just add something to the file system and JDeveloper will pick it up, but there is a better way.&#160; More on that later, but first a little more background on the Application and Project settings.</p>  <h3>Deployment Profiles and Dependencies in JDeveloper</h3>  <p>The concept of Applications and Projects will be new to Eclipse users where everything is a Project, but this helps group projects together instead of having a cluttered workspace full of potentially unrelated projects.&#160; It turns out that you can right-click on the Application name in the Application Navigator and select Application Properties.&#160; Similarly, you can right click on the Project name and select Project Properties.&#160; Alt-Enter also works as a short-cut exactly as in Eclipse.&#160; Inside of Project Properties there is a menu option for Deployments.&#160; From an Eclipse perspective, if you want to create a jar file from a java project you can right-click on the project and select “Export-&gt;Export…-&gt;Java-&gt;Jar”.&#160; JDeveloper does not have an “Export” option, but this is covered by a Deployment Profile.&#160; By default there is no Deployment Profile for the project, so create a new one and name it what you want the jar to be named.&#160; You can see that this will jar up this project and place it in the project’s deploy directory.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/jar%20%5B2%5D_2.jpg"><img title="jar [2]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="389" alt="jar [2]" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/jar%20%5B2%5D_thumb.jpg" width="644" border="0" /></a> </p>  <p>You can explore this even further by looking at the File Groups-&gt;Project Output-&gt;Contributors and see that the Build Output and Project Dependencies both make up the contents of this jar.&#160; Now that we have a jar, let’s turn to the LibraryWeb project that we want to use the LibraryUtility.jar.&#160; Remember earlier when I tried to manually add the jar to the WEB-INF/lib directory?&#160; I should have just used the “Project Properties-&gt;Libraries and Classpath” for the ViewController web module project and added the jar file to the classpath.&#160; Notice that the “Export” checkbox is selected which means this jar will be packaged as part of the WAR under WEB-INF/lib.&#160; So similar to the LibraryUtiilty project, you can create a Deployment Profile for the LibraryWeb project.&#160; This time select WAR as the archive type.&#160; You can see that the jar will be included in the WAR under the WEB-INF/lib contributors.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/classpath_2.jpg"><img title="classpath" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="411" alt="classpath" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/classpath_thumb.jpg" width="644" border="0" /></a> </p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/Contributors_2.jpg"><img title="Contributors" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="378" alt="Contributors" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/Contributors_thumb.jpg" width="644" border="0" /></a> </p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/zip_4.jpg"><img title="zip" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="209" alt="zip" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/zip_thumb_1.jpg" width="237" border="0" /></a> </p>  <p>Notice that the Deployment Profile also has a menu option for Profile Dependencies.&#160; There you can indicate that this Deployment Profile depends on the Deployment Profile that builds the jar for the LibraryUtility project.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/libutility_2.jpg"><img title="libutility" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="461" alt="libutility" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/libutility_thumb.jpg" width="644" border="0" /></a> </p>  <p>You can follow similar steps to create a Deployment Profile for the Application via the Application Properties, this time selecting an EAR archive type.&#160; Now we have a similar experience to Eclipse where I can right click on the project select Deploy-&gt;LibraryTestApp-&gt; to EAR file.&#160; In fact, I can get fancy in the Application’s Deployment Profile and specify the path to the LibraryUtility.jar file in the EAR to be in APP-INF/lib.&#160; You can set up multiple deployment profiles per project or application, so it’s actually more flexible than the Eclipse structure.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/deploy_2.jpg"><img title="deploy" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="300" alt="deploy" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/deploy_thumb.jpg" width="628" border="0" /></a> </p>  <p>If you notice the Deploy-&gt;LibraryTestApp-&gt; as has a “to” option as well as “to EAR file”.&#160; Using this option I can deploy this archive to a running WLS server, more detail on that in another entry.</p>  <h3>An Alternative Approach – Project Dependencies</h3>  <p>There is alternative to the Libraries and Classpath linked to Deployment Profile approach that JDeveloper actually uses by default for Fusion Web Applications.&#160; When you create a new Fusion Web Application, a Model project and a ViewController project are created by default.&#160; In ViewController-&gt;Project Properties-&gt;Dependencies you will see a dependency on the Model project.&#160; </p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/fusion_2.jpg"><img title="fusion" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="395" alt="fusion" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/fusion_thumb.jpg" width="644" border="0" /></a> </p>  <p>Now look at the auto-generated Deployment Profile for the ViewController project and you will see this causes the build output of the Model project to be added to the build output of the ViewController project because of the checkbox for “Project Dependencies” in the WEB-INF/classes contributors section.&#160; This results in only one combined module inside the EAR, instead of two separate ones.&#160; So which method is better – Project Dependencies or linking the Libraries and Classpath to another project’s Deployment Profile?&#160; It is really a matter of taste, but since I had a preconceived notion for the structure of the EAR in the original use case, the Libraries and Classpath linked to the LibraryUtility project’s Deployment Profile worked best for me.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/fusionDeploymentProfile_2.jpg"><img title="fusionDeploymentProfile" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="461" alt="fusionDeploymentProfile" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/Eclipse2JDevSeriesAnEclipseuserswitchest_9A82/fusionDeploymentProfile_thumb.jpg" width="644" border="0" /></a> </p>  <h3>Summary</h3>  <p>So the key take-aways are:</p>  <ul>   <li>JDeveloper organizes Projects inside of Applications</li>    <li>Applications and Projects have the concept of Deployment Profiles and Dependencies, which can be used to structure the archives as we like them</li>    <li>Deployment Profiles can then deploy the archives directly to running servers as well as the file system</li> </ul>  <p>Hopefully this gives a good introduction to some of the distinctions for developing and packaging Enterprise Applications and Modules in Eclipse and JDeveloper.</p>  <h3>Potential Future Topics</h3>  <p>Here is a list of potential topics that I think are interesting for comparison’s sake, let me know if there are others you’d like to hear about.</p>  <ul>   <li>IDE meta-data </li>    <li>IDE shortcuts </li>    <li>Monitoring network traffic </li>    <li>Deploying to a server </li>    <li>Facets versus Technology Scope </li> </ul>]]>
      
   </content>
</entry>

<entry>
   <title>Workaround for Using JConsole with WLS 10gR3 JMX</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/03/workaround_for_using_jconsole.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.10944</id>
   
   <published>2009-03-21T19:39:58Z</published>
   <updated>2009-04-24T19:38:06Z</updated>
   
   <summary>I came across a surprising interoperability issue the other day using JConsole to browse WLS 10gR3 JMX MBeans.  Read on to see how to I got around it.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p><strong><font color="#ff0000">4-24-2009 Update – Please see the <a href="#comments">comments</a> of this entry for a solution that only requires setting the classpath and does not require a custom RMI/IIOP proxy.&#160; Thanks to Kai and Mic for commenting with an easier solution.&#160; James</font></strong></p>  <p>I came across a surprising interoperability issue the other day using JConsole to browse WLS 10gR3 JMX MBeans.&#160; Read on to see how to I got around it.&#160; One of my customers wanted to monitor some WLS services running in a cluster recently, so in doing a little research I decided to pull up JConsole to see what the JMX Beans looked like.&#160; Of course WLST works well for this, but I didn’t quite know where the MBean was located so I wanted something visual that I could navigate in a tree fashion without typing commands.</p>  <p>In order to bring up JConsole, you need to follow some basic steps in the documentation to enable RMI on the server you want to connect to: <a title="http://edocs.bea.com/wls/docs103/jmxinst/accesscust.html#wp1107229" href="http://edocs.bea.com/wls/docs103/jmxinst/accesscust.html#wp1107229">http://edocs.bea.com/wls/docs103/jmxinst/accesscust.html#wp1107229</a>&#160; Be sure to set the default RMI user and password and you will also need to restart the servers after you perform this configuration so it takes effect.</p>  <p>So normally you could just launch JConsole from the JDK’s bin directory and plug-in your connection info.&#160; In my case I am using JDK 6 from the WLS Example server which is running on port 7001.&#160; This is the URI I put into JConsole:</p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">service:jmx:iiop:<span style="color: #008000">///jndi/iiop://localhost:7001/weblogic.management.mbeanservers.runtime</span></pre></pre>

<p>My RMI default user and password is “weblogic”</p>

<p>Well, to my surprise I got a JConsole Output window that kept scrolling with errors.&#160; Here is the beginning of the stack:</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">com.sun.corba.se.impl.encoding.CDRInputStream_1_0_read_value
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">WARNING: &quot;<span style="color: #8b0000">IOP00810257: (MARSHAL) Could not find class</span>&quot;
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> at com.sun.corba.se.imple.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException:7756)
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> ....
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre></pre>

<p>I looked around a bit on Google and found that since JDK 5 there has been a bug in the IIOP RMI stack in the JDK.&#160; Thankfully there is a work-around that involves <a href="http://blogs.sun.com/jmxetc/entry/proxying_a_jmx_connection_adapting">creating a simple poor-man’s proxy</a>.&#160; So I compiled and ran the RMIIIOPProxy.java file from that link (I removed the package name for brevity) and tried again to connect again while the proxy was running.&#160; This time it worked.</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">C:\temp&gt;java RMIIIOPProxy 7011 weblogic.management.mbeanservers.runtime localhost 7001 weblogic.management.mbeanservers.runtime
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Connection established with south server at: service:jmx:iiop:<span style="color: #008000">///jndi/iiop://localhost:7001/weblogic.management.mbeanservers.runtime</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">Proxy server listening at: service:jmx:rmi:<span style="color: #008000">///jndi/rmi://localhost:7011/weblogic.management.mbeanservers.runtime</span>
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">Strike &lt;Enter&gt; to exit</pre></pre>

<p>So now there is a simple proxy that listens on port 7011 which then connects to port 7001 on my behalf and gets around the bug.&#160; I simply take the JMX URI from the proxy console output and plug that back in to JConsole, this time with a successful connection.&#160; Notice that this URI does not include IIOP.&#160; Now I get browse the MBeans, see the attributes, and execute operations like I expect.&#160; I also tried this with JDK 5’s JConsole and the same issue was present and solved by the work-around.</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WorkaroundforUsingJConsolewithWLS10gR3JM_CDB0/cropper_2.jpg"><img title="cropper" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="cropper" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WorkaroundforUsingJConsolewithWLS10gR3JM_CDB0/cropper_thumb.jpg" width="580" border="0" /></a></p>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[Hermes JMS &ndash; Revisited for WebLogic Server JMS 10gR3]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2009/02/hermes_jms_revisited_for_weblo.html" />
   <id>tag:blogs.oracle.com,2009:/jamesbayer//156.10232</id>
   
   <published>2009-02-18T20:45:44Z</published>
   <updated>2009-02-19T20:48:40Z</updated>
   
   <summary>Hermes JMS is an open source JMS Browser created by Colin Christ and hosted on Sourgeforge that works with numerous JMS implementations including WebLogic JMS and Oracle Application Server JMS.  I have written about using Hermes and WebLogic together before so see that entry for an overview.  I have found that this tool works great for me to quickly view/move/delete JMS messages in queues and topics.  This entry is simply an update for the recent version of Hermes 1.13 and WebLogic Server 10gR3.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p><a href="http://hermesjms.org">Hermes JMS</a> is an open source JMS Browser created by Colin Crist and <a href="http://sourceforge.net/project/showfiles.php?group_id=61713">hosted on Sourgeforge</a> that works with numerous JMS implementations including WebLogic JMS and Oracle Application Server JMS.&#160; I have <a href="http://blogs.oracle.com/jamesbayer/2008/01/hermes_jms_open_source_jms_con.html">written about using Hermes and WebLogic together before</a> so see that entry for an overview.&#160; I have found that this tool works great for me to quickly view/move/delete JMS messages in queues and topics.&#160; This entry is simply an update for the recent version of Hermes 1.13 and WebLogic Server 10gR3.&#160; Here’s a screenshot that highlights just some of the capabilities, click to enlarge.</p>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/HermesJMSRevisitedforWebLogic10.3_B66F/hermesFeatures_2.jpg"><img title="hermesFeatures" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="406" alt="hermesFeatures" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/HermesJMSRevisitedforWebLogic10.3_B66F/hermesFeatures_thumb.jpg" width="644" border="0" /></a>&#160;</p>  <ul>   <li>I like using the off-line installation <a href="http://sourceforge.net/project/showfiles.php?group_id=61713&amp;package_id=58149&amp;release_id=616588">from Sourceforge</a> for reasons that will probably become apparent below, but there is also a Web Start version on the <a href="http://hermesjms.org">project home page</a>. </li>    <li>I found an old comment that I had written that claimed using the same JVM as the WLS server with Hermes helps, so I modify the %HERMES_INSTALL%\bin\hermes.bat file to use JRockit from WLS 10gR3: </li> </ul>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">SET JAVA_HOME=C:\Oracle\wls10gR3\jrockit_160_05
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">set PATH=C:\Oracle\wls10gR3\jrockit_160_05\bin
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre></pre>

<ul>
  <li>Launch Hermes and go to Options-&gt;Preferences to add the weblogic.jar to the providers tab, this is nice because presumably I could use multiple WLS versions (I haven’t tried that) </li>
</ul>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/HermesJMSRevisitedforWebLogic10.3_B66F/ClasspathGroup_2.jpg"><img title="ClasspathGroup" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="135" alt="ClasspathGroup" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/HermesJMSRevisitedforWebLogic10.3_B66F/ClasspathGroup_thumb.jpg" width="244" border="0" /></a> </p>

<ul>
  <li>Configure a new Session in the GUI. </li>
</ul>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/HermesJMSRevisitedforWebLogic10.3_B66F/session_2.jpg"><img title="session" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="session" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/HermesJMSRevisitedforWebLogic10.3_B66F/session_thumb.jpg" width="175" border="0" /></a>&#160;</p>

<ul>
  <li>Then right click on the session and select “Discover” and you should have all the destinations available to browse. </li>

<p>  <li>The Session gets saved in hermes-config.xml (C:\.hermes\hermes-config.xml on my machine) and the relevant snippet looks like this: <br />
    <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">factory</span> <span style="color: #ff0000">classpathId</span>=<span style="color: #0000ff">&quot;weblogic10.3&quot;</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">provider</span> <span style="color: #ff0000">className</span>=<span style="color: #0000ff">&quot;hermes.JNDIConnectionFactory&quot;</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">properties</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">                <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;initialContextFactory&quot;</span> <span style="color: #ff0000">value</span>=<span style="color: #0000ff">&quot;weblogic.jndi.WLInitialContextFactory&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">                <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;providerURL&quot;</span> <span style="color: #ff0000">value</span>=<span style="color: #0000ff">&quot;t3://localhost:7001&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">                <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;securityCredentials&quot;</span> <span style="color: #ff0000">value</span>=<span style="color: #0000ff">&quot;weblogic&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">                <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;binding&quot;</span> <span style="color: #ff0000">value</span>=<span style="color: #0000ff">&quot;javax/jms/QueueConnectionFactory&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">                <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;securityPrincipal&quot;</span> <span style="color: #ff0000">value</span>=<span style="color: #0000ff">&quot;weblogic&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">            <span style="color: #0000ff">&lt;/</span><span style="color: #800000">properties</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">provider</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">connection</span> <span style="color: #ff0000">clientID</span>=<span style="color: #0000ff">&quot;&quot;</span> <span style="color: #ff0000">connectionPerThread</span>=<span style="color: #0000ff">&quot;false&quot;</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">session</span> <span style="color: #ff0000">audit</span>=<span style="color: #0000ff">&quot;false&quot;</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">&quot;examplesQCF&quot;</span> <span style="color: #ff0000">reconnects</span>=<span style="color: #0000ff">&quot;0&quot;</span> <span style="color: #ff0000">transacted</span>=<span style="color: #0000ff">&quot;true&quot;</span> <span style="color: #ff0000">useConsumerForQueueBrowse</span>=<span style="color: #0000ff">&quot;false&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">connection</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">destination</span> <span style="color: #ff0000">domain</span>=<span style="color: #0000ff">&quot;1&quot;</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;weblogic/wsee/DefaultQueue&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">destination</span> <span style="color: #ff0000">domain</span>=<span style="color: #0000ff">&quot;1&quot;</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;weblogic/examples/ejb30/ExampleQueue&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">destination</span> <span style="color: #ff0000">domain</span>=<span style="color: #0000ff">&quot;2&quot;</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;weblogic/examples/jms/exampleTopic&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">destination</span> <span style="color: #ff0000">domain</span>=<span style="color: #0000ff">&quot;1&quot;</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;weblogic/examples/jms/exampleQueue&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">destination</span> <span style="color: #ff0000">domain</span>=<span style="color: #0000ff">&quot;1&quot;</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;jms/MULTIDATASOURCE_MDB_QUEUE&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">destination</span> <span style="color: #ff0000">domain</span>=<span style="color: #0000ff">&quot;2&quot;</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;quotes&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">destination</span> <span style="color: #ff0000">domain</span>=<span style="color: #0000ff">&quot;2&quot;</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;stockTopic&quot;</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;</span><span style="color: #800000">extension</span> <span style="color: #ff0000">className</span>=<span style="color: #0000ff">&quot;hermes.ext.weblogic.WebLogicJMSAdminFactory&quot;</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">            <span style="color: #0000ff">&lt;</span><span style="color: #800000">properties</span><span style="color: #0000ff">/&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">        <span style="color: #0000ff">&lt;/</span><span style="color: #800000">extension</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">    <span style="color: #0000ff">&lt;/</span><span style="color: #800000">factory</span><span style="color: #0000ff">&gt;</span><br />
</pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"></pre></pre><br />
  </li><br />
</ul></p>

<ul></ul>

<p>Now you should be ready to browse.&#160; You could also take the alternative route of binding to the Initial Context of the server, which then makes it easy to create multiple Sessions from the Connection Factory objects.&#160; However, I had trouble doing this without editing the hermes-config.xml due to what might be a fluke in the GUI for changing the class-loader provider from System to the WebLogic10.3 one that has the weblogic.jar.&#160; If you have trouble with this you can either edit the hermes-config.xml file to have the correct provider or just add the weblogic.jar to the classpath (so System inherits it).&#160; Good luck with Hermes.</p>]]>
      
   </content>
</entry>

<entry>
   <title><![CDATA[WebLogic Server Resources &ndash; My Comprehensive List]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2008/12/weblogic_server_resources_my_c.html" />
   <id>tag:blogs.oracle.com,2008:/jamesbayer//156.9354</id>
   
   <published>2008-12-29T20:47:42Z</published>
   <updated>2008-12-29T20:55:49Z</updated>
   
   <summary>Prior to joining BEA over 3 years ago, I never used WebLogic Server and had to come up to speed very quickly.  I have assembled my list of favorite resources for acquiring WebLogic knowledge.  Now that Oracle has declared WebLogic Server as the strategic application server platform I expect that many Oracle employees, customers and partners will be in a similar situation as I was when I joined BEA.  The good news is that there are many excellent ways to come up to speed in many different media formats.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<h2>Overview</h2>  <p>Prior to joining BEA over 3 years ago, I never used WebLogic Server and had to come up to speed very quickly.&#160; I have assembled my list of favorite resources for acquiring WebLogic knowledge.&#160; Now that Oracle has declared WebLogic Server as the <a href="http://www.oracle.com/products/middleware/docs/oracle-middleware-strategy-briefing-072008.pdf">strategic application server platform</a> I expect that many Oracle employees, customers and partners will be in a similar situation as I was when I joined BEA.&#160; The good news is that there are many excellent ways to come up to speed in many different media formats.</p>  <h2>The Basics – Terminology and Concepts</h2>  <p>Step zero is to understand some of the concepts and terminology that are specific to WebLogic Server.&#160; There is a very short and easy <a href="http://www.slideshare.net/jambay/oracle-weblogic-server-basic-concepts-presentation">presentation</a> that does this that has been posted on <a href="http://www.slideshare.net">slideshare</a>.&#160; If you need the very high-level, then start here.&#160; Of course you can get all of this from the <a href="http://edocs.bea.com/wls/docs103/index.html">documentation</a> in a more verbose way; however I have not found a better concise introduction than this presentation.</p>  <div id="__ss_783771" style="width: 425px; text-align: left"><a title="Oracle WebLogic Server Basic Concepts" style="display: block; margin: 12px 0px 3px; font: 14px helvetica,arial,sans-serif; text-decoration: underline" href="http://www.slideshare.net/jambay/oracle-weblogic-server-basic-concepts-presentation?type=powerpoint">Oracle WebLogic Server Basic Concepts</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=weblogicserveroverviewtopologyconfigurationadministration-1227546826890714-9&amp;stripped_title=oracle-weblogic-server-basic-concepts-presentation" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=weblogicserveroverviewtopologyconfigurationadministration-1227546826890714-9&amp;stripped_title=oracle-weblogic-server-basic-concepts-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>    <div style="font-size: 11px; padding-top: 2px; font-family: tahoma,arial; height: 26px">View SlideShare <a title="View Oracle WebLogic Server Basic Concepts on SlideShare" style="text-decoration: underline" href="http://www.slideshare.net/jambay/oracle-weblogic-server-basic-concepts-presentation?type=powerpoint">presentation</a> or <a style="text-decoration: underline" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration: underline" href="http://slideshare.net/tag/weblogic">weblogic</a> <a style="text-decoration: underline" href="http://slideshare.net/tag/oracle">oracle</a>)</div> </div>  <p></p>  <h2>Baby Steps – Oracle By Example</h2>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/swing.jpg"><img title="swing" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="244" alt="swing" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/swing_thumb.jpg" width="164" align="right" border="0" /></a> Oracle has a very nice concept called “Oracle By Example” where they explain in detail with screenshots how to perform specific tasks.&#160; Now there is a <a href="http://www.oracle.com/technology/obe/fusion_middleware/wls103/index.html">complete Oracle By Example section on WebLogic Server</a> with lessons for <a href="http://www.oracle.com/technology/obe/fusion_middleware/wls103/InstallConfig/install_wls/Install_WLS.htm">Installing and Configuring Oracle WebLogic Server Instance </a>, <a href="http://www.oracle.com/technology/obe/fusion_middleware/wls103/cluster/Create_Basic_cluster/create_basic_cluster.htm">Create a Basic Cluster</a>, <a href="http://www.oracle.com/technology/obe/fusion_middleware/wls103/SystemMgmt/Admin_Console/Admin_Console.html">Using the WebLogic Server Administration Console</a> and many others.&#160; You have to crawl before you walk and run, so be sure to check these out as they are great for getting started.</p>  <h2>Samples and Examples Ship With the Product<a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/lightinstall_4.jpg"><img title="lightinstall" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 0px 0px 5px; border-left: 0px; border-bottom: 0px" height="438" alt="lightinstall" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/lightinstall_thumb_1.jpg" width="607" align="right" border="0" /></a> </h2>  <p>It surprises me how often people do not know that WebLogic Server has example source code and an sample domain that can be installed with the product.&#160; In the past this was part of the default installation, but I believe with 10gR3 that you now have to specify the option to install the samples as part of a custom installation.&#160; If you did the default installation you should be able to add the examples by running the installer again and selecting the custom installation to add only the examples to an existing installation.&#160; You can see detail about the samples by opening the file &lt;WEBLOGIC_INSTALLATION&gt;\wlserver_10.3\samples\server\wls_samples_overview.html</p>  <p>Check out the complete index of the 10gR3 examples on the image below and see how many specific examples are included.&#160; For example, there web services examples for several of the WS-* specifications, in some cases mixed and matched together.&#160; A simple rule of thumb is to always check the examples whenever you are getting started with a feature for the first time or you need a refresher on a feature you have not used in a while.&#160; Many of the examples also can be used as a template to build on for your scripts and code.</p>  <p>The examples instructions also include instructions on how to start the Examples Server also known as the samples domain, so be sure to check those instructions out as most examples will get deployed to the samples domain located at &lt;WEBLOGIC_INSTALLATION&gt;\wlserver_10.3\samples\domains\wl_server</p>  <h2><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/examplesIndex_6.jpg"><img title="examplesIndex" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 0px 0px 5px; border-left: 0px; border-bottom: 0px" height="418" alt="examplesIndex" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/examplesIndex_thumb_2.jpg" width="401" border="0" /></a></h2>  <h2>Required Reading - Documentation</h2>  <p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/sitemap_2.jpg"><img title="sitemap" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 5px 0px 0px; border-left: 0px; border-bottom: 0px" height="405" alt="sitemap" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/sitemap_thumb.jpg" width="183" align="left" border="0" /></a> Although it is not as fun as watching a screencast or as quick as a topic tailored presentation, you absolutely must become familiar with the <a href="http://edocs.bea.com/wls/docs103/index.html">standard documentation</a> when you get in to any level of detail on WebLogic features.&#160; Here are a couple non-obvious items from the docs table of contents that I have circled on the left that you should note.</p>  <p><a href="http://edocs.bea.com/wls/docs103/notes/new.html">What’s New</a> – Provides a breakdown by subsystem of what has changed between releases, sometimes there are new features that do not get featured on the front-page, but that are very nice to know about.</p>  <p><a href="http://edocs.bea.com/wls/docs103/issues/known_resolved.html">Known and Resolved Issues</a> – These can come in very handy when you trying to discover if an issue you’ve run into is currently known about and potentially resolved.&#160; It has the specific bug number (known as a CR in WebLogic speak) that can come in handy when interfacing with support.</p>  <p><a href="http://edocs.bea.com/platform/suppconfigs/configs103/103_over/overview.html">Supported Configurations</a> – I cannot stress enough how important it is that you review the documentation for the specific OS / Chipset / JVM combination that you are using in various environments.&#160; When using proprietary OS’s like HP-UX or AIX for example, only very specific JVM versions are supported and there may be specific patches required for the OS, the JVM, and WebLogic Server.&#160; I have seen issues come up many times in the field when these pre-tested and certified versions are not adhered to strictly.&#160; Take a look at <a href="http://edocs.bea.com/platform/suppconfigs/configs/ibm_aix/ibm_aix53_103.html">this page for AIX 5.3</a> for example which gives precise version information and <a href="http://edocs.bea.com/platform/suppconfigs/configs/ibm_aix/ibm_aix53_103.html#100660">special installation instructions</a> and <a href="http://edocs.bea.com/platform/suppconfigs/configs/ibm_aix/ibm_aix53_103.html#101452">patch information</a> for this combination.</p>  <p><strong>Documentation Search Tip</strong> - One short-cut that I use often when searching the documentation is the google “site:” syntax.&#160; So for example, to constrain my search the WebLogic Server 10gR3 documentation for the words “deployment descriptor” you can specify the path to restrict the results to.&#160; I type this in the google search bar:&#160; </p>  <pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">site:http://edocs.bea.com/wls/docs103/ deployment descriptor</pre></pre>
You can take specify a deeper path as well, so if I only wanted to search a portion of the JMS documentation, I could have used the path http://edocs.bea.com/wls/docs103/jms 

<p>In fact, I have another short-cut that simplifies this further, I use a tool called <a href="http://www.bayden.com/SlickRun/">SlickRun</a> where I can create my own short-cuts by keyword.&#160; I have created a “wls” keyword so I can type the following command into a prompt that is always keyboard accessible:</p>

<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">wls deployment descriptor</pre></pre>

<p>and SlickRun will open my browser, put in the google site syntax for me, and substitue the “deployment descriptor” phrase to be my search terms.&#160; But I digress…</p>

<p>The final thing I will mention about the documentation is that it is a living set of documents.&#160; If you find a gap that needs to be filled, an area that needs improvement or more detail, or a mistake then please participate in making the documentation better by sending feedback via the link at the bottom of each page or emailing it to docsupport at bea dot com.</p>

<h2>Oracle Technology Network (OTN)</h2>

<p>Many of the resources mentioned here are part of the Oracle Technology Network which has tons of information.&#160; Here are some of my favorites for WebLogic:</p>

<p><a href="http://www.oracle.com/technology/products/weblogic/index.html">WebLogic Server Product Page</a> – This is the center of the universe for WebLogic.&#160; Do not miss the recorded demos (a list is below). </p>

<p><a href="http://blogs.oracle.com/WebLogicServer/">WebLogic Server Product Blog</a> – Many great posts by the product team.</p>

<p><a href="http://www.oracle.com/technology/products/weblogic/rss.xml">RSS feed for all WebLogic related articles and news</a></p>

<p>&#160;<a href="http://www.oracle.com/technology/products/weblogic/index.html"><img title="demos" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="176" alt="demos" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/WebLogicResourcesMyComprehensiveList_9347/demos_5.jpg" width="470" border="0" /></a></p>

<h2>Forums</h2>

<p>There are many product specific forums on the Oracle Technology Network that are monitored by experts to answer informed questions.&#160; In WebLogic Server’s case there are even sub-forums for specific sub-systems of WebLogic Server that are often monitored by developers and experts in those subject areas.&#160; In addition to the <a href="http://forums.oracle.com/forums/forum.jspa?forumID=570">Generic WebLogic Server forum</a> that I like to read, there are currently forums specific to <a href="http://forums.oracle.com/forums/forum.jspa?forumID=579">JDBC</a>, <a href="http://forums.oracle.com/forums/forum.jspa?forumID=581">Security</a>, <a href="http://forums.oracle.com/forums/forum.jspa?forumID=728">Web Services</a>, etc.&#160; This is not a comprehensive list and they are adding more all the time, so check the <a href="http://forums.oracle.com/forums/category.jspa?categoryID=193">Application Server category</a> to see if there is a specific WebLogic forum for your question.&#160; <strong>One of the most important things to remember is that the detailed, well-researched, and well-explained questions are most likely to get a helpful response.</strong>&#160; If you are lazy and have not used some of the resources above or if you do not provide enough detail so that someone with no context can figure out what you are asking, then you end up wasting people’s time.&#160; There is also a <a href="http://forums.oracle.com/forums/category.jspa?categoryID=202">read-only archive of the former BEA dev2dev forums</a> that is especially helpful for researching questions on older releases.</p>

<p>I really like using the RSS feeds from the forums to find out about new postings in my RSS Reader.&#160; You can also do other handy things like watch a specific thread so you receive emails about any updates to that thread only instead of for the entire forum.</p>

<p>Oracle provides a formal support process for their customers with defined Service Level Agreements and the forums are not a substitute for that.&#160; They are a community-based volunteer mechanism to help both the questioners and the responders further their knowledge.&#160; So if you use the forums to post questions, give back and help answer some of the questions too.&#160; Even if you only start by redirecting people to previous answers or a better forum to post their question in, you can help build the community and learn yourself.</p>

<h2>Support</h2>

<p>Whenever an issue or question comes up that has urgency, I urge my customers to open a support case.&#160; I use this <a href="http://blogs.oracle.com/jamesbayer/WebLogicSupportQuickReferenceGuide.doc">simple support quick reference guide</a> with my customers that has all contact information and describes how to open a support case, escalate an issue, etc on only one page.&#160; It’s easy to print out and post somewhere where management, developers and administrators can see it.&#160; WebLogic support is still handled by the <a href="http://support.bea.com">http://support.bea.com</a> website as of this post, but over time it will migrate to the <a href="https://metalink.oracle.com">My Oracle Support website</a> formerly known as Metalink.</p>

<p><a href="https://support.bea.com/application_content/product_portlets/support_patterns/wls/wls_support_patterns.jsp">Support Patterns</a><strong> -</strong> The WebLogic support patterns are a fantastic way to try self-service support on common issues.&#160; These are used by the support engineers and are common enough to be published for anyone to use.&#160; They are broken down by topic area and I often find myself pointing customers to this information.&#160; For example, if you need to <a href="https://support.bea.com/application_content/product_portlets/support_patterns/wls/MulticastErrorsPattern.html">troubleshoot multicast issues in a cluster</a> there is a page dedicated to that topic.</p>

<h2>Oracle University</h2>

<p><a href="http://education.oracle.com">Formal training courses</a> from Oracle University and certifications are a great way to build knowledge.&#160; WebLogic courses are currently listed under the <a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=84&amp;group_id=1410">BEA section</a>.</p>

<h2>Summary</h2>

<p>I’m sure that I have omitted some excellent resources by accident.&#160; There are published <a href="http://www.google.com/search?q=WebLogic+Server+Book&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a">books</a> on these topics and many WebLogic blogs out there, not all of which are hosted on blogs.oracle.com.</p>

<p>Once you participate in the community awhile you make connections with experts in many subject areas.&#160; The relationships that I have built up over time with the product team and specialists are helpful, but it did not happen over night.&#160; So my advice is to participate in the community and take advantage of the many resources out there.&#160; Leave a comment if you have any favorites resources that I left out.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Comet Workshop Recording</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2008/12/comet_workshop_recording.html" />
   <id>tag:blogs.oracle.com,2008:/jamesbayer//156.8993</id>
   
   <published>2008-12-05T22:54:15Z</published>
   <updated>2008-12-05T23:01:22Z</updated>
   
   <summary>Google recently posted a video recording of a Comet Workshop delivered by Kevin Nilson, who has also authored an article and a podcast about his experiences with Comet, Bayeux and Dojo.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>Google recently <a href="http://code.google.com/videos/#BJpg20uoQ40">posted a video recording</a> of a Comet Workshop delivered by <a href="http://today.java.net/pub/au/693">Kevin Nilson</a>, who has also authored an article and a <a href="http://download.java.net/general/podcasts/j1-2k8-mtW03.mp3">podcast</a> about his experiences with Comet, Bayeux and Dojo.&#160; He also has a <a href="http://www.javaclimber.com/portal/portal/myportal/IT">website</a> that has links to <a href="http://docs.google.com/Present?docid=dggr4fvg_0fn3q7fcr">hosted presentations</a>.&#160; Definitely give his material a look if you want to learn more about the Comet examples I posted previously and if you want an objective vendor-neutral perspective.</p> <embed src="http://www.youtube.com/v/BJpg20uoQ40&amp;rel=0" width="425" height="355" type="application/x-shockwave-flash" wmode="transparent" />]]>
      
   </content>
</entry>

<entry>
   <title>Real-time Updates on WebPages - Part 3 - Dojo 1.2.0 tip and Bayeux Handshake</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/jamesbayer/2008/10/realtime_updates_on_webpages_p_1.html" />
   <id>tag:blogs.oracle.com,2008:/jamesbayer//156.8231</id>
   
   <published>2008-10-22T02:27:22Z</published>
   <updated>2008-10-22T02:29:56Z</updated>
   
   <summary>Yesterday I published my sample Comet application for WLS 10.3 and described how to get it to work with Dojo 1.1.1.  I mentioned that I had an issue with Dojo&apos;s brand new 1.2.0 release.  Well I figured out the issue and the work-around to using Dojo 1.2.0 with WLS 10.3.</summary>
   <author>
      <name>james.bayer</name>
      
   </author>
   
      <category term="WLS" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en-us" xml:base="http://blogs.oracle.com/jamesbayer/">
      <![CDATA[<p>Yesterday I <a href="http://blogs.oracle.com/jamesbayer/2008/10/realtime_updates_on_webpages_p.html">published my sample Comet application</a> for WLS 10.3 and described how to get it to work with Dojo 1.1.1.&#160; I mentioned that I had an issue with Dojo's brand new 1.2.0 release.&#160; Well I figured out the issue and the work-around to using Dojo 1.2.0 with WLS 10.3.&#160; All that is required is to call the dojox.cometd.connectionTypes.unregister() function before you use dojox.cometd.init().</p>  <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">   <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">dojox.cometd.connectionTypes.unregister(<span style="color: #006080">&quot;long-polling-json-encoded&quot;</span>);</pre>
</div>

<p>Now that I ruined the punch-line, read-on if you're interested in how the <a href="http://svn.xantus.org/shortbus/trunk/bayeux/bayeux.html">Bayeux protocol</a> handshake happens and how I trouble-shot this.&#160; When the client initializes there is a handshake message exchanged with the server so they can agree on which method of communicating to use.&#160; Apparently WLS 10.3 as it ships does not like a new supported connection type that is available in Dojo 1.2.0.</p>

<p>The client normally uses code like this to initialize a connection:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #006080">&lt;</span>!-- Import Dojo --<span style="color: #006080">&gt;</span>
<span style="color: #006080">&lt;</span><span style="color: #0000ff">script</span> type=&quot;text/javascript&quot; src=&quot;dojo-release-1.2.0/dojo/dojo<span style="color: #cc6633">.js</span>&quot;
    djConfig=&quot;parseOnLoad:true, isDebug:true&quot;<span style="color: #006080">&gt;</span><span style="color: #006080">&lt;</span>/<span style="color: #0000ff">script</span><span style="color: #006080">&gt;</span>

<p><span style="color: #006080">&lt;</span><span style="color: #0000ff">script</span> type=&quot;text/javascript&quot;<span style="color: #006080">&gt;</span><br />
    dojo<span style="color: #cc6633">.require</span>(&quot;dojox<span style="color: #cc6633">.cometd</span>&quot;);<br />
    dojox<span style="color: #cc6633">.cometd</span><span style="color: #cc6633">.init</span>(&quot;cometd&quot;);<br />
<span style="color: #006080">&lt;</span>/<span style="color: #0000ff">script</span><span style="color: #006080">&gt;</span></pre><br />
</div></p>

<p>Using Firebug and a <a href="http://www.us-webmasters.com/Decode-URLs/">simple URL decoder</a> we can see that it sends the following with a POST to the server:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; height: 54px; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">message=[{<span style="color: #006080">&quot;version&quot;</span>:<span style="color: #006080">&quot;1.0&quot;</span>,<span style="color: #006080">&quot;minimumVersion&quot;</span>:<span style="color: #006080">&quot;0.9&quot;</span>,<span style="color: #006080">&quot;channel&quot;</span>:<span style="color: #006080">&quot;/meta /handshake&quot;</span>,<span style="color: #006080">&quot;id&quot;</span>:<span style="color: #006080">&quot;0&quot;</span>,<span style="color: #006080">&quot;supportedConnectionTypes&quot;</span>:[<span style="color: #006080">&quot;long-polling&quot;</span>,<span style="color: #006080">&quot;long-polling-json-encoded &quot;</span>,<span style="color: #006080">&quot;callback-polling&quot;</span>]}]</pre>
</div>

<p>The response looks like this:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">[{<span style="color: #006080">&quot;channel&quot;</span>: <span style="color: #006080">&quot;/meta/handshake&quot;</span>, <span style="color: #006080">&quot;successful&quot;</span>: <span style="color: #0000ff">false</span>, <span style="color: #006080">&quot;error&quot;</span>: <span style="color: #006080">&quot;402:long-polling-json-encoded:Invalid
 supportedConnectionTypes attribute.&quot;</span>, <span style="color: #006080">&quot;supportedConnectionTypes&quot;</span>: [<span style="color: #006080">&quot;long-polling&quot;</span>,<span style="color: #006080">&quot;callback-polling&quot;</span>
], <span style="color: #006080">&quot;version&quot;</span>: <span style="color: #006080">&quot;1.0&quot;</span>, <span style="color: #006080">&quot;minimumVersion&quot;</span>: <span style="color: #006080">&quot;0.1&quot;</span>, <span style="color: #006080">&quot;advice&quot;</span>: {<span style="color: #006080">&quot;reconnect&quot;</span>: <span style="color: #006080">&quot;none&quot;</span>, <span style="color: #006080">&quot;interval&quot;</span>: 500, <span style="color: #006080">&quot;multiple-clients&quot;</span>
: <span style="color: #0000ff">false</span>}}]</pre>
</div>

<p>Uh oh, notice how there is an error in the handshake indicating that WLS does not like the long-polling-json-encoded connection type?&#160; So after posting in the <a href="http://www.dojotoolkit.org/forum/dojox-dojox/dojox-support/new-cometd-supportedconnectiontypes-1-2-0">Dojox support forum</a>, I got a response suggesting specifying a property as an argument to the init() call so as not to send the extra connection type.&#160; That did not work for me, but it put me on the path of using Firebug, the js source, and the Dojo API docs.&#160; I discovered that the connection types are stored in an <a href="http://api.dojotoolkit.org/jsdoc/dojo/1.2/dojo.AdapterRegistry">dojo.AdapterRegistry</a> and that there is an unregister function for the connection types.&#160; That's it.&#160; So now my client code looks like this with the new unregister invocation:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">&lt;!-- Import Dojo --&gt;
&lt;script type=<span style="color: #006080">&quot;text/javascript&quot;</span> src=<span style="color: #006080">&quot;dojo-release-1.2.0/dojo/dojo.js&quot;</span>
    djConfig=<span style="color: #006080">&quot;parseOnLoad:true, isDebug:true&quot;</span>&gt;&lt;/script&gt;

<p>&lt;script type=<span style="color: #006080">&quot;text/javascript&quot;</span>&gt;<br />
    dojo.require(<span style="color: #006080">&quot;dojox.cometd&quot;</span>);<br />
    dojox.cometd.connectionTypes.unregister(<span style="color: #006080">&quot;long-polling-json-encoded&quot;</span>);<br />
    dojox.cometd.init(<span style="color: #006080">&quot;cometd&quot;</span>);<br />
&lt;/script&gt;</pre><br />
</div></p>

<p>Which results in a POST like this:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; height: 39px; background-color: #f4f4f4; border-bottom-style: none">message=[{<span style="color: #006080">&quot;version&quot;</span>:<span style="color: #006080">&quot;1.0&quot;</span>,<span style="color: #006080">&quot;minimumVersion&quot;</span>:<span style="color: #006080">&quot;0.9&quot;</span>,<span style="color: #006080">&quot;channel&quot;</span>:<span style="color: #006080">&quot;/meta /handshake&quot;</span>,<span style="color: #006080">&quot;id&quot;</span>:<span style="color: #006080">&quot;0&quot;</span>,<span style="color: #006080">&quot;supportedConnectionTypes&quot;</span>:[<span style="color: #006080">&quot;long-polling&quot;</span>,<span style="color: #006080">&quot;callback-polling &quot;</span>]}]</pre>
</div>

<p>And a successful response like this:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">[{<span style="color: #006080">&quot;channel&quot;</span>: <span style="color: #006080">&quot;/meta/handshake&quot;</span>, <span style="color: #006080">&quot;version&quot;</span>: <span style="color: #006080">&quot;1.0&quot;</span>, <span style="color: #006080">&quot;supportedConnectionTypes&quot;</span>: [<span style="color: #006080">&quot;long-polling&quot;</span>,<span style="color: #006080">&quot;callback-polling&quot;</span>
], <span style="color: #006080">&quot;clientId&quot;</span>: <span style="color: #006080">&quot;NNR2BOeRyCVKjLN&quot;</span>, <span style="color: #006080">&quot;successful&quot;</span>: <span style="color: #0000ff">true</span>, <span style="color: #006080">&quot;minimumVersion&quot;</span>: <span style="color: #006080">&quot;0.1&quot;</span>, <span style="color: #006080">&quot;authSuccessful&quot;</span>: <span style="color: #0000ff">true</span>
, <span style="color: #006080">&quot;advice&quot;</span>: {<span style="color: #006080">&quot;interval&quot;</span>: 500, <span style="color: #006080">&quot;multiple-clients&quot;</span>: <span style="color: #0000ff">false</span>}}]</pre>
</div>

<p>Which causes the Dojo cometd framework to send another request specifying that it prefers long-polling:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; height: 58px; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">[{<span style="color: #006080">&quot;channel&quot;</span>:<span style="color: #006080">&quot;/meta/connect&quot;</span>,<span style="color: #006080">&quot;clientId&quot;</span>:<span style="color: #006080">&quot;NNR2BOeRyCVKjLN&quot;</span>,<span style="color: #006080">&quot;connectionType&quot;</span>:<span style="color: #006080">&quot;long-polling&quot;</span>,<span style="color: #006080">&quot;id&quot;</span>:<span style="color: #006080">&quot;1&quot;</span>}]</pre>
</div>

<p>And a confirmation response that long-polling should be initiated:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">[{<span style="color: #006080">&quot;channel&quot;</span>: <span style="color: #006080">&quot;/meta/connect&quot;</span>, <span style="color: #006080">&quot;successful&quot;</span>: <span style="color: #0000ff">true</span>, <span style="color: #006080">&quot;clientId&quot;</span>: <span style="color: #006080">&quot;NNR2BOeRyCVKjLN&quot;</span>, <span style="color: #006080">&quot;error&quot;</span>: <span style="color: #006080">&quot;&quot;</span>, <span style="color: #006080">&quot;timestamp&quot;</span>
: <span style="color: #006080">&quot;2008-10-22 01:59:27&quot;</span>, <span style="color: #006080">&quot;connectionId&quot;</span>: <span style="color: #006080">&quot;null&quot;</span>, <span style="color: #006080">&quot;advice&quot;</span>: {<span style="color: #006080">&quot;interval&quot;</span>: 500, <span style="color: #006080">&quot;multiple-clients&quot;</span>: <span style="color: #0000ff">false</span>
}}]</pre>
</div>

<p>Which results in an immediate call to the server:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; height: 31px; background-color: #f4f4f4; border-bottom-style: none">[{<span style="color: #006080">&quot;channel&quot;</span>:<span style="color: #006080">&quot;/meta/connect&quot;</span>,<span style="color: #006080">&quot;connectionType&quot;</span>:<span style="color: #006080">&quot;long-polling&quot;</span>,<span style="color: #006080">&quot;clientId&quot;</span>:<span style="color: #006080">&quot;lMRDFU5fBxnE5kg&quot;</span>,<span style="color: #006080">&quot;id&quot;</span>:<span style="color: #006080">&quot;3&quot;</span>}]</pre>
</div>

<p>The response either times out on the server after about 80 seconds or returns if there is an event that the client has subscribed to sooner.&#160; Then the process simply repeats.&#160; Here is the response after a timeout.</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">[{<span style="color: #006080">&quot;channel&quot;</span>: <span style="color: #006080">&quot;/meta/connect&quot;</span>, <span style="color: #006080">&quot;successful&quot;</span>: <span style="color: #0000ff">true</span>, <span style="color: #006080">&quot;clientId&quot;</span>: <span style="color: #006080">&quot;lMRDFU5fBxnE5kg&quot;</span>, <span style="color: #006080">&quot;error&quot;</span>: <span style="color: #006080">&quot;&quot;</span>, <span style="color: #006080">&quot;timestamp&quot;</span>
: <span style="color: #006080">&quot;2008-10-22 02:15:57&quot;</span>, <span style="color: #006080">&quot;connectionId&quot;</span>: <span style="color: #006080">&quot;null&quot;</span>, <span style="color: #006080">&quot;advice&quot;</span>: {<span style="color: #006080">&quot;reconnect&quot;</span>: <span style="color: #006080">&quot;retry&quot;</span>, <span style="color: #006080">&quot;interval&quot;</span>: 500, <span style="color: #006080">&quot;multiple-clients&quot;</span>
: <span style="color: #0000ff">false</span>}}]</pre>
</div>

<p>This causes the connect message to be sent again.&#160; Firebug shows me the spinning request (see the last POST) indicating that it is waiting for the server response, and I know that it's working.&#160; And the world is right again.&#160; <a href="http://blogs.sun.com/carolmcdonald/resource/comethttp.gif">A helpful diagram</a> showing how some of the various delivery methods work for this is on <a href="http://weblogs.java.net/blog/caroljmcdonald/archive/2008/07/comet_slideshow_1.html">Carol McDonald's blog</a>.</p>

<p><a href="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/RealtimeUpdateson.0tipandBayeuxHandshake_12D88/spin_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="268" alt="spin" src="http://blogs.oracle.com/jamesbayer/WindowsLiveWriter/RealtimeUpdateson.0tipandBayeuxHandshake_12D88/spin_thumb.jpg" width="397" border="0" /></a></p>]]>
      
   </content>
</entry>

</feed>
