Details
-
Bug
-
Resolution: Done
-
Major
-
JBoss A-MQ 6.3
-
None
-
+
-
-
- will try to add a test case when I have time later
Description
When using a prefetch=0 and javax.jms.MessageConsumer#receive(timeout), the user would expect the call to be timeout after the specified period.
Periodically this scenario is not timing out and the receive call does not finish.
Analysis:
With prefetch=0 the client will use send a MessagePull command with the timeout associated. The broker will scheduler a NullMessage to be sent back to the client if no message has been dispatched before the timeout expires. It uses the brokers scheduler. If the scheduler is busy with other tasks (e.g expiry timeouts on queues, topics) these Pull request timeouts can remain in the queue for a significant time waiting to get fired. This can lead to receive(timeout) calls not timing out.