機能説明
トランザクションを終了し、メッセージ処理をメッセージキューに反映します。
記述形式
---------------------------------------------------------------------------------------- CALL "MQDCOMMIT" USING MQDシステム情報アドレス格納域名, 復帰情報域名, 復帰値格納域名 ----------------------------------------------------------------------------------------
パラメタ
MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。
例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細については、“8.4 復帰情報の説明”を参照してください。
16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 24 (NOTEOU), 27 (TRANMIX), 28 (NOBEGIN), 32 (IO), 33 (NOMEMORY), 39 (TRANFILE), 40 (MSGFILE), 74 (PURGEMSG)
16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI), 24 (NOTEOU), 27 (TRANMIX), 28 (NOBEGIN), 32 (IO), 33 (NOMEMORY), 39 (TRANFILE), 40 (MSGFILE), 74 (PURGEMSG)
本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。
復帰値
本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。
正常時: 0
異常時: -1
注意事項
トランザクションを終了するためには、MQDへ接続し、トランザクションを開始しておく必要があります。
MQDCOMMITは、以下の契機で実行すると、エラー詳細コード“24”で復帰します。
接続しているメッセージキューに、ユニット途中までしか処理していないメッセージが存在するとき
グローバルトランザクション処理中にMQDCOMMITを実行すると、エラー詳細コード“27”で復帰します。
MQDCOMMITがエラー詳細コード“27”以外のエラーコードで復帰した場合、処理中のトランザクションはシステムから取り消されます。また、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するためには、MQDSEEKMSGを使用してください。トランザクション内でMQDPEEKMSGEXによる複数メッセージキューからのメッセージ参照を行っている場合には、MQDDISCONNECTQEXを使用して複数メッセージキューから切断を行い、MQDCONNECTQEXを使用して再度複数メッセージキューへ接続を行ってください。
当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。