6

私はmqseriesを初めて使用し、IBMWebSphereMQの呪いから始めました。キューマネージャーの例がMQ_APPLEあります。MQ_ORANGEMQ Explorerを使用してローカルキューまたはリモートキューにメッセージを送信することに問題はありませんが、PythonまたはJavaのコードからそのようなメッセージを送信したいと思いました。次のようなコードでPythonpymqiライブラリを試しました。

import pymqi

qmgr = pymqi.QueueManager(None)
qmgr.connect('QM_APPLE')

putq = pymqi.Queue(qmgr, 'Q1')
putq.put('Hello from Python!')

しかし、私はエラーを受け取ります:

Traceback (most recent call last):
    File "mq_put.py", line 4, in <module>
        qmgr.connect('QM_APPLE')
    File "c:\Python26\lib\site-packages\pymqi.py", line 758, in connect
        raise MQMIError(rv[1], rv[2])
pymqi.MQMIError: MQI Error. Comp: 2, Reason 2540: FAILED: MQRC_UNKNOWN_CHANNEL_NAME

ローカルキューQM_APPLEを持つキューマネージャーがあります。Q1

私のコードの何が問題になっていますか?

4

2 に答える 2

3

エラーに基づいて、リモート キュー マネージャーに接続しようとしているように見えますが、ローカル キュー マネージャー バインディング メソッドを使用して接続しています。これは、mqi クライアントが接続するチャネルを認識していないというエラーが表示されているためです。ローカル キュー マネージャーとリモート キュー マネージャーのどちらを使用しているかを明確にしていただけますか? 以下のコードを貼り付けて、チャネルを使用してリモート キュー マネージャーに接続しました。

import pymqi

queue_manager = "QUEUE_MANAGER_NAME"
channel = "SVRCONN.1"
host = "host.domain.com"
port = "1434"
conn_info = "%s(%s)" % (host, port)

qmgr = pymqi.QueueManager(None)
qmgr.connectTCPClient(queue_manager, pymqi.cd(), channel, conn_info)
于 2010-03-29T13:37:26.820 に答える
2

あなたの投稿では、これを Python または Java で実行したいと述べています。Python は私にはどうにもなりませんが、前のレスポンダーはそうしてくれました。とてもクールです。Javaに関しては、正しい方向に向けることができるかもしれません。IBM は Java と JMS の両方をサポートし、それぞれのサンプル プログラムを多数提供しています。デフォルトでは、これらは次の場所にインストールされます。

C:\Program Files\IBM\WebSphere MQ\tools\wmqjava

C:\Program Files\IBM\WebSphere MQ\tools\jms

私自身のサンプル コードもここで提供しています: http://www.ibm.com/developerworks/websphere/techjournal/0610_w​​oolf/0610_w​​oolf.html

IBM による Java および JMS WMQ API の実装に関する資料は、http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaw.doc/uj10120_.htm にあります

Pythonモジュールで見つけたドキュメントは、クライアントまたはサーバーのWMQライブラリにリンクする必要があることを示しているようで、エラーはクライアントバインディングがリンクされていることを示しているようです. その場合は、以前の投稿で指摘したように、接続情報を提供する必要があります。Java および JMS コードはどちらの接続タイプもサポートしているため、リンクを行う必要はありませんが、適切な接続の詳細を指定する必要があります。特に、接続の違いに関する章をお読みください: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaw.doc/ja11010_.htm

-- T.ロブ

于 2010-03-30T21:29:10.163 に答える