as I mentioned, the blocking happens on the mutex for an ActiveMQSession, the only way you can end up blocking two threads there, is if two threads are using the same session,

can you post the complete thread dump?

thanks
Filip

jaya_srini wrote:
So Sorry! :(

I just thought I would explain our scenario in more details.


jaya_srini wrote:
Hello

Apologies for all the questions but I am a newbie to ActiveMQ and I would
really like to better understand how the ActiveMQ broker works and was
wondering if someone can explain how it would work for the scenario below:

I am using single session with 1 producer and 1 consumer (durable Topic
subscrber) for producing and consuming messages i.e the same session
produces and consumes messages. The session/producer/consumer are created
in app startup once and are reused through out.

There is a message listener on the consumer for receiving messages
asynchrounously.
Messages are persistent (written to the database) and we are using the
Publish-Subscribe model.

The client APP (that send and receives the message) and the ActiveMQ
broker are on different machines so I use a TCP transport to establish
connection with a failover protocol so the connection URI looks like below

failover:(tcp://<broker_ip>:61616/)

We are using ActiveMq 5.0.0

Given the above info, what is the number of threads created on the broker
side for sending and dispatching. Will the send and dispatch be
synchronous by default for the above?

If I make the connection URI to be as follows

tcp://<broker_ip>:61616?jms.useAsyncSend=true&jms.dispatchAsync=true

will this cause the send and dispatch to be asynchronous?

We are having some porblem with producer bloacking on
ActiveMQSession.send() with our current set up and I would like to really
understand what's happening to be able to resolve this.

thank you!
jaya



Reply via email to