activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "james strachan (JIRA)" <>
Subject [jira] Resolved: (AMQ-497) receive() call should throw exception when transport fails.
Date Sat, 18 Mar 2006 16:10:26 GMT
     [ ]
james strachan resolved AMQ-497:

    Resolution: Fixed

It does appear we're compliant with the JMS specification so am closing this issue.

> receive() call should throw exception when transport fails.
> -----------------------------------------------------------
>          Key: AMQ-497
>          URL:
>      Project: ActiveMQ
>         Type: Bug

>   Components: JMS client
>     Versions: 4.0 M4
>     Reporter: Hiram Chirino
>     Assignee: Rob Davies
>      Fix For: 4.0 RC1

> Reported at:
> * A QueueReceiver, running the synchronous receive() call will block indefinitely 
> If you have a QueueReceiver, and it's blocked on the receive() call, it should produce
an exception when the ActiveMQ server goes down. Otherwise there is no way for that thread
to come back to life. The client does produce an async exception alert... However that is
not sufficient. That handles any of your async consumers. This is a sync consumer, it's blocked
until it returns, or fails. Your async exception routine should wake up all sync consumers
with an exception on their receive() call. The user cannot do this, because even if he could
somehow find which Thread is blocked, interrupting the thread is not guaranteed to work. Most
JMS providers throw an exception. 3.2.1 threw an exception. Perhaps if I wrote an async exception
trigger to close the Sender, it would unblock the other thread.. However the receieve should
really throw an exception. 

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message