You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/09/01 20:11:14 UTC

svn commit: r439408 - /incubator/activemq/site/weblogic-integration.html

Author: chirino
Date: Fri Sep  1 11:11:13 2006
New Revision: 439408

URL: http://svn.apache.org/viewvc?rev=439408&view=rev
Log:
Latest export from confluence

Modified:
    incubator/activemq/site/weblogic-integration.html

Modified: incubator/activemq/site/weblogic-integration.html
URL: http://svn.apache.org/viewvc/incubator/activemq/site/weblogic-integration.html?rev=439408&r1=439407&r2=439408&view=diff
==============================================================================
--- incubator/activemq/site/weblogic-integration.html (original)
+++ incubator/activemq/site/weblogic-integration.html Fri Sep  1 11:11:13 2006
@@ -365,7 +365,7 @@
 
 <H4><A name="WebLogicIntegration-ActiveMQasaWebLogicApplication"></A>ActiveMQ as a WebLogic Application</H4>
 
-<P>The easiest type of WebLogic application to configure with all the needed ActiveMQ libraries and configuration and not much else is a web application.  The JARs go in <TT>WEB-INF/lib/</TT> and config files typically in <TT>WEB-INF/</TT>.  The only necessary configuration for the web application itself is to install a listener that will start and stop ActiveMQ when the web application is started and stopped.  There are also a couple optional classes that can be used to integrate ActiveMQ with WebLogic&apos;s management and security systems.  Additionally, in this example, a simple web page included in the WAR will be available whenever ActiveMQ is running, so a simple HTTP request can determine whether the ActiveMQ module has been started.</P>
+<P>The easiest type of WebLogic application to configure with all the needed ActiveMQ libraries and configuration and not much else is a web application.  The JARs go in <TT>WEB-INF/lib/</TT> and config files typically in <TT>WEB-INF/</TT>.  The only necessary configuration for the web application itself is to install a listener that will start and stop ActiveMQ when the web application is started and stopped.  There are also a couple optional classes that can be used to integrate ActiveMQ with WebLogic&apos;s security system.  Additionally, in this example, a simple web page included in the WAR will be available whenever ActiveMQ is running, so a simple HTTP request can determine whether the ActiveMQ module has been started.</P>
 
 <H4><A name="WebLogicIntegration-ManagementOptions"></A>Management Options</H4>
 
@@ -384,7 +384,7 @@
 </UL>
 
 
-<P>The sample below includes an optional class that lets ActiveMQ hook into the WebLogic runtime MBeanServer.  This means ActiveMQ MBeans will appear alongside WebLogic MBeans (and even JVM MBeans if they are enabled).  This means management clients will access ActiveMQ MBeans through the normal WebLogic listen port (e.g. 7001) rather than using a dedicated JMX port, though IIOP must be enabled for this to work.  However, note that this is optional, and you can skip this class and use one of the other approaches (JVM or embedded MBeanServer) to expose the ActiveMQ MBeans.</P>
+<P>The sample below includes an optional configuration block that lets ActiveMQ hook into the WebLogic runtime MBeanServer.  This means ActiveMQ MBeans will appear alongside WebLogic MBeans (and even JVM MBeans if they are enabled).  With this approach, management clients will access ActiveMQ MBeans through the normal WebLogic listen port (e.g. 7001) rather than using a dedicated JMX port, though IIOP must be enabled for this to work.  However, note that this is optional, and you can skip that configuration block and use one of the other approaches (JVM or embedded MBeanServer) to expose the ActiveMQ MBeans.</P>
 
 <H4><A name="WebLogicIntegration-SecurityOptions"></A>Security Options</H4>
 
@@ -406,7 +406,7 @@
 	<LI>In order to start ActiveMQ when the web application is deployed, the <TT>web.xml</TT> includes a context listener for Spring, and the Spring <TT>applicationContext.xml</TT> file loads the ActiveMQ broker and points it to the ActiveMQ configuration file (which as mentioned above, is stored in a directory on the class path).</LI>
 	<LI>Within ActiveMQ:
 	<UL>
-		<LI>A management plugin causes ActiveMQ to register all its JMX MBeans with the WebLogic JMX MBeanServer</LI>
+		<LI>A configuration block in the ActiveMQ configuration file causes ActiveMQ to register all its JMX MBeans with the WebLogic JMX MBeanServer</LI>
 		<LI>A security plugin causes all clients to authenticate against the WebLogic security realm</LI>
 		<LI>The security plugin also reads the name of a WebLogic group from the ActiveMQ configuration file, and requires that any client must be a member of that group (when WebLogic processed the login, it must have created a principal for that group for the user)</LI>
 		<LI>The ActiveMQ configuration file also identifies a network listen port that ActiveMQ will listen on for JMS clients.  Any clients must include the server&apos;s hostname and this listen port in their connect URL.</LI>
@@ -473,41 +473,13 @@
 
 <P>Additionally, to build the custom security plugins, the WebLogic <TT>server/lib/weblogic.jar</TT> is presently required at compile time.</P>
 
-<P>Of these, Derby could be omitted if ActiveMQ was configured to not use a database for persistence or to use a separate database for persistence.  The WebLogic JAR is needed only at build time (it&apos;s provided by the server at runtime).  Spring could be omitted if a different strategy was used to start and stop ActiveMQ when the web app was started or stopped (a little custom code could replace this dependency).  The rest are probably unavoidable, unless ActiveMQ changes its dependencies in a future version.</P>
+<P>Of these, Derby could be omitted if ActiveMQ was configured to not use a database for persistence or to use a separate database (e.g. a WebLogic database pool) for persistence.  The WebLogic JAR is needed only at build time (it&apos;s provided by the server at runtime).  Spring could be omitted if a different strategy was used to start and stop ActiveMQ when the web app was started or stopped (a little custom code could replace this dependency).  The rest are probably unavoidable, unless ActiveMQ changes its dependencies in a future version.</P>
 
 <H5><A name="WebLogicIntegration-WebLogicIntegrationCode"></A>WebLogic Integration Code</H5>
 
-<P>There are several custom classes used for this example.  We&apos;ll show in a minute how to configure ActiveMQ to use these.  Note that these are all optional &ndash; if you don&apos;t want to leverage WebLogic&apos;s MBeanServer or security realm, you can skip these.</P>
+<P>There are two custom classes used for this example.  We&apos;ll show in a minute how to configure ActiveMQ to use these.  Note that these are optional &ndash; if you don&apos;t want to leverage WebLogic&apos;s security realm, you can skip these.</P>
 
-<P>The first lets ActiveMQ installed its JMX MBeans into the WebLogic runtime MBeanServer:</P>
-
-<P><B>ActiveMQToWebLogicManagement.java</B></P>
-
-<P>This class overrides the ActiveMQ default MBeanServer lookup behavior (in the ActiveMQ class <TT>ManagementContext</TT> to prefer the WebLogic runtime MBeanServer.</P>
-
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-java">/**
- * Makes ActiveMQ favor the WebLogic runtime MBeanServer
- */
-<SPAN class="code-keyword">public</SPAN> class ActiveMQToWebLogicManagement <SPAN class="code-keyword">extends</SPAN> ManagementContext {
-    <SPAN class="code-keyword">protected</SPAN> <SPAN class="code-keyword">synchronized</SPAN> MBeanServer findMBeanServer() {
-        <SPAN class="code-keyword">try</SPAN> {
-            Context ctx = <SPAN class="code-keyword">new</SPAN> InitialContext();
-            MBeanServer server = (MBeanServer) ctx.lookup(<SPAN class="code-quote">&quot;java:comp/env/jmx/runtime&quot;</SPAN>);
-            <SPAN class="code-keyword">if</SPAN>(server != <SPAN class="code-keyword">null</SPAN>) {
-                <SPAN class="code-object">System</SPAN>.out.println(<SPAN class="code-quote">&quot;ACTIVEMQ Found WebLogic MBeanServer&quot;</SPAN>);
-                <SPAN class="code-keyword">return</SPAN> server;
-            }
-        } <SPAN class="code-keyword">catch</SPAN> (NamingException e) {
-            e.printStackTrace();
-        }
-        <SPAN class="code-object">System</SPAN>.out.println(<SPAN class="code-quote">&quot;ACTIVEMQ Did not find WebLogic MBeanServer&quot;</SPAN>);
-        <SPAN class="code-keyword">return</SPAN> <SPAN class="code-keyword">super</SPAN>.findMBeanServer();
-    }
-}</PRE>
-</DIV></DIV>
-
-<P>The next class makes ActiveMQ use the WebLogic security realm for authentication, and lets you specify a single WebLogic group to use for authorization (only members of that group can access ActiveMQ, though group members have full access to ActiveMQ).</P>
+<P>The first class makes ActiveMQ use the WebLogic security realm for authentication, and lets you specify a single WebLogic group to use for authorization (only members of that group can access ActiveMQ, though group members have full access to ActiveMQ).</P>
 
 <P><B>ActiveMQToWebLogicSecurity.java</B></P>
 
@@ -553,7 +525,7 @@
 }</PRE>
 </DIV></DIV>
 
-<P>Finally, the last class is the authentication filter used by the class above to authenticate all logins against the WebLogic default security realm.</P>
+<P>The second class is the authentication filter used by the class above to authenticate all logins against the WebLogic default security realm.</P>
 
 <P><B>ActiveMQWebLogicAuthenticationFilter.java</B></P>
 
@@ -681,10 +653,32 @@
   <SPAN class="code-tag">&lt;bean class=<SPAN class="code-quote">&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;</SPAN>/&gt;</SPAN>
   
   &lt;broker useJmx=<SPAN class="code-quote">&quot;true&quot;</SPAN> brokerName=<SPAN class="code-quote">&quot;MyBroker&quot;</SPAN> useShutdownHook=<SPAN class="code-quote">&quot;false&quot;</SPAN>
-          managementContext=<SPAN class="code-quote">&quot;#WebLogicManagement&quot;</SPAN> plugins=<SPAN class="code-quote">&quot;#WebLogicSecurity&quot;</SPAN>&gt;
+          plugins=<SPAN class="code-quote">&quot;#WebLogicSecurity&quot;</SPAN>&gt;
+
+    <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- Register all ActiveMQ MBeans with the WebLogic runtime MBeanServer --&gt;</SPAN></SPAN>
+    <SPAN class="code-tag">&lt;managementContext&gt;</SPAN>
+      <SPAN class="code-tag">&lt;managementContext&gt;</SPAN>
+          <SPAN class="code-tag">&lt;MBeanServer&gt;</SPAN>
+             <SPAN class="code-tag">&lt;bean class=<SPAN class="code-quote">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</SPAN> xmlns=&quot;&quot;&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;jndiName&quot;</SPAN> value=<SPAN class="code-quote">&quot;java:comp/env/jmx/runtime&quot;</SPAN> /&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;lookupOnStartup&quot;</SPAN> value=<SPAN class="code-quote">&quot;true&quot;</SPAN> /&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;expectedType&quot;</SPAN> value=<SPAN class="code-quote">&quot;javax.management.MBeanServer&quot;</SPAN> /&gt;</SPAN>
+             <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+          <SPAN class="code-tag">&lt;/MBeanServer&gt;</SPAN>
+      <SPAN class="code-tag">&lt;/managementContext&gt;</SPAN>
+    <SPAN class="code-tag">&lt;/managementContext&gt;</SPAN>
+  
     <SPAN class="code-tag">&lt;persistenceAdapter&gt;</SPAN>
+      <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- By default, use an embedded Derby database --&gt;</SPAN></SPAN>
         &lt;journaledJDBC journalLogFiles=<SPAN class="code-quote">&quot;5&quot;</SPAN>
                        dataDirectory=<SPAN class="code-quote">&quot;/server/bea/weblogic920/domains/jms/activemq-data&quot;</SPAN>/&gt;
+      &lt;!-- Use this with the WebLogicDataSource below to use a WebLogic
+           database connection pool instead of the embedded Derby database
+        &lt;journaledJDBC journalLogFiles=<SPAN class="code-quote">&quot;5&quot;</SPAN>
+                       dataDirectory=<SPAN class="code-quote">&quot;/server/bea/weblogic920/domains/jms/activemq-data&quot;</SPAN>
+                       dataSource=<SPAN class="code-quote">&quot;#WebLogicDataSource&quot;</SPAN> /&gt;
+
+      --&gt;
     <SPAN class="code-tag">&lt;/persistenceAdapter&gt;</SPAN>
   
     <SPAN class="code-tag">&lt;transportConnectors&gt;</SPAN>
@@ -692,13 +686,18 @@
     <SPAN class="code-tag">&lt;/transportConnectors&gt;</SPAN>
   <SPAN class="code-tag">&lt;/broker&gt;</SPAN>
 
-  &lt;bean id=<SPAN class="code-quote">&quot;WebLogicManagement&quot;</SPAN>
-        class=<SPAN class="code-quote">&quot;com.example.activemq.weblogic.ActiveMQToWebLogicManagement&quot;</SPAN> /&gt;
-
   &lt;bean id=<SPAN class="code-quote">&quot;WebLogicSecurity&quot;</SPAN>
         class=<SPAN class="code-quote">&quot;com.example.activemq.weblogic.ActiveMQToWebLogicSecurity&quot;</SPAN>&gt;
       <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;authorizedGroup&quot;</SPAN> value=<SPAN class="code-quote">&quot;ActiveMQUsers&quot;</SPAN> /&gt;</SPAN>
   <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+
+&lt;!-- Uncomment and configure this if you want to use a WebLogic database
+     connection pool for persistent messages
+  &lt;bean id=<SPAN class="code-quote">&quot;WebLogicDataSource&quot;</SPAN>
+        class=<SPAN class="code-quote">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</SPAN>&gt;
+     <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;jndiName&quot;</SPAN> value=<SPAN class="code-quote">&quot;db/pool/jndi/name&quot;</SPAN>/&gt;</SPAN>
+  <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+--&gt;
 <SPAN class="code-tag">&lt;/beans&gt;</SPAN></PRE>
 </DIV></DIV>
 
@@ -710,10 +709,32 @@
   <SPAN class="code-tag">&lt;bean class=<SPAN class="code-quote">&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;</SPAN>/&gt;</SPAN>
   
   &lt;broker useJmx=<SPAN class="code-quote">&quot;true&quot;</SPAN> brokerName=<SPAN class="code-quote">&quot;FirstBroker&quot;</SPAN> useShutdownHook=<SPAN class="code-quote">&quot;false&quot;</SPAN>
-          managementContext=<SPAN class="code-quote">&quot;#WebLogicManagement&quot;</SPAN> plugins=<SPAN class="code-quote">&quot;#WebLogicSecurity&quot;</SPAN>&gt;
+          plugins=<SPAN class="code-quote">&quot;#WebLogicSecurity&quot;</SPAN>&gt;
+
+    <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- Register all ActiveMQ MBeans with the WebLogic runtime MBeanServer --&gt;</SPAN></SPAN>
+    <SPAN class="code-tag">&lt;managementContext&gt;</SPAN>
+      <SPAN class="code-tag">&lt;managementContext&gt;</SPAN>
+          <SPAN class="code-tag">&lt;MBeanServer&gt;</SPAN>
+             <SPAN class="code-tag">&lt;bean class=<SPAN class="code-quote">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</SPAN> xmlns=&quot;&quot;&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;jndiName&quot;</SPAN> value=<SPAN class="code-quote">&quot;java:comp/env/jmx/runtime&quot;</SPAN> /&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;lookupOnStartup&quot;</SPAN> value=<SPAN class="code-quote">&quot;true&quot;</SPAN> /&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;expectedType&quot;</SPAN> value=<SPAN class="code-quote">&quot;javax.management.MBeanServer&quot;</SPAN> /&gt;</SPAN>
+             <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+          <SPAN class="code-tag">&lt;/MBeanServer&gt;</SPAN>
+      <SPAN class="code-tag">&lt;/managementContext&gt;</SPAN>
+    <SPAN class="code-tag">&lt;/managementContext&gt;</SPAN>
+  
     <SPAN class="code-tag">&lt;persistenceAdapter&gt;</SPAN>
+      <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- By default, use an embedded Derby database --&gt;</SPAN></SPAN>
         &lt;journaledJDBC journalLogFiles=<SPAN class="code-quote">&quot;5&quot;</SPAN>
                        dataDirectory=<SPAN class="code-quote">&quot;/server/bea/weblogic920/domains/jms/activemq-b1-data&quot;</SPAN>/&gt;
+      &lt;!-- Use this with the WebLogicDataSource below to use a WebLogic
+           database connection pool instead of the embedded Derby database
+        &lt;journaledJDBC journalLogFiles=<SPAN class="code-quote">&quot;5&quot;</SPAN>
+                       dataDirectory=<SPAN class="code-quote">&quot;/server/bea/weblogic920/domains/jms/activemq-b1-data&quot;</SPAN>
+                       dataSource=<SPAN class="code-quote">&quot;#WebLogicDataSource&quot;</SPAN> /&gt;
+
+      --&gt;
     <SPAN class="code-tag">&lt;/persistenceAdapter&gt;</SPAN>
   
     <SPAN class="code-tag">&lt;transportConnectors&gt;</SPAN>
@@ -727,13 +748,18 @@
     <SPAN class="code-tag">&lt;/networkConnectors&gt;</SPAN>
   <SPAN class="code-tag">&lt;/broker&gt;</SPAN>
 
-  &lt;bean id=<SPAN class="code-quote">&quot;WebLogicManagement&quot;</SPAN>
-        class=<SPAN class="code-quote">&quot;com.example.activemq.weblogic.ActiveMQToWebLogicManagement&quot;</SPAN> /&gt;
-
   &lt;bean id=<SPAN class="code-quote">&quot;WebLogicSecurity&quot;</SPAN>
         class=<SPAN class="code-quote">&quot;com.example.activemq.weblogic.ActiveMQToWebLogicSecurity&quot;</SPAN>&gt;
       <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;authorizedGroup&quot;</SPAN> value=<SPAN class="code-quote">&quot;ActiveMQUsers&quot;</SPAN> /&gt;</SPAN>
   <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+
+&lt;!-- Uncomment and configure this if you want to use a WebLogic database
+     connection pool for persistent messages
+  &lt;bean id=<SPAN class="code-quote">&quot;WebLogicDataSource&quot;</SPAN>
+        class=<SPAN class="code-quote">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</SPAN>&gt;
+     <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;jndiName&quot;</SPAN> value=<SPAN class="code-quote">&quot;db/pool/jndi/name&quot;</SPAN>/&gt;</SPAN>
+  <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+--&gt;
 <SPAN class="code-tag">&lt;/beans&gt;</SPAN></PRE>
 </DIV></DIV>
 
@@ -745,10 +771,32 @@
   <SPAN class="code-tag">&lt;bean class=<SPAN class="code-quote">&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;</SPAN>/&gt;</SPAN>
   
   &lt;broker useJmx=<SPAN class="code-quote">&quot;true&quot;</SPAN> brokerName=<SPAN class="code-quote">&quot;SecondBroker&quot;</SPAN> useShutdownHook=<SPAN class="code-quote">&quot;false&quot;</SPAN>
-          managementContext=<SPAN class="code-quote">&quot;#WebLogicManagement&quot;</SPAN> plugins=<SPAN class="code-quote">&quot;#WebLogicSecurity&quot;</SPAN>&gt;
+          plugins=<SPAN class="code-quote">&quot;#WebLogicSecurity&quot;</SPAN>&gt;
+
+    <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- Register all ActiveMQ MBeans with the WebLogic runtime MBeanServer --&gt;</SPAN></SPAN>
+    <SPAN class="code-tag">&lt;managementContext&gt;</SPAN>
+      <SPAN class="code-tag">&lt;managementContext&gt;</SPAN>
+          <SPAN class="code-tag">&lt;MBeanServer&gt;</SPAN>
+             <SPAN class="code-tag">&lt;bean class=<SPAN class="code-quote">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</SPAN> xmlns=&quot;&quot;&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;jndiName&quot;</SPAN> value=<SPAN class="code-quote">&quot;java:comp/env/jmx/runtime&quot;</SPAN> /&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;lookupOnStartup&quot;</SPAN> value=<SPAN class="code-quote">&quot;true&quot;</SPAN> /&gt;</SPAN>
+                <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;expectedType&quot;</SPAN> value=<SPAN class="code-quote">&quot;javax.management.MBeanServer&quot;</SPAN> /&gt;</SPAN>
+             <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+          <SPAN class="code-tag">&lt;/MBeanServer&gt;</SPAN>
+      <SPAN class="code-tag">&lt;/managementContext&gt;</SPAN>
+    <SPAN class="code-tag">&lt;/managementContext&gt;</SPAN>
+  
     <SPAN class="code-tag">&lt;persistenceAdapter&gt;</SPAN>
+      <SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- By default, use an embedded Derby database --&gt;</SPAN></SPAN>
         &lt;journaledJDBC journalLogFiles=<SPAN class="code-quote">&quot;5&quot;</SPAN>
                        dataDirectory=<SPAN class="code-quote">&quot;/server/bea/weblogic920/domains/jms/activemq-b2-data&quot;</SPAN>/&gt;
+      &lt;!-- Use this with the WebLogicDataSource below to use a WebLogic
+           database connection pool instead of the embedded Derby database
+        &lt;journaledJDBC journalLogFiles=<SPAN class="code-quote">&quot;5&quot;</SPAN>
+                       dataDirectory=<SPAN class="code-quote">&quot;/server/bea/weblogic920/domains/jms/activemq-b2-data&quot;</SPAN>
+                       dataSource=<SPAN class="code-quote">&quot;#WebLogicDataSource&quot;</SPAN> /&gt;
+
+      --&gt;
     <SPAN class="code-tag">&lt;/persistenceAdapter&gt;</SPAN>
   
     <SPAN class="code-tag">&lt;transportConnectors&gt;</SPAN>
@@ -762,13 +810,18 @@
     <SPAN class="code-tag">&lt;/networkConnectors&gt;</SPAN>
   <SPAN class="code-tag">&lt;/broker&gt;</SPAN>
 
-  &lt;bean id=<SPAN class="code-quote">&quot;WebLogicManagement&quot;</SPAN>
-        class=<SPAN class="code-quote">&quot;com.example.activemq.weblogic.ActiveMQToWebLogicManagement&quot;</SPAN> /&gt;
-
   &lt;bean id=<SPAN class="code-quote">&quot;WebLogicSecurity&quot;</SPAN>
         class=<SPAN class="code-quote">&quot;com.example.activemq.weblogic.ActiveMQToWebLogicSecurity&quot;</SPAN>&gt;
       <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;authorizedGroup&quot;</SPAN> value=<SPAN class="code-quote">&quot;activemq&quot;</SPAN> /&gt;</SPAN>
   <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+
+&lt;!-- Uncomment and configure this if you want to use a WebLogic database
+     connection pool for persistent messages
+  &lt;bean id=<SPAN class="code-quote">&quot;WebLogicDataSource&quot;</SPAN>
+        class=<SPAN class="code-quote">&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;</SPAN>&gt;
+     <SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;jndiName&quot;</SPAN> value=<SPAN class="code-quote">&quot;db/pool/jndi/name&quot;</SPAN>/&gt;</SPAN>
+  <SPAN class="code-tag">&lt;/bean&gt;</SPAN>
+--&gt;
 <SPAN class="code-tag">&lt;/beans&gt;</SPAN></PRE>
 </DIV></DIV>
 
@@ -875,7 +928,7 @@
     <DIV id="site-footer">
           Added by     <A href="http://goopen.org/confluence/users/viewuserprofile.action?username=ammulder">Aaron Mulder</A>,
     last edited by     <A href="http://goopen.org/confluence/users/viewuserprofile.action?username=ammulder">Aaron Mulder</A> on Sep 01, 2006
-                  &nbsp;(<A href="http://goopen.org/confluence/pages/diffpages.action?pageId=13349&originalId=13365">view change</A>)
+                  &nbsp;(<A href="http://goopen.org/confluence/pages/diffpages.action?pageId=13349&originalId=13369">view change</A>)
               
       (<A href="http://goopen.org/confluence/pages/editpage.action?pageId=13349">edit page</A>)
     </DIV>