MQCONN命令 − キューマネジャへの接続
機能
MQCONN命令で,アプリケーションをキューマネジャへ接続できます。この命令では,キューマネジャのコネクションハンドルが返されます。コネクションハンドルは,以降のそのキューマネジャへの命令で使用します。
形式
引数
● Name(MQCHAR48型) −input
キューマネジャ名です。
アプリケーションが接続するキューマネジャの名前です。名前には,次に示す文字を使用できます。
-
英大文字(A〜Z)
-
英小文字(a〜z)
-
数字(0〜9)
-
ピリオド(.),スラント(/),アンダスコア(_),パーセント(%)
名前の先頭および中間には,空白を使用できません。末尾には空白を使用できます。名前の中で有効なデータの末尾を示すためにヌル文字を使用できます。ヌル文字とそれに続く文字はすべて空白として処理されます。
すべて空白の名前を指定した場合,省略時のキューマネジャ名が使用されます。
指定するキューマネジャ名は接続可能なキューマネジャの名前にする必要があります。
接続できるキューマネジャは,環境に依存します。TP1/Message Queueでは,アプリケーションと同じOpenTP1で動作するキューマネジャにだけ接続できます。
この引数の長さは,MQ_Q_MGR_NAME_LENGTHに定義されています。
● Hconn(MQHCONN型) −output
コネクションハンドルです。
キューマネジャへの接続を示すハンドルです。以降に呼び出すメッセージキューイング機能の命令で指定してください。MQDISC命令を呼び出すと,またはこのハンドルの範囲の処理が終了すると,このハンドルは無効になります。
このハンドルの範囲は,環境のパラレル処理の最小単位に制限されます。MQCONN命令を呼び出したパラレル処理の単位以外では,このハンドルは無効です。TP1/Message Queueでは,パラレル処理の最小単位はプロセスです。
● CompCode(MQLONG型) −output
完了コードです。
次のどれかが返されます。
-
MQCC_OK:成功
-
MQCC_WARNING:警告(一部成功)
-
MQCC_FAILED:失敗
● Reason(MQLONG型) −output
理由コードです。
CompCode引数がMQCC_OKの場合
理由コード |
数値 |
意味 |
---|---|---|
MQRC_NONE |
0 |
理由コードはありません。 |
CompCode引数がMQCC_WARNINGの場合
理由コード |
数値 |
意味 |
---|---|---|
MQRC_ALREADY_CONNECTED |
2002 |
アプリケーションはすでに接続されています。 |
CompCode引数がMQCC_FAILEDの場合
理由コード |
数値 |
意味 |
---|---|---|
MQRC_HCONN_ERROR |
2018 |
コネクションハンドルが不正です。 |
MQRC_Q_MGR_NAME_ERROR |
2058 |
キューマネジャ名が不正です。または,キューマネジャ名を認識できません。 |
MQRC_Q_MGR_NOT_AVAILABLE |
2059 |
キューマネジャが接続できる状態ではありません。 |
MQRC_Q_MGR_STOPPING |
2162 |
キューマネジャが終了処理中です。 |
MQRC_RESOURCE_PROBLEM |
2102 |
システム資源が不足しています。 |
MQRC_STORAGE_NOT_AVAILABLE |
2071 |
記憶容量が不足しています。 |
MQRC_UNEXPECTED_ERROR |
2195 |
予期しないエラーが発生しました。 |
詳細は,「付録B.2 理由コード」を参照してください。
注意事項
-
MQCONN命令で接続したキューマネジャを,ローカルキューマネジャといいます。
-
ローカルキューマネジャに属するキューを,ローカルキューといいます。アプリケーションはローカルキューに対して,メッセージの登録・取り出しができます。
リモートキューマネジャに属するキューを,リモートキューといいます。アプリケーションはリモートキューに対して,メッセージを登録できます。しかし,取り出しはできません。
-
アプリケーションの動作中にキューマネジャに障害が発生する場合,アプリケーションは再度MQCONN命令を発行し,以降のMQ命令で使用するための新しいコネクションハンドルを取得する必要があります。命令が成功するまでアプリケーションは定期的にMQCONN命令を発行できます。
アプリケーションがキューマネジャに接続されているかわからない場合,アプリケーションはMQCONN命令を問題なく発行してコネクションハンドルを取得できます。アプリケーションがすでに接続されているとき,返されるハンドルは以前に発行したMQCONN命令で返されたハンドルと同じです。ただし,完了コードはMQCC_WARNING,理由コードはMQRC_ALREADY_CONNECTEDです。
-
MQ命令を使用する処理の最後には,アプリケーションはMQDISC命令を使用してキューマネジャから切り離す必要があります。