semog wrote:
I have checked in a fix for the timeout looping issue. I have more
changes coming, but I felt that these changes were important enough to
get checked in as soon as possible. Dealing with error handling code
is difficult. If anyone having this particular problem would care to
get the latest trunk code and test it out, that would be appreciated.
Remember to set the transport.requesttimeout value in your connection URI.
If you find any problems, please attach any comments to [AMQNET-81].
-Jim
I was having the same issue. Based on what I was seeing I tried to setting connection parameters based on this documentation
http://activemq.apache.org/tcp-transport-reference.html it did not work. Following the recommendations here, my problem is solved.
I had updated to HEAD and tried that first before using the transport.requesttimeout parameter. HEAD by itself did not solve the problem. However, I don't know if using transport.requesttimeout solved the problem without the code changes.
What I did find while trying to figure out the problem, is:
- debugging through the NMS code caused the problem to go away.
- it was only reproducible when I ran the produce.Send method.
- not all of the connection parameters are documented, thus making the choice of configuration changes very limited.
To summarize my issue:
- I have a producer that was working fine until the connection was lost
- if the connection was down and I tried to send from the producer the thread that was sending the message would hang - forever.
- the thread that received the connection exception worked fine, but was not my business logic thread
- this seemed very much like a thread deadlock issue. A coworker suggested that it was a socket timeout issue, however I was not able to configure the connection with the documentation I could find
- my issued has been resolved (for now) by using transport.requesttimeout=10000
Michael