The RSA Access Manager eserver traditionally used a single threaded queue to hold eserver cache flush events that needed to be sent to the list of aservers. If the eserver is processing a large backlog of aserver cache flush events, and/or the list of aservers is very large, the eserver cache flush queue can back up.
A thread dump may show the QueueDispatcher waiting on I/O
QueueDispatcher" daemon prio=10 tid=0x00002ae60c080c00 nid=0x22d9 in Object.wait() [0x00002ae609d99000..0x00002ae609d99a10]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- locked <0x00002ae5e5547aa8> (a sirrus.util.io.mux.MuxInputStream)
There is only a single thread dispatching the requests to the aserver, so if there are many aservers in the list the queue may back up.
In RSA Access Manager 6.2.2 (SP2) a new nulti threaded eserver cache flush queue called AbstractDelayedQueueDispatcher. This is a multi threaded dispatcher that watches the list of cache flush events and assigns them to the runtimeAPI to be sent to the aservers. The queue uses 5 threads although typically only one or two should be in use at any time.
There is no configuration required. The new threaded eserver cache flush mechanism will increase the ability of the eserver to process cache flush events under heavy load.