コミット確認出口ルーチン

IMS™ は、トランザクション が MODE=MULT として定義されていると、単独読み取り (GU) メッセージの処理中にコミ ット確認出口ルーチンを呼び出します。

この種のトランザクションは、コミット処理を間にはさまずに複数のメッセージ処理を行 えます。

IMS は、この出口ルーチンを呼び出してから、次のメッセージをキューから出してアプリケーション・プログラムに提示します。この出口ルーチンにより、外部サブシステムは、直前のメッセージのコミットを開始せず に新しいメッセージを正しく処理できるかどうかを決定することができます。 外部サブシステムは、IMS に通常の MODE=MULT (または CMTMODE(MULT)) 処理の続行を要求するかまたはコミット・アクションの開始を要求する戻りコードを設定して、IMS に戻ります。コミット・アクションが要求されると、IMS は、次のメッセージをキューから出す前にコミ ット・アクションを開始し、アプリケーション・プログラムを「QC」状況コードで 終了します。

サブセクション:

ルーチンの活動化

この出口ルーチンは、キー 7 (監視プログラム状態) で活動化されます。 EEVT 接頭部 (EEVTP) は、従属領域環境 (従属領域 TCB) を示しています。

EPL には以下のものが含まれています。

オフセット
(16 進数)

(10 進数) 内容
X'0' 0 パラメーター・カウント・フィールドのアドレス。 カウント・フィールドには値 F'3' が入っています。
X'4' 4 EEVT 接頭部のアドレス。
X'8' 8 8 文字のユーザー ID (左寄せされ、右側はブランクで埋め込まれる) のアドレス。 ユーザー ID は現在処理中のメッセージに付くもので (次のメッセージはまだデキューされていない)、IMS が最後にサインオン出口ルーチンを呼び出した時点で外部サブシステムに提示したものと同じです。
X'C' 12 このトランザクションに関連した 16 バイトのリカバリー・トークンのアドレス。 リカバリー・トークンは、1 つ以上のサブシステムにまたがる作業単位を表します。 このリカバリー・トークンは、IMS が最後にサインオン出口ルーチンを呼び出した時点で外部サブシステムに提示したものと同じです。

戻り時のレジスター 15 の内容

出口ルーチンから受け取る戻りコードの処理
戻りコード 意味
0

コミット確認処理が正常に完了しました。 外部サブシステムは、コミット・アクションを開始せずに MODE=MULT 処理を実行でき ることを示しています。

処置: IMS は通常の MODE=MULT 処理を続行します。コミット・アクションを開始せずに、次のメッセージがデキューされてアプリケーション ・プログラムに提示されます。

4

コミット確認処理が正常に完了しました。 外部サブシステムは、この時点で MODE=MULT 処理を実行できないことを示しています。IMS はコミット・アクションを開始する必要があります。

処置: IMS は「QC」状況によりアプリケーションを終了し 、コミット処理を開始します。 IMS は、コミット・アクションの後で、そのアプリケーション・プログラムをスケジュール変更し、次のメッセージを処理のために提示します。

8

コミット確認処理は正常に完了していません。 外部サブシステムでコミット確認処理が失敗しました。

処置: IMS は異常終了 U3044 によりアプリケーション・プログラムを終了し、すべての更新を廃棄します。

20

起こるはずのないこと。