SYNCPOINT
同期点を確立します。
構文
説明
同期点は、タスクをより小さな作業論理単位 (LUW) に分割します。このタスクは、通常は長期実行タスクです。
各 SYNCPOINT コマンドは、同期点を確立して LUW 完了のマークを付けます。ROLLBACK オプションが指定されていなければ、最後の同期点以降に、リカバリー可能なリソースに対してタスクが実施したすべての変更をコミットします。 フローの中で同期点が作成されるポイントは、Transaction Definitions (TD) の Syncpoint 属性によって決まります。 ROLLBACK を指定した場合は、これらのすべての変更は最後の同期点までバックアウトされます。
オプション
- ROLLBACK
- 最後の同期点以降に、リカバリー可能なリソースに対してタスクが実施したすべての変更をバックアウトすることを指定します。
このオプションは、例えば、HANDLE ABEND ルーチン内をタイディアップする場合や、アプリケーション・プログラムが入力データ内にリカバリー不能エラーを検出した後にデータベースの変更を取り消す場合などに使用できます。
LUW がリモートのリカバリー可能リソースを更新する場合、ROLLBACK オプションはバックエンド・トランザクションに伝搬します。
分散トランザクション処理会話が使用中である場合は、リモート・アプリケーション・プログラムでは、EXEC インターフェース・ブロック (EIB) フィールドである EIBSYNRB、EIBERR、および EIBERRCD が設定されます。会話を続行するには、リモート・アプリケーション・プログラムは SYNCPOINT ROLLBACK コマンドを実行する必要があります。
機能シップのミラー・トランザクションを使用する場合、そのミラー・トランザクションはロールバック要求を受け付けて変更を取り消します。
条件
- INVREQ
- 下記の条件で、SYNCPOINT コマンドに指定されたオプションに応じて発生します。
- SYNCPOINT コマンドが、リモート側のリンク先プログラムから発行され、そのプログラムが LINK SYNCONRETURN を指定していない (LINKを参照)。
ASSIGN CHANNELおよびINQUIRE TASKの STARTCODE の説明を参照してください。
デフォルトのアクション: タスクを異常終了させます。
- SYNCPOINT コマンドが、リモート側のリンク先プログラムから発行され、そのプログラムが LINK SYNCONRETURN を指定していない (LINKを参照)。
ASSIGN CHANNELおよびINQUIRE TASKの STARTCODE の説明を参照してください。
- ROLLEDBACK
- 以下の条件で発生します。
- 同期点をコミットできないリモート・システムによって、SYNCPOINT コマンドがロールバックされる。
- ローカル・システムが同期点をコミットできない。
現行の LUW でリカバリー可能なリソースに対して実施されたすべての変更はバックアウトされます。
デフォルトのアクション: タスクを異常終了させます。
