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#a6961120
Sent from the ActiveMQ - User mailing list archive at Nabble.com.