-
Bug
-
Resolution: Done
-
None
-
unspecified
-
None
-
Operating System: All
Platform: All
-
4942
Barrier request send mechanism in OutboundQueueManager is based on time and number of messages written.
If a barrier is scheduled - and there is another barrier written (because of exceeded number of messages written) between the time the first one was scheduled till it is sent - then the scheduled barrier is not sent. This happens due to the condition in scheduled barrier Runnable:
final long now = System.nanoTime();
final long sinceLast = now - lastBarrierNanos;
if (sinceLast >= maxBarrierNanos) {
- the exceeded-number-of-messages barrier resets the lastBarrierNanos time, so the (sinceLast >= maxBarrierNanos) condition is false -> resulting in not sending the barrier