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.

Reply via email to