機能説明
当該アプリケーションをメッセージキューから切断します。
記述形式
---------------------------------------------------------------------------------------- CALL "MQDDISCONNECTQ" USING メッセージキューアドレス格納域名, 復帰情報域名, 復帰値格納域名 ----------------------------------------------------------------------------------------
パラメタ
MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。
例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細については、“8.4 復帰情報の説明”を参照してください。
16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 22 (NOCONNECTQUE), 23 (ONTRAN), 24 (NOTEOU), 30 (BACKOUT), 32 (IO), 33 (NOMEMORY), 34 (NODISK), 51 (UNITMSGOVER), 52 (UNITSUMOVER), 66 (NOQUE), 72 (QUEWINHIBIT)
本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。
復帰値
本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。
正常時: 0
異常時: -1
注意事項
MQDBEGINプログラムによって開始したトランザクションの途中でメッセージキューからの切断を行った場合の注意事項を以下に示します。
アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“23”が通知されます。
処理中のトランザクションはシステムから取り消されます。
ユニットの途中(ユニット内の最後のメッセージを送信または受信する前)でメッセージキューからの切断を行った場合の注意事項を以下に示します。
アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“24”が通知されます。
ユニット内のすでに送信済または受信済のメッセージはすべて取り消されます。ただし、グローバルトランザクション処理中の場合を除きます。
グローバルトランザクション処理中の場合には、グローバルトランザクションを終了(ロールバック)させて、ユニット内のすでに送信済または受信済のメッセージを取り消す必要があります。
当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合の注意事項を以下に示します。
本プログラムの前で、トランザクションの終了またはトランザクションの取消しを行ってください。
トランザクションの途中でメッセージキューからの切断を行った場合、アプリケーションはメッセージキューから切断されます。この時、エラー詳細コードには“23”が通知されます。なお、処理中のトランザクションは取り消されないため、“SQL ROLLBACK文”を使用してトランザクションを取り消してください。