機能説明
当該アプリケーションをメッセージキューから切断します。
記述形式
#include "mqdapi.h" int mqd_disconnectq(MQD_MessageQueue *queue, MQD_Environment *env)
パラメタ
mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。
例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。
MQD_ERR_SYNTAX
MQD_ERR_NOSYSTEM
MQD_ERR_NOCONNECT
MQD_ERR_NOCONNECTQUE
MQD_ERR_ONTRAN
MQD_ERR_NOTEOU
MQD_ERR_BACKOUT
MQD_ERR_IO
MQD_ERR_NOMEMORY
MQD_ERR_NODISK
MQD_ERR_UNITMSGOVER
MQD_ERR_UNITSUMOVER
MQD_ERR_NOQUE
MQD_ERR_QUEWINHIBIT
復帰値
本関数の処理結果が以下の復帰値で通知されます。
正常時:0
異常時: -1
注意事項
mqd_beginによって開始したトランザクションの途中で MQDからの切断を行った場合の注意事項を以下に示します。
アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“MQD_ERR_ONTRAN”が通知されます。
処理中のトランザクションはシステムから取り消されます。
ユニットの途中(ユニット内の最後のメッセージを送信または受信する前)でメッセージキューからの切断を行った場合の注意事項を以下に示します。
アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“MQD_ERR_NOTEOU”が通知されます。
ユニット内のすでに送信済または受信済のメッセージはすべて取り消されます。ただし、グローバルトランザクション処理中の場合を除きます。
グローバルトランザクション処理中の場合には、グローバルトランザクションを終了(ロールバック)させて、ユニット内のすでに送信済または受信済のメッセージを取り消す必要があります。
当該アプリケーションがmqd_connectrdb関数を使用してMQDに接続している場合の注意事項を以下に示します。
本関数の前で、トランザクションの終了またはトランザクションの取消しを行ってください。
トランザクションの途中でメッセージキューからの切断を行った場合、アプリケーションはメッセージキューから切断されます。この時、エラー詳細コードには“MQD_ERR_ONTRAN”が通知されます。なお、処理中のトランザクションは取り消されないため、“SQL ROLLBACK文”を使用してトランザクションを取り消してください。