activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: Need Help with blocking Producer!
Date Fri, 09 May 2008 21:39:56 GMT
aah, I see, the issue you are running into is a global lock on the session,
only one message can be sent at a time on the same session.
so if you have multiple threads using the same session, it will send the 
requests, one at a time

you are probably sending messages synchronously, as opposed to async, 
which is why you see the blocking threads

Filip

jaya_srini wrote:
> Thanks much for the response Fillip.
>
> Can you explain what the producerFlowControl setting does? And what other
> options if any I can set?
>
> >From activemQ admin page I see that the messages are being consumed at the
> same rate as being produced. I have 4 producers that are also consumers.
> Currently the consumers when they receive the message just log it to a log
> file. 
>
>
> Filip Hanik - Dev Lists wrote:
>   
>> that means youre producing messages faster than they are being consumed.
>>
>> you could setup a policy entry to turn off flow control
>>
>> <policyEntry topic="topicname" producerFlowControl="false" 
>> memoryLimit="10mb"/>
>>
>> <policyEntry queue="queuename" producerFlowControl="false" 
>> memoryLimit="10mb"/>
>>
>> however, if your consumers never catch up, then you need to decide what 
>> you wanna do with your messages, as eventually you will run out of 
>> resources, being it memory or disk space that holds all the messages.
>>
>> the <policyEntry> element has a bunch of sub element that you can setup 
>> to control other needs
>>
>> Filip
>>
>> jaya_srini wrote:
>>     
>>> hi 
>>>
>>> We are using ActiveMQ 5.0 release and observing the following on
>>> production.
>>> After a certain number of messages are sent the Activemq send blocks. The
>>> thread dump produced the following
>>>
>>> daemon prio=6 tid=0x3793f400 nid=0x1f28 waiting for monitor entry
>>> [0x38aff000..0x38affc98]
>>>    java.lang.Thread.State: BLOCKED (on object monitor)
>>> 	at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1587)
>>> 	- waiting to lock <0x07c45ea0> (a java.lang.Object)
>>> 	at
>>> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:226)
>>> 	at
>>> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:268)
>>> 	at
>>> org.apache.activemq.ActiveMQTopicPublisher.publish(ActiveMQTopicPublisher.java:146)
>>>
>>>
>>> The connection URI looks like the following
>>>
>>> failover:(tcp://10.11.12.13:61616?wireFormat.maxInactivityDuration=-1)
>>>
>>> I am not sure if jms.useAsyncSend=true or jms.dispatchAsync=true will
>>> work
>>> with a failover transport.  
>>>
>>> Can someone please help me troubleshoot this? Will increasing the memory
>>> limit on the broker help?
>>>
>>>   
>>>       
>>
>>     
>
>   


Mime
View raw message