activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pieter van der Merwe" <pvand...@theenablergroup.com>
Subject RE: Hang on publish of non-persistent message
Date Fri, 06 Oct 2006 06:58:24 GMT
We will have3 a look into this though.

Pieter van der Merwe
Director and Integration Specialist
 
Cell:       +27 (82) 457 4389
Office:    +27 (11) 791 2797
Fax:       +27 (11) 791 2795
Email:     pvanderm@theenablergroup.com
Skype:   pvanderm.theenablergroup.com
MSN:      bierblik@hotmail.com
 
The Enabler Group
Bushill Office Park
Ostrich Road
Gauteng
2154
South Africa
 
A People, Process and Technology Enabler
www.theenablergroup.com
www.topxml.com/biztalkutilities

-----Original Message-----
From: John Heitmann [mailto:jheitmann@gmail.com] 
Sent: 05 October 2006 11:01 PM
To: activemq-users@geronimo.apache.org
Subject: Re: Hang on publish of non-persistent message


On Oct 5, 2006, at 6:40 AM, nbreau wrote:

> I'm not sure if this issue is related.... my issue occurs randomly,  
> within
> the first 50-100 messages that get sent, and it's only a single  
> producer
> that hangs, but over time all my producer threads would become hung.
>
> Is there some kind of timeout i can apply to a publish call ?

Unfortunately the useAsyncSend setting doesn't have the entire  
semantic you might expect. At the lowest level it will still perform  
synchronous network operations in the same thread as your publish.  
This means that if there's a TCP backlog (because of a slow network,  
down network, throttling broker, buggy broker, etc. etc.) then even  
the async send can block.

One thing to check would be to connect to your broker with JMX and  
look at the thread handling the hung connection and see if and where  
it's blocked. If it's blocked on the UsageManager then you need to  
either raise your UsageManager memory limit or turn on the new non- 
blocking UsageManager flag.

If it's not blocked on the UsageManager then you're probably hitting  
an unknown problem. If you could find the blockage and let us know  
where it is that would rock (assuming it's not just a problem on your  
network).

I've got a transport filter I've been meaning to submit that sits in  
front of almost all other transport filters and provides true  
asynchronous sending by adding a tiny client-side queue. This helps  
avoid bugs in transport code, hitches in the network, and hitches in  
the broker that could otherwise lead to publish blocking. I'll get  
that dusted off and published. The downside to it is that it means  
publishes are 100% unthrottled, which can easily lead to dropped  
messages if you publish too fast (it throws and exception so you know  
what's happening at least).

John




Mime
View raw message