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