自動的にリトライする

ロックや最大接続数の超過のような一部のエラーの復旧では、エンドユーザによる入力なしに処理が自動的にリトライされます。Magic xpaが自動的にリトライできるのは、次の表に示すエラーのみです。ほとんどのエラーでは、「ユーザがリトライする」で説明するような、ユーザによる介入が必要です。

エラー

動作

テーブルがロックできない

レコードロック

最大接続数に到達

Magic xpaにより、処理コマンドが自動的にリトライされます。物理トランザクションであるか遅延トランザクションであるかに関係なく、トランザクションもデータビューもロールバックされません。カーソルは同じレコードにパークし、タイムアウト値に達するまでロックまたは接続がリトライされます。

重複インデックス

制約違反

トリガ失敗

遅延トランザクションのみ。

Magic xpaにより、フラッシュ段階で物理トランザクション全体が自動的にリトライされます。

テーブルのオープンに失敗

テーブル作成エラー

テーブルの削除に失敗

テーブルのコピーに失敗

トランザクションのコミット失敗

トランザクションのオープン失敗

内部トランザクションエラー

デッドロック

接続に失敗

致命的なエラー

挿入/更新/削除に失敗

SQL 実行エラー

SQL コマンドが正しくない

オープンQueryの式が正しくない

テーブル名が正しくない

テーブルが存在しない

読込専用テーブルは更新不可

レコードが更新されていた

レコードを別ユーザが変更

レコードが失われていた

不適用、設定はできません。

 

注意:

  • 遅延トランザクションモードでは、自動リトライによって、遅延トランザクション中に蓄積されたコマンドについてトランザクションのフラッシュ段階で発生した全てのエラーが参照されます。物理トランザクションは、ロールバックされてから再起動されます。これには、実行済みの全ての処理コマンドも含まれます。

  • 別のユーザによってデータが変更された場合、(データがキャッシュ内に存在する場合)行にパークしている時点では、何も変わりませんが、データの修正を行おうとした時点で、現在の値がディスクから読み込まれ、レコードが更新され、再読込のメッセージが表示されます。
    キャッシュ範囲]特性で「位置とデータ」を指定した場合、Magic xpaは行の実データをキャッシュします。その行を再度読み込んだ場合、キャッシュ内の古い値が読み込まれます。別のタスクによってこのデータが修正されていても、現在のタスクには表示されません。別のタスクによって変更されたレコードを更新しようとした場合、前述のメッセージが表示されます。