24.9.5 セキュリティ監査情報用バッファに関するエラーが発生した場合のHiRDBの動作
セキュリティ監査情報用バッファに関するエラーが発生した場合のHiRDBの動作について説明します。
- 〈この項の構成〉
(1) HiRDB開始時
セキュリティ監査情報用バッファはHiRDB開始時に作成されますが,このときエラーが発生することがあります。エラーが発生した場合,セキュリティ監査情報用バッファをシステムが自動計算する場合と,ユーザが指定値を見積もる場合とでHiRDBの動作は変わります。
-
システムが自動計算する場合
メッセージを出力し,セキュリティ監査情報用バッファはサイズ0で開始します(セキュリティ監査情報用バッファを作成しません)。ただし,ディクショナリアクセスエラー(ロールバック要)の場合は次のようになります。
- HiRDB/シングルサーバのとき:
-
ディスク障害などは,サイズ0で開始しても,開始後に監査対象イベントの定義情報が取得できないで続行できなくなる可能性が高いため,メッセージを出力してすぐに異常終了します(ユニットダウンします)。
- HiRDB/パラレルサーバのとき:
-
ディクショナリサーバが開始していない可能性があるため,セキュリティ監査情報用バッファの作成処理を一定回数リトライします。一定回数分リトライしてもエラーが解消されない場合,フロントエンドサーバをSUSPEND状態にします。
-
ユーザが指定値を見積もる場合
メッセージを出力して処理を続行します。ただし,指定したサイズのセキュリティ監査情報用バッファ用共用メモリが確保できない場合,メッセージを出力してすぐに異常終了します(ユニットダウンします)。
HiRDB開始時のエラー要因とHiRDBの処理を次の表に示します。
エラー要因 |
HiRDBの処理 |
||
---|---|---|---|
pd_audit_def_buffer_sizeオペランドを省略 |
pd_audit_def_buffer_sizeオペランドを指定 |
||
領域確保エラー |
バッファ用共用メモリ |
サイズ0で開始 |
開始できません |
ディクショナリ検索用プロセス固有メモリ |
サイズ0で開始 |
共用メモリ確保後,処理を続行 |
|
通信障害 |
サイズ0で開始 |
共用メモリ確保後,処理を続行 |
|
ディクショナリアクセスエラー |
ロールバック不要 |
サイズ0で開始 |
共用メモリ確保後,処理を続行 |
ロールバック要 |
開始できません※ |
共用メモリ確保後,処理を続行 |
- 注※
-
HiRDB/パラレルサーバの場合,一定回数の再開始をしてもエラーが解消されないときは,フロントエンドサーバをSUSPEND状態にします。
HiRDB/シングルサーバの場合はすぐに異常終了します。
(2) HiRDB稼働中
監査対象イベントの定義情報の判定中にエラーが発生した場合は,監査対象イベントの定義に関係なく,該当する監査証跡を出力します。
SQL実行時にエラーが発生した場合も監査証跡を出力しますが,監査証跡出力時の監査対象イベントの定義情報取得時にもエラーが発生することがあります。エラーの組み合わせと,設定されるSQLコード及びロールバック要否を次の表に示します。なお,監査証跡出力時にエラーが発生した場合は,そのエラーを無視して処理を続行します。
監査対象イベントの定義取得前の状態 |
監査対象イベントの定義取得時の状態 |
設定されるSQLコード |
ロールバック要否 |
---|---|---|---|
正常 |
正常 |
0 |
不要 |
ロールバック要エラー |
監査対象イベントの定義取得時のSQLコード |
要 |
|
ロールバック不要エラー |
監査対象イベントの定義取得前のSQLコード |
不要 |
|
ロールバック要エラー |
正常 |
監査対象イベントの定義取得前のSQLコード |
要 |
ロールバック要エラー |
監査対象イベントの定義取得前のSQLコード |
要 |
|
ロールバック不要エラー |
監査対象イベントの定義取得前のSQLコード |
要 |
|
ロールバック不要エラー |
正常 |
監査対象イベントの定義取得前のSQLコード |
不要 |
ロールバック要エラー |
監査対象イベントの定義取得前のSQLコード |
要 |
|
ロールバック不要エラー |
監査対象イベントの定義取得前のSQLコード |
不要 |