sysLib.commit() システム関数は、現在のリカバリー作業単位が完了したこと、および新規作業単位が開始されることを EGL に通知します。
このシステム関数は、CICS® SYNCPOINT コマンドを発行します。
プログラムの完了時 (exit program または transfer または show ステートメント) に、暗黙的な sysLib.commit() が実行されます。 プログラムの実行中はいつでも明示的に sysLib.commit() を呼び出すことができます。ベスト・プラクティスは、get forUpdate ステートメント、replace ステートメント、delete ステートメント、または add ステートメントと、作業論理単位の完了時の論理ループがあるプログラム内から sysLib.commit() を呼び出して、プログラムが複数のロックを保持しないようにすることです。
生成された EGL プログラムから CICS 上の VSAM Local Shared Resources (LSR) を使用してデータ・セットにアクセスする場合は、デッドロックが発生しないように注意してください。 LSR を使用していて、ファイルに対して get next ステートメントまたは get previous ステートメントを使用する場合は、作業論理単位の完了時に sysLib.commit() を呼び出してください。これは、リソースの排他使用を必要とする get forUpdate ステートメント、replace ステートメント、delete ステートメント、または add ステートメントを試みる前に行ってください。これにより、get next 位置が解放され、その後でデータ・セットに対して更新できるようになります。
transfer to transaction ステートメントに置き換わるように transfer to program ステートメントを定義している場合は、transfer to program 全体にわたってリカバリー作業単位が保持され、作業単位を終了する場合は sysLib.commit() を呼び出す必要があることに注意してください。