Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 44585 invoked from network); 3 Sep 2010 08:39:12 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 Sep 2010 08:39:12 -0000 Received: (qmail 15066 invoked by uid 500); 3 Sep 2010 08:39:12 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 14918 invoked by uid 500); 3 Sep 2010 08:39:09 -0000 Mailing-List: contact users-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@activemq.apache.org Delivered-To: mailing list users@activemq.apache.org Received: (qmail 14910 invoked by uid 99); 3 Sep 2010 08:39:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Sep 2010 08:39:08 +0000 X-ASF-Spam-Status: No, hits=1.3 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL,URI_HEX X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of gary.tully@gmail.com designates 209.85.216.178 as permitted sender) Received: from [209.85.216.178] (HELO mail-qy0-f178.google.com) (209.85.216.178) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Sep 2010 08:39:04 +0000 Received: by qyk36 with SMTP id 36so2045412qyk.2 for ; Fri, 03 Sep 2010 01:38:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=vv+WFBOzTQ6UfsF7B0F+bJSurdrY8hQH1sdm4nC3A+g=; b=HQ3wKrOZPk69jKcCIRDZ04EA0pebf57NOoiT4fS4/p8M4GSSuRsP7poJyJJUWRs0EU N0FzrTZl9sq/jaHczfBhi+ABvVFdSWE9ksSSF1poXNXCqdaEiWoB29i+1j0xTgseT0/K w/byiPoK/9sRR2p3OR4PzQPMubryr2pSikWYA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=es64O6+sNLoH+4FdgEQK5WO1H4zqcqxL0ALzPqaItWM8Oek/Hy3daaCFko+Ve5Eu35 lU89ST7P90fyOBZu8sOBcgl5WHnUMyb0wBByTMJt3VTi4un6mIkvB2S/ss3qYO2Ol3IB CLeLFpsFo+m85aLgQ4jHBlZiFH+LPfCL6T7ek= MIME-Version: 1.0 Received: by 10.229.237.199 with SMTP id kp7mr410107qcb.8.1283503123066; Fri, 03 Sep 2010 01:38:43 -0700 (PDT) Received: by 10.229.249.134 with HTTP; Fri, 3 Sep 2010 01:38:42 -0700 (PDT) In-Reply-To: <1283501738777-2525279.post@n4.nabble.com> References: <1283501738777-2525279.post@n4.nabble.com> Date: Fri, 3 Sep 2010 09:38:42 +0100 Message-ID: Subject: Re: Want one broker, two turn up From: Gary Tully To: users@activemq.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable see the waitForStart attribute on the vm transport, this can help with ordering issues as the vm: transport will auto created an embedded broker by default. http://activemq.apache.org/the-vm-transport-starts-a-broker-before-my-confi= gured-broker-starts.html On 3 September 2010 09:15, jsvaughan wrote: > > Hi, > > I have two web apps running in Tomcat and I would like both of them to ma= ke > use of a common activemq broker. =A0However I seem to have a problem wher= e two > brokers are started instead. > > In my tomcat context.xml I have a single connection factory and two queue= s > defined: > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0type=3D"org.apache.activemq.ActiveMQConnection= Factory" > description=3D"JMS Connection Factory Home" > =A0 =A0 =A0 =A0 =A0 =A0 =A0factory=3D"org.apache.activemq.jndi.JNDIRefere= nceFactory" > brokerURL=3D"vm:localhost" > =A0 =A0 =A0 =A0 =A0 =A0 =A0brokerName=3D"LocalActiveMQBrokerHome" /> > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0type=3D"org.apache.activemq.command.ActiveMQQu= eue" > factory=3D"org.apache.activemq.jndi.JNDIReferenceFactory" > =A0 =A0 =A0 =A0 =A0 =A0 =A0physicalName=3D"homequeue" /> > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0type=3D"org.apache.activemq.command.ActiveMQQu= eue" > factory=3D"org.apache.activemq.jndi.JNDIReferenceFactory" > =A0 =A0 =A0 =A0 =A0 =A0 =A0physicalName=3D"policyqueue" /> > > In each of my applications I use spring, and have the following in each o= f > the app context files: > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0jndi-name=3D"java:comp/env/jms/connectionFacto= ry" > resource-ref=3D"true" /> > > =A0 =A0 =A0 class=3D"org.apache.activemq.pool.PooledConnectionFactory"> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 /> > =A0 =A0 =A0 > > =A0 =A0 =A0 class=3D"org.apache.camel.component.jms.JmsConfiguration"> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 ref=3D"pooledConnectionFactory" /> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 > > =A0 =A0 =A0 class=3D"org.apache.activemq.camel.component.ActiveMQComponent"> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 > =A0 =A0 =A0 > > As far as I understand it, the ActiveMQComponent bean binds me via the > connection factory to the broker, and whichever app starts up first will > cause the broker to instantiate. > > However when I run the application, I see firstly a broker starting witho= ut > a problem (note that I am also binding to this broker with Camel): > > 17:29:56,413 =A0INFO main org.apache.activemq.broker.BrokerService:744 - > ActiveMQ 5.4.0 JMS Message Broker (localhost) is starting > 17:29:56,414 =A0INFO main org.apache.activemq.broker.BrokerService:746 - = For > help or more information please see: http://activemq.apache.org/ > 17:29:56,607 =A0INFO main > org.apache.activemq.broker.scheduler.SchedulerBroker:60 - Scheduler using > directory: activemq-data\scheduler > 17:29:56,792 =A0INFO main org.apache.activemq.broker.BrokerService:519 - > ActiveMQ JMS Message Broker (localhost, ID:MV5-53743-1283444996462-0:0) > started > 17:29:56,807 =A0INFO main org.apache.activemq.broker.TransportConnector:2= 52 - > Connector vm://localhost Started > 17:29:56,916 =A0INFO main org.apache.camel.impl.DefaultCamelContext:956 - > Route: route1 started and consuming from: Endpoint[direct://HOME] > 17:29:56,916 =A0INFO main org.apache.camel.impl.DefaultCamelContext:956 - > Route: route2 started and consuming from: Endpoint[direct://POLICY] > 17:29:56,917 =A0INFO main org.apache.camel.impl.DefaultCamelContext:956 - > Route: route3 started and consuming from: Endpoint[activemq://homequeue] > > But then subsequently I see (I think I see) a second broker attempting to > start and failing. > > 17:30:08,964 =A0WARN JMX connector > org.apache.activemq.broker.jmx.ManagementContext:110 - Failed to start jm= x > connector: Cannot bind to URL [rmi://localhost:1099/jmxrmi]: > javax.naming.NameAlreadyBoundException: jmxrmi [Root exception is > java.rmi.AlreadyBoundException: jmxrmi] > 17:30:08,976 ERROR main org.apache.activemq.broker.BrokerService:523 - > Failed to start ActiveMQ JMS Message Broker. Reason: > javax.management.InstanceAlreadyExistsException: > org.apache.activemq:BrokerName=3Dlocalhost,Type=3DBroker > javax.management.InstanceAlreadyExistsException: > org.apache.activemq:BrokerName=3Dlocalhost,Type=3DBroker > =A0 =A0 =A0 at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.jav= a:453) > =A0 =A0 =A0 at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(= DefaultMBeanServerInterceptor.java:1484) > =A0 =A0 =A0 at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBea= n(DefaultMBeanServerInterceptor.java:963) > =A0 =A0 =A0 at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(Defa= ultMBeanServerInterceptor.java:917) > =A0 =A0 =A0 at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(Defau= ltMBeanServerInterceptor.java:312) > =A0 =A0 =A0 at > com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:= 482) > =A0 =A0 =A0 at > org.apache.activemq.broker.jmx.ManagementContext.registerMBean(Management= Context.java:307) > =A0 =A0 =A0 at > org.apache.activemq.broker.jmx.AnnotatedMBean.registerMBean(AnnotatedMBea= n.java:54) > =A0 =A0 =A0 at > org.apache.activemq.broker.BrokerService.startManagementContext(BrokerSer= vice.java:2044) > =A0 =A0 =A0 at > org.apache.activemq.broker.BrokerService.start(BrokerService.java:474) > =A0 =A0 =A0 at > org.apache.activemq.transport.vm.VMTransportFactory.doCompositeConnect(VM= TransportFactory.java:123) > =A0 =A0 =A0 at > org.apache.activemq.transport.vm.VMTransportFactory.doConnect(VMTransport= Factory.java:53) > =A0 =A0 =A0 at > org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory= .java:51) > =A0 =A0 =A0 at > org.apache.activemq.transport.TransportFactory.connect(TransportFactory.j= ava:80) > =A0 =A0 =A0 at > org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQCon= nectionFactory.java:243) > =A0 =A0 =A0 at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(Ac= tiveMQConnectionFactory.java:258) > =A0 =A0 =A0 at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(Ac= tiveMQConnectionFactory.java:230) > =A0 =A0 =A0 at > org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQCo= nnectionFactory.java:178) > =A0 =A0 =A0 at > org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledC= onnectionFactory.java:137) > =A0 =A0 =A0 at > org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledC= onnectionFactory.java:121) > =A0 =A0 =A0 at > org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledC= onnectionFactory.java:92) > =A0 =A0 =A0 at > org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.= java:184) > =A0 =A0 =A0 at > org.springframework.jms.listener.AbstractJmsListeningContainer.createShar= edConnection(AbstractJmsListeningContainer.java:404) > =A0 =A0 =A0 at > org.springframework.jms.listener.AbstractJmsListeningContainer.establishS= haredConnection(AbstractJmsListeningContainer.java:372) > =A0 =A0 =A0 at > org.springframework.jms.listener.DefaultMessageListenerContainer.establis= hSharedConnection(DefaultMessageListenerContainer.java:698) > =A0 =A0 =A0 at > org.springframework.jms.listener.AbstractJmsListeningContainer.doStart(Ab= stractJmsListeningContainer.java:279) > =A0 =A0 =A0 at > org.springframework.jms.listener.AbstractJmsListeningContainer.start(Abst= ractJmsListeningContainer.java:264) > =A0 =A0 =A0 at > org.springframework.jms.listener.DefaultMessageListenerContainer.start(De= faultMessageListenerContainer.java:526) > =A0 =A0 =A0 at > org.apache.camel.component.jms.JmsConsumer.startListenerContainer(JmsCons= umer.java:80) > =A0 =A0 =A0 at > org.apache.camel.component.jms.JmsConsumer.doStart(JmsConsumer.java:122) > =A0 =A0 =A0 at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.= java:56) > =A0 =A0 =A0 at > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:53) > =A0 =A0 =A0 at > org.apache.camel.impl.DefaultCamelContext.startServices(DefaultCamelConte= xt.java:1189) > =A0 =A0 =A0 at > org.apache.camel.impl.DefaultCamelContext.doStartRoutes(DefaultCamelConte= xt.java:1357) > =A0 =A0 =A0 at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(Defaul= tCamelContext.java:1261) > =A0 =A0 =A0 at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:= 952) > =A0 =A0 =A0 at > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.= java:203) > =A0 =A0 =A0 at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamel= Context.java:101) > =A0 =A0 =A0 at > org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelC= ontextFactoryBean.java:231) > =A0 =A0 =A0 at > org.springframework.context.event.SimpleApplicationEventMulticaster.multi= castEvent(SimpleApplicationEventMulticaster.java:97) > =A0 =A0 =A0 at > org.springframework.context.support.AbstractApplicationContext.publishEve= nt(AbstractApplicationContext.java:301) > =A0 =A0 =A0 at > org.springframework.context.support.AbstractApplicationContext.finishRefr= esh(AbstractApplicationContext.java:888) > =A0 =A0 =A0 at > org.springframework.context.support.AbstractApplicationContext.refresh(Ab= stractApplicationContext.java:426) > =A0 =A0 =A0 at > org.springframework.web.context.ContextLoader.createWebApplicationContext= (ContextLoader.java:276) > =A0 =A0 =A0 at > org.springframework.web.context.ContextLoader.initWebApplicationContext(C= ontextLoader.java:197) > =A0 =A0 =A0 at > org.springframework.web.context.ContextLoaderListener.contextInitialized(= ContextLoaderListener.java:47) > =A0 =A0 =A0 at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.ja= va:3830) > =A0 =A0 =A0 at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4337) > =A0 =A0 =A0 at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) > =A0 =A0 =A0 at org.apache.catalina.core.StandardHost.start(StandardHost.j= ava:719) > =A0 =A0 =A0 at > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) > =A0 =A0 =A0 at > org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) > =A0 =A0 =A0 at > org.apache.catalina.core.StandardService.start(StandardService.java:516) > =A0 =A0 =A0 at > org.apache.catalina.core.StandardServer.start(StandardServer.java:710) > =A0 =A0 =A0 at org.apache.catalina.startup.Catalina.start(Catalina.java:5= 66) > =A0 =A0 =A0 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method= ) > =A0 =A0 =A0 at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) > =A0 =A0 =A0 at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) > =A0 =A0 =A0 at java.lang.reflect.Method.invoke(Method.java:597) > =A0 =A0 =A0 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java= :288) > =A0 =A0 =A0 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:= 413) > 17:30:08,979 =A0INFO main org.apache.activemq.broker.BrokerService:555 - > ActiveMQ Message Broker (localhost, null) is shutting down > 17:30:08,998 =A0INFO main org.apache.activemq.broker.BrokerService:623 - > ActiveMQ JMS Message Broker (localhost, null) stopped > > So have I misunderstood how ActiveMQ can be used with JNDI? =A0I have jus= t > spotted that I have both the activemq-all jar in my tomcat common dir AND > via maven are putting activemq jars on the classpath as camel dependencie= s - > might that be the problem? =A0Any other thoughts? > > Any help whatsover very gladly received > > Thanks > > Jon > > -- > View this message in context: http://activemq.2283324.n4.nabble.com/Want-= one-broker-two-turn-up-tp2525279p2525279.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > --=20 http://blog.garytully.com Open Source Integration http://fusesource.com