7.1 ハング・マネージャのアーキテクチャ
ハング・マネージャは、データベース内のDIA0
タスクとして自律的に実行されます。
ハング・マネージャは、次の3つのフェーズで機能します。
-
検出: このフェーズでは、ハング・マネージャによってすべてのノードのデータが収集され、別のセッションで保持されているリソースを待機しているセッションが検出されます。
-
分析: このフェーズでは、ハング・マネージャによって検出フェーズで検出されたセッションが分析され、セッションが可能性のあるハングの一部であるかどうかが判別されます。セッションがハングしている可能性がある場合、ハング・マネージャは特定のしきい値期間の間待機して、セッションがハングしていることを確認します。
-
検証: このフェーズでは、しきい値期間の経過後に、ハング・マネージャによってセッションがハングしていることが検証され、被害者セッションが選択されます。被害者セッションは、ハングの原因となっているセッションです。
被害者セッションが選択された後、ハング・マネージャによって被害者セッションにハングの解決方法が適用されます。セッションのチェーンまたはハングが自動的に解決された場合は、ハング・マネージャによってハングの解決方法は適用されません。ただし、ハングが自動的に解決されない場合、ハング・マネージャでは、被害者セッションを終了してハングを解決します。セッションの終了が失敗した場合は、ハング・マネージャによってセッションのプロセスが終了されます。このプロセス全体は自律型であり、リソースを長期間ブロックせず、パフォーマンスに影響を与えません。
また、ハング・マネージャではOracle Database QoS Managementポリシー、パフォーマンス・クラスおよびパフォーマンス目標の維持に使用するランクが考慮されます。
たとえば、ハングしたセッションのチェーンに高ランクのセッションが含まれている場合、ハング・マネージャによって被害者セッションの終了が迅速に実行されます。被害者セッションの終了によって、高ランクのセッションが長時間待機することが回避され、高ランクのセッションのパフォーマンス目標が維持されます。