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