concurrentStoreAndDispatchQueues when cache disabled can lead to skipped
message dispatch, leaving message pending for some time
--------------------------------------------------------------------------------------------------------------------------------
Key: AMQ-3149
URL: https://issues.apache.org/jira/browse/AMQ-3149
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.4.2, 5.4.1, 5.4.0
Reporter: Gary Tully
Assignee: Gary Tully
Fix For: 5.5.0
concurrentStoreAndDispatchQueues is on by default for the kahaDB store. It
allows dispatch to happen concurrently with persistence to disk. It has a
dependency on the cache to do the immediate dispatch. If a destination sees
intermittent traffic, on a message send, there is a dispatch attempt, if the
cache is disabled and the store has not yet seen the message, the dispatch does
nothing. The next dispatch attempt will only occur when there is new message,
an ack is received or when the expiry processing (default 30 seconds) kicks in.
The result is delayed dispatch or unexpected message expiry.
The cache can be disabled on startup if there are pending messages in the store
for the default store based cursor.
Workaround: A simple workaround is to disable concurrentStoreAndDispatchQueues
via config {code}<kahaDB .... concurrentStoreAndDispatchQueues="false" />{code}
Fix: Async storage should be conditional on the cache being enabled.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.