000029242 - New eserver cache flush queue introduced in 6.2.2

Document created by RSA Customer Support Employee on Jun 14, 2016Last modified by RSA Customer Support Employee on Apr 21, 2017
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000029242
Applies ToRSA Product Set: ClearTrust
RSA Product/Service Type: Access Manager
RSA Version/Condition: 6.2.2
Platform: Windows
Platform (Other): null
O/S Version: 2008 Server R2 x64
Product Name: RSA-0010020
Product Description: Access Manager

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)
                at sirrus.util.io.BlockingByteArrayInputStream.waitForBytes(BlockingByteArrayInputStream.java:196)
                at sirrus.util.io.BlockingByteArrayInputStream.read(BlockingByteArrayInputStream.java:119)
                - locked <0x00002ae5e5547aa8> (a sirrus.util.io.mux.MuxInputStream)


CauseThere 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.