Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成リファレンス


MQCONN命令 − キューマネジャへの接続

〈このページの構成〉

機能

MQCONN命令で,アプリケーションをキューマネジャへ接続できます。この命令では,キューマネジャのコネクションハンドルが返されます。コネクションハンドルは,以降のそのキューマネジャへの命令で使用します。

形式

C言語の場合

MQCONN(PMQCHAR Name, PMQHCONN Hconn, PMQLONG CompCode,
       PMQLONG Reason)

COBOL言語の場合

CALL 'MQCONN' USING NAME, HCONN, COMPCODE, REASON.

引数

● 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 理由コード」を参照してください。

注意事項

  1. MQCONN命令で接続したキューマネジャを,ローカルキューマネジャといいます。

  2. ローカルキューマネジャに属するキューを,ローカルキューといいます。アプリケーションはローカルキューに対して,メッセージの登録・取り出しができます。

    リモートキューマネジャに属するキューを,リモートキューといいます。アプリケーションはリモートキューに対して,メッセージを登録できます。しかし,取り出しはできません。

  3. アプリケーションの動作中にキューマネジャに障害が発生する場合,アプリケーションは再度MQCONN命令を発行し,以降のMQ命令で使用するための新しいコネクションハンドルを取得する必要があります。命令が成功するまでアプリケーションは定期的にMQCONN命令を発行できます。

    アプリケーションがキューマネジャに接続されているかわからない場合,アプリケーションはMQCONN命令を問題なく発行してコネクションハンドルを取得できます。アプリケーションがすでに接続されているとき,返されるハンドルは以前に発行したMQCONN命令で返されたハンドルと同じです。ただし,完了コードはMQCC_WARNING,理由コードはMQRC_ALREADY_CONNECTEDです。

  4. MQ命令を使用する処理の最後には,アプリケーションはMQDISC命令を使用してキューマネジャから切り離す必要があります。