ロックや最大接続数の超過のような一部のエラーの復旧では、エンドユーザによる入力なしに処理が自動的にリトライされます。Magic uniPaaSが自動的にリトライできるのは、次の表に示すエラーのみです。ほとんどのエラーでは、「ユーザがリトライする」で説明するような、ユーザによる介入が必要です。
エラー
動作
テーブルロック不可
レコードロック
最大接続数超過
Magic uniPaaSにより、処理コマンドが自動的にリトライされます。物理トランザクションであるか遅延トランザクションであるかに関係なく、トランザクションもデータビューもロールバックされません。カーソルは同じレコードにパークし、タイムアウト値に達するまでロックまたは接続がリトライされます。
重複インデックス
制約違反
トリガ失敗
遅延トランザクションのみ。
Magic uniPaaSにより、フラッシュ段階で物理トランザクション全体が自動的にリトライされます。
テーブルのオープン失敗
テーブル作成エラー
テーブルの削除に失敗
テーブルのコピーに失敗
トランザクションのコミット失敗
トランザクションのオープン失敗
トランザクションの内部エラー
デッドロック
接続に失敗
致命的なエラー
挿入/更新/削除に失敗
SQL 実行エラー
不当なSQL コマンド
不当なオープンQuery式
不当なテーブル名
テーブルが存在しない
読込専用テーブルを更新
レコードが更新されていた
レコードを別ユーザが変更
レコードが失われていた
不適用、設定はできません。
注意:
遅延トランザクションモードでは、自動リトライによって、遅延トランザクション中に蓄積されたコマンドについてトランザクションのフラッシュ段階で発生した全てのエラーが参照されます。物理トランザクションは、ロールバックされてから再起動されます。これには、実行済みの全ての処理コマンドも含まれます。
別のユーザによってデータが変更された場合、(データがキャッシュ内に存在する場合)行にパークしている時点では、何も変わりませんが、データの修正を行おうとした時点で、現在の値がディスクから読み込まれ、レコードが更新され、再読込のメッセージが表示されます。 [キャッシュ範囲]特性で「位置とデータ」を指定した場合、Magic uniPaaSは行の実データをキャッシュします。その行を再度読み込んだ場合、キャッシュ内の古い値が読み込まれます。別のタスクによってこのデータが修正されていても、現在のタスクには表示されません。別のタスクによって変更されたレコードを更新しようとした場合、前述のメッセージが表示されます。