4 Replies Latest reply on Nov 24, 2011 9:10 AM by jdahlbom

    JMS Bridge fails initial connection, but succeeds on retry

    rccampbe

      I'm trying to deploy an ActiveMQ->HornetQ JMS Bridge in JBoss AS6.1. I get a warning+stack trace on startup because the JMS Bridge can't get the local JNDI info. Despite the <depends>JMSServerManager</depends>, the bridge attempts to connect before the local targetTopic is deployed. The connection is established on a retry after 5 seconds. No messages get through but there is already a discussion about that here.

       

      Is there a different bean I can depend on so that the bridge is initialized after the JNDI topics have been deployed?

       

       

      hornetq-jboss-beans.xml:

       

      {code:xml}

      <?xml version="1.0" encoding="UTF-8"?>

       

      <deployment xmlns="urn:jboss:bean-deployer:2.0">

       

         <!-- MBean server -->

         <bean name="MBeanServer" class="javax.management.MBeanServer">

            <constructor factoryClass="org.jboss.mx.util.MBeanServerLocator"

                         factoryMethod="locateJBoss"/>

         </bean>

       

         <!-- The core configuration -->

         <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">

            <property name="configurationUrl">${jboss.server.home.url}/deploy/hornetq/hornetq-configuration.xml</property>

         </bean>

       

         <!-- The security manager -->

         <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">

            <start ignored="true"/>

            <stop ignored="true"/>

            <depends>JBossSecurityJNDIContextEstablishment</depends>

            <property name="allowClientLogin">false</property>

            <property name="authoriseOnClientLogin">false</property>

         </bean>

       

         <!-- The core server -->

         <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">

            <constructor>

               <parameter>

                  <inject bean="Configuration"/>

               </parameter>

               <parameter>

                  <inject bean="MBeanServer"/>

               </parameter>

               <parameter>

                  <inject bean="HornetQSecurityManager"/>

               </parameter>       

            </constructor>

            <start ignored="true"/>

            <stop ignored="true"/>

         </bean>

       

         <!-- The JMS server -->

         <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">

            <constructor>        

               <parameter>

                  <inject bean="HornetQServer"/>

               </parameter>        

            </constructor>

         </bean>

       

         <!-- POJO which ensures HornetQ Resource Adapter is stopped before HornetQServer -->

         <bean name="HornetQRAService" class="org.hornetq.ra.HornetQRAService">

            <constructor>

               <parameter>

                  <inject bean="MBeanServer"/>

               </parameter>

               <parameter>jboss.jca:name='jms-ra.rar',service=RARDeployment</parameter>

            </constructor>

            <depends>HornetQServer</depends>

         </bean>

       

         <!-- The sourceTopic (activemq) to targetTopic (hornetq) Bridge -->

         <bean name="JMSBridge" class="org.hornetq.jms.bridge.impl.JMSBridgeImpl">

             <constructor>

                 <!-- Source ConnectionFactory Factory -->

                 <parameter>

                     <inject bean="SourceCFF"/>

                 </parameter>

                 <!-- Target ConnectionFactory Factory -->

                 <parameter>

                     <inject bean="TargetCFF"/>

                 </parameter>

                 <!-- Source DestinationFactory -->

                 <parameter>

                     <inject bean="SourceDestinationFactory"/>

                 </parameter>

                 <!-- Target DestinationFactory -->

                 <parameter>

                     <inject bean="TargetDestinationFactory"/>

                 </parameter>

                 <!-- Source username (no username here) -->

                 <parameter><null /></parameter>

                 <!-- Source password (no password here)-->

                 <parameter><null /></parameter>

                 <!-- Target username (no username here)-->

                 <parameter><null /></parameter>

                 <!-- Target password (no password here)-->

                 <parameter><null /></parameter>

                 <!-- Selector -->

                 <parameter><null /></parameter>

                 <!-- Interval to retry in case of failure (in ms) -->

                 <parameter>5000</parameter>

                 <!-- Maximum number of retries to connect to the source and target -->

                 <parameter>-1</parameter>

                 <!-- Quality of service -->

                 <parameter>AT_MOST_ONCE</parameter>

                 <!-- Maximum batch size -->

                 <parameter>1</parameter>

                 <!-- Maximum batch time (-1 means infinite) -->

                 <parameter>-1</parameter>

                 <!-- Subscription name (no subscription name here)-->

                 <parameter><null /></parameter>

                 <!-- client ID  (no client ID here)-->

                 <parameter><null /></parameter>

                 <!-- concatenate JMS messageID to the target's message header -->

                 <parameter>true</parameter>

                 <!-- register the JMS Bridge in the JMX MBeanServer -->

                 <parameter>

                     <inject bean="MBeanServer"/>

                 </parameter>

                 <parameter>org.hornetq:service=JMSBridge</parameter>

             </constructor>

             <property name="transactionManager">

                 <inject bean="RealTransactionManager"/>

             </property>

       

             <!-- HornetQ JMS Server must be started before the bridge -->

             <depends>JMSServerManager</depends>

       

         </bean>

       

             <!-- SourceCFF describes the ConnectionFactory used to connect to the source destination -->

             <bean name="SourceCFF" class="org.hornetq.jms.bridge.impl.JNDIConnectionFactoryFactory">

                 <constructor>

                     <parameter>

                         <inject bean="ActiveMQJNDI" />

                     </parameter>

                     <parameter>TopicConnectionFactory</parameter>

                 </constructor> 

             </bean>

       

             <!-- TargetCFF describes the ConnectionFactory used to connect to the target destination -->

             <bean name="TargetCFF" class="org.hornetq.jms.bridge.impl.JNDIConnectionFactoryFactory">

                 <constructor>

                     <parameter>

                         <inject bean="HornetQJNDI" />

                     </parameter>

                     <parameter>/ConnectionFactory</parameter>

                 </constructor> 

             </bean>

       

             <!-- SourceDestinationFactory describes the Destination used as the source -->

             <bean name="SourceDestinationFactory" class="org.hornetq.jms.bridge.impl.JNDIDestinationFactory">

                 <constructor>

                     <parameter>

                         <inject bean="ActiveMQJNDI" />

                     </parameter>

                     <parameter>sourceTopic</parameter>

                 </constructor> 

             </bean>

       

             <!-- TargetDestinationFactory describes the Destination used as the target -->

             <bean name="TargetDestinationFactory" class="org.hornetq.jms.bridge.impl.JNDIDestinationFactory">

                 <constructor>

                     <parameter>

                         <inject bean="HornetQJNDI" />

                     </parameter>

                     <parameter>targetTopic</parameter>

                 </constructor>

             </bean>

       

             <!-- JNDI is a Hashtable containing the JNDI properties required -->

             <!-- to connect to the *source* JMS resources                    -->      

            <bean name="ActiveMQJNDI" class="java.util.Hashtable">

               <constructor class="java.util.Map">

                  <map class="java.util.Hashtable" keyClass="java.lang.String"

                                                   valueClass="java.lang.String">

                     <entry>

                        <key>java.naming.factory.initial</key>

                        <value>org.apache.activemq.jndi.ActiveMQInitialContextFactory</value>

                     </entry>

                     <entry>

                        <key>java.naming.provider.url</key>

                        <!-- **************************************** -->

                        <!-- Replace with the *source* server address -->

                        <!-- **************************************** -->

                        <value>tcp://activemqserver:61616</value>

                     </entry>

                     <entry>

                        <key>java.naming.factory.url.pkgs</key>

                        <value>org.jboss.naming:org.jnp.interfaces</value>

                     </entry>

                     <entry>

                        <key>topic.sourceTopic</key>

                        <value>sourceTopic</value>

                     </entry>

                     <entry>

                        <key>connectionFactoryNames</key>

                        <value>TopicConnectionFactory</value>

                     </entry>

                     <entry>

                        <key>jnp.timeout</key>

                        <value>5000</value>

                     </entry>

                     <entry>

                        <key>jnp.sotimeout</key>

                        <value>5000</value>

                     </entry>

                  </map>

               </constructor>

            </bean>

       

            <!-- JNDI is a Hashtable containing the JNDI properties required -->

            <!-- to connect to the *target* JMS resources                    -->      

            <bean name="HornetQJNDI" class="java.util.Hashtable">

               <constructor class="java.util.Map">

                  <map class="java.util.Hashtable" keyClass="java.lang.String"

                                                   valueClass="java.lang.String">

                     <entry>

                        <key>java.naming.factory.initial</key>

                        <value>org.jnp.interfaces.NamingContextFactory</value>

                     </entry>

                     <entry>

                        <key>java.naming.provider.url</key>

                        <!-- **************************************** -->

                        <!-- Replace with the *target* server address -->

                        <!-- **************************************** -->

                        <value>jnp://hornetqserver:1099</value>

                     </entry>

                     <entry>

                        <key>java.naming.factory.url.pkgs</key>

                        <value>org.jboss.naming:org.jnp.interfaces</value>

                     </entry>

                     <entry>

                        <key>jnp.timeout</key>

                        <value>5000</value>

                     </entry>

                     <entry>

                        <key>jnp.sotimeout</key>

                        <value>5000</value>

                     </entry>

                  </map>

               </constructor>

            </bean>

       

      </deployment>

      {code}

       

      jboss log:

       

      09:08:21,284 INFO  [AbstractServer] Starting: JBossAS [6.1.0.Final "Neo"]

      09:08:22,706 INFO  [ServerInfo] Java version: 1.6.0_27,Sun Microsystems Inc.

      09:08:22,706 INFO  [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.6.0_27-b07)

      09:08:22,706 INFO  [ServerInfo] Java VM: Java HotSpot(TM) Server VM 20.2-b06,Sun Microsystems Inc.

      09:08:22,706 INFO  [ServerInfo] OS-System: Windows XP 5.1,x86

      09:08:22,706 INFO  [ServerInfo] VM arguments: -Dprogram.name=run.bat -Dlogging.configuration=file:logging.properties -Xms128M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.jboss.resolver.warning=true -Djava.endorsed.dirs=C:\jboss\jboss-6.1.0.Final\lib\endorsed

      09:08:22,737 INFO  [JMXKernel] Legacy JMX core initialized

      09:08:29,706 INFO  [AbstractServerConfig] JBoss Web Services - Stack CXF Server 3.4.1.GA

      09:08:30,159 INFO  [JSFImplManagementDeployer] Initialized 3 JSF configurations: [Mojarra-1.2, MyFaces-2.0, Mojarra-2.0]

      09:08:41,691 WARNING [FileConfigurationParser] AIO wasn't located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal

      09:08:41,832 INFO  [JMXConnector] starting JMXConnector on host 127.0.0.1:1090

      09:08:41,926 INFO  [MailService] Mail Service bound to java:/Mail

      09:08:42,519 INFO  [HornetQServerImpl] live server is starting with configuration HornetQ Configuration (clustered=false,backup=false,sharedStore=true,journalDirectory=C:\jboss\jboss-6.1.0.Final\server\default\data/hornetq/journal,bindingsDirectory=C:\jboss\jboss-6.1.0.Final\server\default\data/hornetq/bindings,largeMessagesDirectory=C:\jboss\jboss-6.1.0.Final\server\default\data/hornetq/largemessages,pagingDirectory=C:\jboss\jboss-6.1.0.Final\server\default\data/hornetq/paging)

      09:08:42,519 INFO  [HornetQServerImpl] Waiting to obtain live lock

      09:08:42,582 INFO  [JournalStorageManager] Using NIO Journal

      09:08:42,598 WARNING [HornetQServerImpl] Security risk! It has been detected that the cluster admin user and password have not been changed from the installation default. Please see the HornetQ user guide, cluster chapter, for instructions on how to do this.

      09:08:42,676 INFO  [FileLockNodeManager] Waiting to obtain live lock

      09:08:42,676 INFO  [FileLockNodeManager] Live Server Obtained live lock

      09:08:43,144 INFO  [NettyAcceptor] Started Netty Acceptor version 3.2.3.Final-r${buildNumber} 127.0.0.1:5455 for CORE protocol

      09:08:43,144 INFO  [NettyAcceptor] Started Netty Acceptor version 3.2.3.Final-r${buildNumber} 127.0.0.1:5445 for CORE protocol

      09:08:43,144 INFO  [HornetQServerImpl] Server is now live

      09:08:43,144 INFO  [HornetQServerImpl] HornetQ Server version 2.2.5.Final (HQ_2_2_5_FINAL_AS7, 121) [7953d143-0ed3-11e1-9a3b-0024d7b11890] started

      09:08:43,191 INFO  [WebService] Using RMI server codebase: http://127.0.0.1:8083/

      09:08:43,348 INFO  [jbossatx] ARJUNA-32010 JBossTS Recovery Service (tag: JBOSSTS_4_14_0_Final) - JBoss Inc.

      09:08:43,348 INFO  [arjuna] ARJUNA-12324 Start RecoveryActivators

      09:08:43,363 INFO  [arjuna] ARJUNA-12296 ExpiredEntryMonitor running at Thu, 17 Nov 2011 09:08:43

      09:08:43,426 INFO  [arjuna] ARJUNA-12310 Recovery manager listening on endpoint 127.0.0.1:4712

      09:08:43,426 INFO  [arjuna] ARJUNA-12344 RecoveryManagerImple is ready on port 4712

      09:08:43,426 INFO  [jbossatx] ARJUNA-32013 Starting transaction recovery manager

      09:08:43,441 INFO  [arjuna] ARJUNA-12163 Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 4713

      09:08:43,441 INFO  [arjuna] ARJUNA-12337 TransactionStatusManagerItem host: 127.0.0.1 port: 4713

      09:08:43,457 INFO  [arjuna] ARJUNA-12170 TransactionStatusManager started on port 4713 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService

      09:08:43,473 INFO  [jbossatx] ARJUNA-32017 JBossTS Transaction Service (JTA version - tag: JBOSSTS_4_14_0_Final) - JBoss Inc.

      09:08:43,504 INFO  [arjuna] ARJUNA-12202 registering bean jboss.jta:type=ObjectStore.

      09:08:43,801 INFO  [ModClusterService] Initializing mod_cluster 1.1.0.Final

      09:08:43,816 INFO  [TomcatDeployment] deploy, ctxPath=/invoker

      09:08:44,098 WARNING [JMSBridgeImpl] Failed to connect bridge: javax.naming.NameNotFoundException: targetTopic not bound

          at org.jnp.server.NamingServer.getBinding(NamingServer.java:771) [:5.0.5.Final]

          at org.jnp.server.NamingServer.getBinding(NamingServer.java:779) [:5.0.5.Final]

          at org.jnp.server.NamingServer.getObject(NamingServer.java:785) [:5.0.5.Final]

          at org.jnp.server.NamingServer.lookup(NamingServer.java:443) [:5.0.5.Final]

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_27]

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_27]

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_27]

          at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_27]

          at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) [:1.6.0_27]

          at sun.rmi.transport.Transport$1.run(Transport.java:159) [:1.6.0_27]

          at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_27]

          at sun.rmi.transport.Transport.serviceCall(Transport.java:155) [:1.6.0_27]

          at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) [:1.6.0_27]

          at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) [:1.6.0_27]

          at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) [:1.6.0_27]

          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_27]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_27]

          at java.lang.Thread.run(Thread.java:662) [:1.6.0_27]

          at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) [:1.6.0_27]

          at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) [:1.6.0_27]

          at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) [:1.6.0_27]

          at org.jnp.server.NamingServer_Stub.lookup(Unknown Source) [:5.0.5.Final]

          at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:728) [:5.0.5.Final]

          at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688) [:5.0.5.Final]

          at javax.naming.InitialContext.lookup(InitialContext.java:392) [:1.6.0_27]

          at org.hornetq.jms.bridge.impl.JNDIFactorySupport.createObject(JNDIFactorySupport.java:58) [:6.1.0.Final]

          at org.hornetq.jms.bridge.impl.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:40) [:6.1.0.Final]

          at org.hornetq.jms.bridge.impl.JMSBridgeImpl.setupJMSObjects(JMSBridgeImpl.java:1082) [:6.1.0.Final]

          at org.hornetq.jms.bridge.impl.JMSBridgeImpl.start(JMSBridgeImpl.java:345) [:6.1.0.Final]

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_27]

          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_27]

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_27]

          at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_27]

          at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60) [jboss-reflect.jar:2.2.1.SP1]

          at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168) [jboss-reflect.jar:2.2.1.SP1]

          at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-reflect.jar:2.2.1.SP1]

          at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:894) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:641) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:182) [:2.2.2.GA]

          at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:58) [:2.2.2.GA]

          at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:63) [:2.2.2.GA]

          at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) [:2.2.2.GA]

          at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.2.GA]

          at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.2.GA]

          at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.2.GA]

          at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1571) [:2.2.2.GA]

          at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.2.GA]

          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.2.GA]

          at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.2.GA]

          at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.2.GA]

          at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.1.0.Final]

          at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2]

          at org.jboss.profileservice.dependency.ProfileDeployAction.deploy(ProfileDeployAction.java:151) [:0.2.2]

          at org.jboss.profileservice.dependency.ProfileDeployAction.installActionInternal(ProfileDeployAction.java:94) [:0.2.2]

          at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.SP2]

          at org.jboss.profileservice.dependency.ProfileActivationWrapper$BasicProfileActivation.start(ProfileActivationWrapper.java:190) [:0.2.2]

          at org.jboss.profileservice.dependency.ProfileActivationWrapper.start(ProfileActivationWrapper.java:87) [:0.2.2]

          at org.jboss.profileservice.dependency.ProfileActivationService.activateProfile(ProfileActivationService.java:215) [:0.2.2]

          at org.jboss.profileservice.dependency.ProfileActivationService.activate(ProfileActivationService.java:159) [:0.2.2]

          at org.jboss.profileservice.bootstrap.AbstractProfileServiceBootstrap.activate(AbstractProfileServiceBootstrap.java:112) [:0.2.2]

          at org.jboss.profileservice.resolver.BasicResolverFactory$ProfileResolverFacade.deploy(BasicResolverFactory.java:87) [:0.2.2]

          at org.jboss.profileservice.bootstrap.AbstractProfileServiceBootstrap.start(AbstractProfileServiceBootstrap.java:91) [:0.2.2]

          at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:132) [:6.1.0.Final]

          at org.jboss.system.server.profileservice.bootstrap.BasicProfileServiceBootstrap.start(BasicProfileServiceBootstrap.java:56) [:6.1.0.Final]

          at org.jboss.bootstrap.impl.base.server.AbstractServer.startBootstraps(AbstractServer.java:827) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-6]

          at org.jboss.bootstrap.impl.base.server.AbstractServer$StartServerTask.run(AbstractServer.java:417) [jboss-bootstrap-impl-base.jar:2.1.0-alpha-6]

          at java.lang.Thread.run(Thread.java:662) [:1.6.0_27]

       

      09:08:44,098 WARNING [JMSBridgeImpl] Failed to start bridge

      09:08:44,098 WARNING [JMSBridgeImpl] Will retry after a pause of 5000 ms

      09:08:44,207 INFO  [RARDeployment] Required license terms exist, view vfs:/C:/jboss/jboss-6.1.0.Final/server/default/deploy/activemq-ra.rar/META-INF/ra.xml

      09:08:44,223 INFO  [RARDeployment] Required license terms exist, view vfs:/C:/jboss/jboss-6.1.0.Final/server/default/deploy/jboss-local-jdbc.rar/META-INF/ra.xml

      09:08:44,223 INFO  [RARDeployment] Required license terms exist, view vfs:/C:/jboss/jboss-6.1.0.Final/server/default/deploy/jboss-xa-jdbc.rar/META-INF/ra.xml

      09:08:44,238 INFO  [RARDeployment] Required license terms exist, view vfs:/C:/jboss/jboss-6.1.0.Final/server/default/deploy/jms-ra.rar/META-INF/ra.xml

      09:08:44,238 INFO  [HornetQResourceAdapter] HornetQ resource adaptor started

      09:08:44,254 INFO  [RARDeployment] Required license terms exist, view vfs:/C:/jboss/jboss-6.1.0.Final/server/default/deploy/mail-ra.rar/META-INF/ra.xml

      09:08:44,269 INFO  [RARDeployment] Required license terms exist, view vfs:/C:/jboss/jboss-6.1.0.Final/server/default/deploy/quartz-ra.rar/META-INF/ra.xml

      09:08:44,348 INFO  [SimpleThreadPool] Job execution threads will use class loader of thread: Thread-2

      09:08:44,379 INFO  [SchedulerSignalerImpl] Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl

      09:08:44,379 INFO  [QuartzScheduler] Quartz Scheduler v.1.8.3 created.

      09:08:44,379 INFO  [RAMJobStore] RAMJobStore initialized.

      09:08:44,379 INFO  [QuartzScheduler] Scheduler meta-data: Quartz Scheduler (v1.8.3) 'JBossQuartzScheduler' with instanceId 'NON_CLUSTERED'

        Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.

        NOT STARTED.

        Currently in standby mode.

        Number of jobs executed: 0

        Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.

        Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.

       

      09:08:44,379 INFO  [StdSchedulerFactory] Quartz scheduler 'JBossQuartzScheduler' initialized from an externally opened InputStream.

      09:08:44,394 INFO  [StdSchedulerFactory] Quartz scheduler version: 1.8.3

      09:08:44,394 INFO  [QuartzScheduler] Scheduler JBossQuartzScheduler_$_NON_CLUSTERED started.

      09:08:44,769 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'

      09:08:44,926 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'

      09:08:45,051 INFO  [xnio] XNIO Version 2.1.0.CR2

      09:08:45,051 INFO  [nio] XNIO NIO Implementation Version 2.1.0.CR2

      09:08:45,207 INFO  [remoting] JBoss Remoting version 3.1.0.Beta2

      09:08:45,269 INFO  [TomcatDeployment] deploy, ctxPath=/

      09:08:45,316 INFO  [HornetQServerImpl] trying to deploy queue jms.topic.targetTopic

      09:08:45,332 INFO  [HornetQServerImpl] trying to deploy queue jms.queue.DLQ

      09:08:45,332 INFO  [HornetQServerImpl] trying to deploy queue jms.queue.ExpiryQueue

      09:08:45,363 INFO  [service] Removing bootstrap log handlers

      09:08:45,410 INFO  [org.apache.coyote.http11.Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080

      09:08:45,410 INFO  [org.apache.coyote.ajp.AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009

      09:08:45,410 INFO  [org.jboss.bootstrap.impl.base.server.AbstractServer] JBossAS [6.1.0.Final "Neo"] Started in 24s:126ms

      09:08:49,535 INFO  [org.hornetq.jms.bridge.impl.JMSBridgeImpl] Succeeded in connecting to servers

        • 1. Re: JMS Bridge fails initial connection, but succeeds on retry
          rccampbe

          I believe this startup issue is triggering a bug, which prevents the bridge from successfully passing messages until it gets re-deployed by an on-the-fly change to a config file (e.g. hornetq-jboss-beans.xml).

          • 2. Re: JMS Bridge fails initial connection, but succeeds on retry
            clebert.suconic

            If the destination doesn't exist yet, it should retry, as it did. Why is this a bug?

            • 3. Re: JMS Bridge fails initial connection, but succeeds on retry
              rccampbe

              It was exposing this bug: https://issues.jboss.org/browse/HORNETQ-496

               

              I've applied the patch from the bug listing and my bridge successfully passes messages after the retry to connect. Normally, I would've ignored the startup warning because the retry succeeded, but I was reporting all anomalies because I thought it might be related. Turns out it was.

               

              So I wouldn't call this a bug, but it's not very comforting having stack traces issued on startup. I was hoping someone could provide a bean reference that the JMS Bridge could depend on so that I have a clean startup. I've tried various references trying to grab the actual topic, but to no avail. Referencing this post I tried things like:

               

              <depends>org.hornetq:module=JMS,type=Topic,name=targetTopic</depends>

              <depends>org.hornetq:module=JMS,type=Topic,name="targetTopic"</depends>

               

              but I never got the right bean reference. Any ideas?

              • 4. Re: JMS Bridge fails initial connection, but succeeds on retry
                jdahlbom

                My configuration was such that I have servers A and B, which both have a bridge pointing to server X.

                Both A & B have a queue/storeAndForward JMS queue.

                 

                Once I made the bridge dependent on the deployment of the "queue/storeAndForward", I got rid of the

                startup errors.

                 

                Sample of my hornet-jboss-beans.xml:

                <!-- HornetQ must be started before the bridge -->

                <depends>HornetQServer</depends>

                <depends>org.hornetq:module=JMS,name="storeAndForward",type=Queue</depends>