Hi, I have similar deadlock issue on MutexTransport. The transport thread having deadlock with another thread which is doing the Consumer.close()
Any one can give advise to me? thanks On 10/26/06, kristoffer <[EMAIL PROTECTED]> wrote:
Hi, Im speculating here: is it because the persistent flag is set to false why i loose all these messages? What is this flags relation to the durable topic setting in JMS? As i said in the last post, i get this deadlock if i set the persistent flag to true. So how to solve this? I also find it strange that Jencks only uses two threads to process the messages? Another small thing is noticed (not related to this) is that lingo 1.2.1has an annoying printout at org.logicblaze.lingo.util.DefaultTimeoutMap line 128: System.out.println("Evicting inactive request for correlationID: " + entry); regards, -Kristoffer kristoffer wrote: > > Hi, > > Thanks for the reply. I did work when i set this URI on the broker > vm://localhost?marshal=true&broker.useJmx=false&broker.persistent=false&jms.useAsyncSend=true > > There seem to be some relation to the persistent flag=false, because if I > remove it, I see the deadlock again? > > But (with no deadlock), I loose something like 3/5 of messages? And there > seems to be only two(?) active consumer threads for the topic, even though > i have assigned 25 threads to the JCA workmanager: > > <beans> > <bean id="propertyConfigurer" > class=" org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > <property name="location" value="classpath:global.properties"/> > </bean> > > <bean id="consumer" class="org.logicblaze.lingo.jms.JmsServiceExporter "> > <property name="service" ref="consumerImpl" /> > <property name="serviceInterface" > value="se.ericsson.consumer.service.ConsumerService" /> > <property name="connectionFactory" ref="jmsFactory" /> > </bean> > > <bean id="consumerImpl" > class="se.ericsson.consumer.impl.ConsumerServiceImpl" singleton="true" /> > > <bean id="jencks" class="org.jencks.JCAContainer"> > <property name="bootstrapContext"> > <bean class="org.jencks.factory.BootstrapContextFactoryBean"> > <property name="threadPoolSize" value="25" /> > </bean> > </property> > <property name="resourceAdapter"> > <bean id="activeMQResourceAdapter" > class="org.apache.activemq.ra.ActiveMQResourceAdapter"> > <property name="serverUrl" value="${activemq.brokers}" /> > </bean> > </property> > </bean> > > <bean id="inboundMessageA" class="org.jencks.JCAConnector"> > <property name="jcaContainer" ref="jencks" /> > <property name="activationSpec"> > <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> > <property name="destination" value="ericsson.ConsumerTopic" /> > <property name="destinationType" value="javax.jms.Topic" /> > <property name="messageSelector" value="EricssonHeader = > 'bonka'"/> > </bean> > </property> > <property name="ref" value="consumer" /> > </bean> > > <bean id="jmsFactory" > class="org.apache.activemq.ActiveMQConnectionFactory"> > <property name="brokerURL" value="${activemq.brokers}" /> > </bean> > </bean> > > Is there some throttling policy which just drops messages if it is > overheated? (i applied quite some load) > > regards, > -Kristoffer > > > Hiram Chirino wrote: >> >> Please enable async dispatch on your connections.. something like: >> >> vm://localhost?jms.dispatchAsync=true >> >> >> On 10/22/06, kristoffer <[EMAIL PROTECTED]> wrote: >>> >>> >>> Hi, >>> >>> I have got an deadlock situation in MutexTransport. The usecase is that >>> I >>> have a broker, producer and consumer all deployed in separate WARs and >>> the >>> communicate over vm:// transport. I have a servelt which creates the >>> producer which produces two messages to the same topic, but with >>> different >>> message selectors for two consumers. I maybe should mention that i have >>> a >>> lingo, jencks, spring combo setup... >>> >>> Here's the threaddump from the deadlock >>> >>> Found one Java-level deadlock: >>> ============================= >>> "Thread-44": >>> waiting to lock monitor 0x00a6b29c (object 0x234e2f48, a >>> java.lang.Object), >>> which is held by "http-8080-Processor21" >>> "http-8080-Processor21": >>> waiting to lock monitor 0x00a6afbc (object 0x23508c88, a >>> java.lang.Object), >>> which is held by "Thread-44" >>> >>> Java stack information for the threads listed above: >>> =================================================== >>> "Thread-44": >>> at >>> org.apache.activemq.transport.MutexTransport.oneway( MutexTransport.java >>> :45) >>> - waiting to lock <0x234e2f48> (a java.lang.Object) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.oneway( >>> ResponseCorrelator.java:59) >>> at >>> org.apache.activemq.broker.TransportConnection.dispatch( >>> TransportConnection.java:215) >>> at >>> org.apache.activemq.broker.TransportConnection$1.onCommand( >>> TransportConnection.java:63) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.onCommand( >>> ResponseCorrelator.java:92) >>> at >>> org.apache.activemq.transport.TransportFilter.onCommand( >>> TransportFilter.java:67) >>> at >>> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java :77) >>> at >>> org.apache.activemq.transport.MarshallingTransportFilter.oneway( >>> MarshallingTransportFilter.java:37) >>> at >>> org.apache.activemq.transport.MutexTransport.oneway( MutexTransport.java >>> :45) >>> - locked <0x23508c88> (a java.lang.Object) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.asyncRequest( >>> ResponseCorrelator.java:67) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.request( >>> ResponseCorrelator.java:72) >>> at >>> org.apache.activemq.ActiveMQConnection.syncSendPacket( >>> ActiveMQConnection.java:1115) >>> at >>> org.apache.activemq.TransactionContext.commit(TransactionContext.java :260) >>> at >>> org.apache.activemq.ra.LocalAndXATransaction.commit( >>> LocalAndXATransaction.java:57) >>> at >>> org.jencks.LocalTransactionEndpoint.afterDelivery( >>> LocalTransactionEndpoint.java:52) >>> at >>> >>> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery >>> (MessageEndpointProxy.java:130) >>> at >>> org.apache.activemq.ra.MessageEndpointProxy.afterDelivery( >>> MessageEndpointProxy.java:64) >>> at >>> org.apache.activemq.ra.ServerSessionImpl.afterDelivery( >>> ServerSessionImpl.java:214) >>> at org.apache.activemq.ActiveMQSession.run( ActiveMQSession.java >>> :752) >>> at >>> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java :163) >>> - locked <0x237b68b0> (a >>> org.apache.activemq.ra.ServerSessionImpl) >>> at >>> org.apache.geronimo.connector.work.WorkerContext.run( WorkerContext.java >>> :291) >>> at >>> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown >>> Source) >>> at java.lang.Thread.run(Thread.java:595) >>> "http-8080-Processor21": >>> at >>> org.apache.activemq.transport.MutexTransport.oneway( MutexTransport.java >>> :45) >>> - waiting to lock <0x23508c88> (a java.lang.Object) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.oneway( >>> ResponseCorrelator.java:59) >>> at >>> org.apache.activemq.ActiveMQConnection.asyncSendPacket( >>> ActiveMQConnection.java:1095) >>> at >>> org.apache.activemq.ActiveMQSession.<init>(ActiveMQSession.java:228) >>> at >>> org.apache.activemq.ActiveMQConnection.createSession( >>> ActiveMQConnection.java:275) >>> at >>> org.apache.activemq.ra.ServerSessionPoolImpl.createServerSessionImpl( >>> ServerSessionPoolImpl.java:60) >>> at >>> org.apache.activemq.ra.ServerSessionPoolImpl.getServerSession( >>> ServerSessionPoolImpl.java:112) >>> - locked <0x234dc7a0> (a >>> org.apache.activemq.ra.ServerSessionPoolImpl) >>> at >>> org.apache.activemq.ActiveMQConnectionConsumer.dispatch( >>> ActiveMQConnectionConsumer.java:136) >>> at >>> org.apache.activemq.ActiveMQConnection.onCommand( ActiveMQConnection.java >>> :1407) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.onCommand( >>> ResponseCorrelator.java:92) >>> at >>> org.apache.activemq.transport.TransportFilter.onCommand( >>> TransportFilter.java:67) >>> at >>> org.apache.activemq.transport.MarshallingTransportFilter.onCommand( >>> MarshallingTransportFilter.java:42) >>> at >>> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java :77) >>> at >>> org.apache.activemq.transport.MutexTransport.oneway( MutexTransport.java >>> :45) >>> - locked <0x234e2f48> (a java.lang.Object) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.oneway( >>> ResponseCorrelator.java:59) >>> at >>> org.apache.activemq.broker.TransportConnection.dispatch( >>> TransportConnection.java:215) >>> at >>> org.apache.activemq.broker.AbstractConnection.processDispatch( >>> AbstractConnection.java:722) >>> at >>> org.apache.activemq.broker.AbstractConnection.dispatchSync( >>> AbstractConnection.java:699) >>> at >>> org.apache.activemq.broker.region.TopicSubscription.dispatch( >>> TopicSubscription.java:319) >>> at >>> org.apache.activemq.broker.region.TopicSubscription.add( >>> TopicSubscription.java:78) >>> at >>> org.apache.activemq.broker.region.policy.SimpleDispatchPolicy.dispatch ( >>> SimpleDispatchPolicy.java:51) >>> at org.apache.activemq.broker.region.Topic.dispatch(Topic.java >>> :444) >>> at org.apache.activemq.broker.region.Topic.send(Topic.java :255) >>> at >>> org.apache.activemq.broker.region.AbstractRegion.send( AbstractRegion.java >>> :226) >>> at >>> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java :349) >>> at >>> org.apache.activemq.broker.TransactionBroker.send( TransactionBroker.java >>> :193) >>> at >>> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:114) >>> at >>> org.apache.activemq.broker.CompositeDestinationBroker.send( >>> CompositeDestinationBroker.java:98) >>> at >>> org.apache.activemq.broker.MutableBrokerFilter.send( >>> MutableBrokerFilter.java:127) >>> at >>> org.apache.activemq.broker.AbstractConnection.processMessage( >>> AbstractConnection.java:433) >>> at >>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java >>> :591) >>> at >>> org.apache.activemq.broker.AbstractConnection.service( >>> AbstractConnection.java:237) >>> at >>> org.apache.activemq.broker.TransportConnection$1.onCommand( >>> TransportConnection.java:61) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.onCommand( >>> ResponseCorrelator.java:92) >>> at >>> org.apache.activemq.transport.TransportFilter.onCommand( >>> TransportFilter.java:67) >>> at >>> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java :77) >>> at >>> org.apache.activemq.transport.MarshallingTransportFilter.oneway( >>> MarshallingTransportFilter.java:37) >>> at >>> org.apache.activemq.transport.MutexTransport.oneway( MutexTransport.java >>> :45) >>> - locked <0x236fe2d8> (a java.lang.Object) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.asyncRequest( >>> ResponseCorrelator.java:67) >>> at >>> org.apache.activemq.transport.ResponseCorrelator.request( >>> ResponseCorrelator.java:72) >>> at >>> org.apache.activemq.ActiveMQConnection.syncSendPacket( >>> ActiveMQConnection.java:1115) >>> at >>> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1557) >>> at >>> org.apache.activemq.ActiveMQMessageProducer.send( >>> ActiveMQMessageProducer.java:463) >>> at >>> org.logicblaze.lingo.jms.impl.OneWayRequestor.doSend( OneWayRequestor.java >>> :196) >>> at >>> org.logicblaze.lingo.jms.impl.MultiplexingRequestor.doSend( >>> MultiplexingRequestor.java:189) >>> - locked <0x236fe448> (a >>> org.logicblaze.lingo.jms.impl.MultiplexingRequestor) >>> at >>> org.logicblaze.lingo.jms.impl.OneWayRequestor.send( OneWayRequestor.java >>> :101) >>> at >>> org.logicblaze.lingo.jms.impl.OneWayRequestor.send( OneWayRequestor.java >>> :97) >>> at >>> org.logicblaze.lingo.jms.JmsClientInterceptor.invoke( >>> JmsClientInterceptor.java:133) >>> at >>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( >>> ReflectiveMethodInvocation.java:170) >>> at >>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke( >>> JdkDynamicAopProxy.java:176) >>> at $Proxy2.test(Unknown Source) >>> at se.ericsson.producer.LingoServlet.doGet(LingoServlet.java :33) >>> - locked <0x231d9c70> (a >>> se.ericsson.consumer.service.ConsumerServiceFactory) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java :689) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java :802) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( >>> ApplicationFilterChain.java:252) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter( >>> ApplicationFilterChain.java:173) >>> at >>> org.apache.catalina.core.StandardWrapperValve.invoke( >>> StandardWrapperValve.java:213) >>> at >>> org.apache.catalina.core.StandardContextValve.invoke( >>> StandardContextValve.java:178) >>> at >>> org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java >>> :126) >>> at >>> org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java >>> :105) >>> at >>> org.apache.catalina.core.StandardEngineValve.invoke( >>> StandardEngineValve.java:107) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java >>> :148) >>> at >>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :869) >>> at >>> >>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection >>> (Http11BaseProtocol.java:664) >>> at >>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket( >>> PoolTcpEndpoint.java:527) >>> at >>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( >>> LeaderFollowerWorkerThread.java:80) >>> at >>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( >>> ThreadPool.java:684) >>> at java.lang.Thread.run(Thread.java:595) >>> >>> Found 1 deadlock. >>> >>> >>> Is my setup incorrect in some way or is this a real problem that i >>> found? >>> >>> Thanks, >>> -Kristoffer >>> -- >>> View this message in context: >>> http://www.nabble.com/Deadlock-in-MutexTransport-tf2490020.html#a6942040 >>> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >>> >>> >> >> >> -- >> Regards, >> Hiram >> >> Blog: http://hiramchirino.com >> >> > > -- View this message in context: http://www.nabble.com/Deadlock-in-MutexTransport-tf2490020.html#a7010550 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
-- ---- Dennis