MQDISC - キュー・マネージャーの切断
MQDISC 呼び出しはキュー・マネージャーとアプリケーション・プログラムとの接続を切断します。MQCONN および MQCONNX 呼び出しの逆の操作にあたります。
- IBM® iでは、互換モードで実行しているアプリケーションは、この呼び出しを発行する必要はありません。 詳しくは、 MQCONN-キュー・マネージャーの接続 を参照してください。
重要: まだ互換モードを使用している場合は、アプリケーションを再コンパイルし、代わりに静的バインド呼び出しを使用することを検討してください。 IBM iでの RPG アプリケーションの互換モード を参照してください。構文
MQDISC (HCONN, CMPCOD, REASON)
使用上の注意
- アプリケーションがまだオブジェクトをオープンしているときに MQDISC 呼び出しが発行されると、これらのオブジェクトはキュー・マネージャーによってクローズされます。このときのクローズ・オプションは CONONE です。
- 作業単位内にあるコミットされていない変更内容でアプリケーションが終了する場合、それらの変更内容の後処理は、そのアプリケーションの終了の仕方によって異なります。
- アプリケーションが終了前に MQDISC 呼び出しを発行する場合、
- キュー・マネージャーが調整する作業単位の場合、キュー・マネージャーがアプリケーションの代わりに MQCMIT 呼び出しを出します。 可能であれば作業単位がコミットされ、そうでなければバックアウトされます。
- 外部的に調整された作業単位の場合、作業単位の状態には変更がありません。しかし、キュー・マネージャーは、作業単位コーディネーターに求められると、作業単位がコミットされなければならないことを示します。
- アプリケーションが正常終了しても MQDISC 呼び出しを発行しない場合は、作業単位はバックアウトされます。
- アプリケーションが MQDISC 呼び出しを出さずに異常終了 する場合、作業単位はバックアウトされます。
- アプリケーションが終了前に MQDISC 呼び出しを発行する場合、
- IBM iでは、互換モードで実行しているアプリケーションは、この呼び出しを発行する必要はありません。詳細については、MQCONN 呼び出しを参照してください。
パラメーター
MQDISC 呼び出しには、以下のパラメーターがあります。
- HCONN (10-digit signed integer) - 入出力
接続ハンドル。
このハンドルは、キュー・マネージャーに対する接続を表します。
HCONNの値は、先行の MQCONN または MQCONNX 呼び出しによって戻されたものです。互換モードで実行するアプリケーションの IBM i では、MQCONN 呼び出しを省略できます。また、HCONNには以下の値を指定できます。- HCDEFH
- デフォルトの接続ハンドル。
呼び出しが正常に完了すると、キュー・マネージャーはHCONNを環境の有効なハンドルではない値に設定します。 値は、以下のとおりです。- HCUNUH
- 使用できない接続ハンドル。
- CMPCOD (10 桁の符号付き整数) - 出力
完了コード。
これは、以下のいずれかになります。- CCOK
- 正常終了。
- CCWARN
- 警告 (部分完了)。
- CCFAIL
- 呼び出し失敗。
- REASON (10 桁の符号付き整数) - 出力
CMPCODを限定する理由コード。CMPCODが CCOK の場合- RCNONE
- (0, X'000') レポートする理由コードはありません。
CMPCODが CCFAIL の場合- RC2219
- (2219, X'8AB') 前の呼び出しが完了する前に MQI 呼び出しが再入力されました。
- RC2009
- (2009, X'7D9') キュー・マネージャーとの接続が失われました。
- RC2018
- (2018, X'7E2') 接続ハンドルが無効です。
- RC2058
- (2058, X'80A') キュー・マネージャー名が無効であるか、認識されていません。
- RC2059
- (2059, X'80B') キュー・マネージャーを接続に使用できません。
- RC2162
- (2162, X'872') キュー・マネージャーのシャットダウン中です。
- RC2102
- (2102, X'836') 使用できるシステム・リソースが不足しています。
- RC2071
- (2071, X'817') ストレージが不足しています。
- RC2195
- (2195, X'893') 予期しないエラーが発生しました。
RPG 宣言
C*..1....:....2....:....3....:....4....:....5....:....6....:....7..
C CALLP MQDISC(HCONN : CMPCOD : REASON)
呼び出しのプロトタイプ定義は次のようになります。
D*..1....:....2....:....3....:....4....:....5....:....6....:....7..
DMQDISC PR EXTPROC('MQDISC')
D* Connection handle
D HCONN 10I 0
D* Completion code
D CMPCOD 10I 0
D* Reason code qualifying CMPCOD
D REASON 10I 0