6.1 Hang Manager Architecture
Hang Manager autonomously runs as a DIA0
task within the database.
Hang Manager works in the following three phases:
-
Detect: In this phase, Hang Manager collects the data on all the nodes and detects the sessions that are waiting for the resources held by another session.
-
Analyze: In this phase, Hang Manager analyzes the sessions detected in the Detect phase to determine if the sessions are part of a potential delay. If the sessions are suspected as delayed, Hang Manager then waits for a certain threshold time period to ensure that the sessions are delayed.
-
Verify: In this phase, after the threshold time period is up, Hang Manager verifies that the sessions are delayed and selects a session that's causing the delay.
After selecting the session that's causing the delay, Hang Manager applies resolution methods on that session. If the chain of sessions or the delay resolves automatically, then Hang Manager does not apply delay resolution methods. However, if the delay does not resolve by itself, then Hang Manager resolves the delay by terminating the session that's causing the delay. If terminating the session fails, then Hang Manager terminates the process of the session. This entire process is autonomous and does not block resources for a long period and does not affect the performance.
For example, if a high rank session is included in the chain of delayed sessions, then Hang Manager expedites the termination of the session that's causing the delay. Termination of the session that's causing the delay prevents the high rank session from waiting too long and helps to maintain performance objective of the high rank session.
Parent topic: Resolving Database and Database Instance Delays