4.8 OJが2重に取得されるケース
ERRTRNRによるRPC応答メッセージ送信機能(rpc_reply_errtrnrオペランドの設定値がY)を使用している場合,OJが2重に取得されるケースがあります。
サービストランザクション(MN)で同期点処理に失敗た場合,RPC応答メッセージの送信を抑止し,ERRTRNRを起動します。そのあとコマンドなどによってサービストランザクション(MN)がコミット決着した場合,サービストランザクション(MN)内で抑止したRPC応答メッセージのOJ(次の図の1.)が取得されます。また,ERRTRNRのトランザクション内でのRPC応答メッセージもOJ(次の図の2.)が取得されるため,OJが2重に取得されます。
OJが2重に取得されているかどうかを判断するには,UAP履歴情報編集出力コマンド(eeaphedh)を使用し,OJを編集出力することで確認できます(出力したOJの形式は「24.17 履歴情報レコードのフォーマット」を参照してください)。
出力したOJの「電文+送信タイミング」に「5」が設定されている場合,OJはERRTRNRのトランザクション内で送信したRPC応答メッセージです(上の図の2.)。このOJの「オリジナルの中央処理通番」に,サービストランザクション(MN)の中央処理通番が設定されています。
この中央処理通番が設定されているOJで,かつ,「電文+送信タイミング」に「3」が設定されているOJは,サービストランザクション(MN)内で抑止したRPC応答メッセージであり,実際には送信されていないOJです(上の図の1.)。