Architecture - Deadlock Detection
FriendlySNMP agent has a built-in deadlock detection mechanism.
All scalars, tables and notifications related to it are
declared in
FRIENDLY-SNMP-MIB .
The agent has a dedicated thread which periodically check JVM for deadlocks.
The default check interval is 1 second.
This value could be modified using MIB browser SET request for a scalar
deadlockCheckInterval .
Setting this value to 0 disables deadlock detection.
The modified value is preserved in the persistency storage and is used
in subsequent agent runs.
See demo application for a deadlock detection example.
Each detected deadlock triggers a notification
appDeadlock .
Deadlock details could be viewed in a MIB browser in table views.
The table
deadlocksListTable
contains a full list of deadlocked threads.
Example of this table for two deadlocks
of 2 and 3 threads was generated in a demo application:
The column BlockedTime is not visible in this image at the right.
The table
deadlockThreadViewTable
contains details for each deadlocked thread.
Example of this table for one of deadlocked thread from the deadlocks
above:
The table contains essential for deadlocks debugging information
including trace stack of the deadlock.
There are two methods next and fixed to navigate through
deadlocked threads. The choice of the navigation method is defined
in the read-write scalar
deadlockThreadViewPolicy .
Method next
Refresh the table to load next thread details.
Method fixed
Specify the index of the thread in the read-write scalar
deadlockThreadViewFixedIndex
and refresh the table to view the specified thread details.
|