実行時の iSeriesC のコミットメント制御

iSeriesC 環境でのプログラム実行時には、コミットメント制御に影響する考慮事項が多数あります。

コミットメント制御サイクルの開始および終了

コミットメント制御を使用するには、コミットメント制御を開始するコミットメント制御開始 (STRCMTCTL) コマンドと、コミットメント制御を終了するコミットメント制御終了 (ENDCMTCTL) コマンドを使用して、コミットメント制御サイクルを明示的に開始および終了する必要があります。IBM® Rational® EGL Server for IBM i は、コミットメント制御サイクルを暗黙的に開始または終了しません。ただし DB2® では、SQL 入出力オプションを使用するプログラムに対してコミットメント制御が自動的 (暗黙的) に開始されます。ジョブのコミットメント制御が開始された後で、ネイティブ・データベース入出力および SQL 入出力の両方で、IBM i が提供する共通コミットメント制御を使用できます。

必要に応じて、テンプレートで SQL プログラムのコミットメント制御を変更できます。CRTSQLCBLI コマンドの COMMIT パラメーターにより、プログラムの SQL ステートメントのコミットメント制御レベルが設定されます。STRCMTCTL コマンドの LCKLVL パラメーターは、SQL 入出力ステートメントのみを使用するプログラムには影響しません。

コミットメント制御サイクルがアクティブではない場合に、コミットメント制御が必要なファイルをプログラムが開こうとすると、そのプログラムはエラー条件で終了します。ジョブ・ログに、エラーの正確な特性を説明するメッセージが記録されます。このような状況ではプログラムが異常終了します。これは、プログラムがファイルに変更を明示的にコミットしようとするが、この操作はアクティブなコミットメント制御サイクルでのみ可能であるためです。

iSeries® コミットメント制御について詳しくは、i5/OS™ インフォメーション・センターを参照してください。


フィードバック