デッドロックとトランザクション処理

マルチユーザ環境では、デッドロックがトランザクションエラーの一般的な原因となります。デッドロック状況は、2人のユーザが、相手が所有する(ロックしている)リソースを互いに待つ場合に発生します。

各データベース管理システム(DBMS)によって、デッドロックが発生した際の動作はさまざまです。一部のDBMSでは、デッドロックを検出して警告を発することができます。この場合、Magic uniPaaSはトランザクションをロールバックし、タスク特性の[エラー発生時]特性の設定に従って実行を続けます。

一部のISAMデータベースではデッドロック状況でハングアップすることがあるので、Magic uniPaaSではISAMデータベースとSQLデータベース用にデッドロック防止メカニズムを提供しています。デッドロック防止メカニズムを有効にするには、[動作環境]ダイアログ内で[デッドロック防止]設定を「Yes」に設定します。デッドロック防止メカニズムでは、トランザクションが続く間、定義された順序に従って、書き込みアクセスで開かれた全てのテーブルが排他的にロックされます。一時テーブルはロックされません。