デフォルトでは、サーバー障害モニターはタイムアウトプローブを 2 回連続発生しあとに、データベースを再起動します。データベースの負荷が軽い場合、タイムアウトプローブが 2 回連続発生したことは、データベースがハングアップしたことを十分に示すものとなります。ただし、負荷が重い場合、サーバー障害モニタープローブは、データベースが適切に機能しているときでもタイムアウトすることがあります。サーバー障害モニターが不必要にデータベースを再起動させないようにするには、連続タイムアウトプローブの最大数を増やします。
連続タイムアウトプローブの最大数を増やすと、データベースがハングアップしたことを検出する時間が長くなります。
連続タイムアウトプローブの最大許容数を変更するには、許可されている各連続タイムアウトプローブに対して、最初のタイムアウトプローブ以外に、カスタムアクションファイルのエントリを 1 つ作成します。
最初にタイムアウトしたプローブに対しては、エントリを作成する必要はありません。最初にタイムアウトしたプローブに対してサーバー障害モニターが実行するアクションは事前設定されています。
許容されている最後のタイムアウトプローブには、次のようにキーワードを設定したエントリを作成します。
ERROR_TYPE は、TIMEOUT_ERROR に設定します。
ERROR は、許容されている連続タイムアウトプローブの最大数に設定します。
ACTION は、RESTART に設定します。
最初にタイムアウトしたプローブ以外の、残り各連続タイムアウトプローブに対して、エントリを作成し、キーワードを次のように設定します。
ERROR_TYPE は、TIMEOUT_ERROR に設定します。
ERROR は、タイムアウトプローブのシーケンス番号に設定します。たとえば、2 回目の連続タイムアウトプローブに対しては、このキーワードを 2 に設定します。3 回目の連続タイムアウトプローブに対しては、このキーワードを 3 に設定します。
ACTION は、NONE に設定します。
デバッグを容易にするため、タイムアウトプローブのシーケンス番号を示すメッセージを指定します。
次の例は、連続タイムアウトプローブの最大数を 5 に増やすための、カスタムアクションファイルのエントリを示しています。
{ ERROR_TYPE=TIMEOUT; ERROR=2; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #2 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=3; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #3 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=4; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #4 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=5; ACTION=RESTART; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #5 has occurred. Restarting."; }
次の例は、連続タイムアウトプローブの最大数を 5 に増やすための、カスタムアクションファイルのエントリを示しています。これらのエントリは、次の動作を指定しています。
サーバー障害モニターは、2 回目の連続タイムアウトプローブから 4 回目の連続タイムアウトプローブまでを無視します。
5 回目の連続タイムアウトプローブに対しては、サーバー障害モニターが実行するアクションは再起動です。
エントリは、データベースおよびサーバー障害モニター間の接続状態に関わらず、タイムアウトが生じたときに適用されます。
データベースおよびサーバー障害モニター間の接続状態は、タイムアウトが生じたあとも変更されずに維持される必要があります。
2 回目の連続タイムアウトプローブから 4 回目の連続タイムアウトプローブが起きたとき、次の形式のメッセージがリソースのログファイルに出力されます。
Timeout #number has occurred. |
5 回目の連続タイムアウトプローブが発生したとき、次のメッセージがリソースのログファイルに出力されます。
Timeout #5 has occurred. Restarting. |