4

複数のインスタンスでMQQueueManagerを使用しようとしています。.netには、MQC.CONNECTION_NAME_PROPERTYで提供されるIBMMQjarがあります。

    ConnectionName = "fred.mq.com(2344),nick.mq.com(3746),tom.mq.com(4288)";
    Hashtable Properties-new Hashtable();
    properties.Add(MQC.CONNECTION_NAME_PROPERTY,ConnectionName);
    MQQueueManager qmgr=new MQQueue Manager("qmgrname",properties);

ソース: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r1/index.jsp?topic =%2Fcom.ibm.mq.doc% 2Fun11010_.htm

ただし、Javaを使用してMQQueueManagerで接続名リストを使用できる同様の機能は提供されていません。

ここで私を助けてくれませんか?7.0.1.6のjarファイルを使用しています

4

2 に答える 2

3

インフォセンターのJava用WebSphereMQクラスでのクライアント・チャネル定義表の使用を参照してください。使用しているバージョンであるとおっしゃっていたので、V7.0 Infocenterにリンクしましたが、それ以降のバージョンでも同じように機能します。

チャネル定義にマルチインスタンスQMgrと対応するマルチインスタンスCONNAME属性が含まれる前は、より一般的に知られているように、クライアントチャネル定義テーブルまたはCCDTがありました。CCDTには、1つ以上のQMgrへの任意の数のチャネルのCLNTCONN定義が含まれています。複数のエントリのQMNameフィールドに同じ値がある場合、それらはグループとして扱われます。(CCDTのQMNameは、実際のQMgr名と一致する必要はありませ。そのため、一意でないQMgr名を使用する必要がありますが、これは適切な方法ではありません。これは、チャネルのグループを識別するためのCCDTへの単なるインデックスです。 )。

CCDTをよりよく理解するには、「WebSphere MQクライアント・アプリケーションをインフォセンターのキュー・マネージャーに接続する」のトピック、特に、チャネルの重み付けとアフィニティーの例クライアント・チャネル定義テーブルの役割、およびMQCONN呼び出しの例をお読みください。(左側の目次からこれらにアクセスします。フレームの右上には、迷子になった場合に目次を表示しているページに移動するボタンがあります。)

CCDTの1つの「落とし穴」は、その中の各チャネル名が一意でなければならないということです。これは、異なるIPアドレスでまったく同じチャネルを検索するマルチインスタンスCONNAMEとは異なります。これは、CCDTファイルがQMgrでMQSCコマンドを使用して維持されるためです。キュー・マネージャーによって管理される名前空間内では、すべてのオブジェクト名が一意である必要があります。QMgrでチャネルを定義する場合、各チャネルには一意の名前を付ける必要があります。CCDTの場合、エントリはCLNTCONNチャネルを使用して定義されます。これらは他のQMgrで定義されたSVRCONNチャネルを指しますが、すべてのCLNTCONNチャネルは同じ名前空間で定義されているため、一意である必要があります。

これをさらに説明するために、PAYROLLと呼ばれるアプリのプロビジョニングを検討してください。QMgr名と組み合わせたアプリ名に基づいてチャネル名を作成できます。これにより、from->to関係を左から右に読み取るチャネルが作成されます。たとえば、3つのQMgrのCCDTを定義するには、次のようにします。

* On any QMgr
DEF CHL(PAYROLL.QMGR1) CHLTYPE(CLNTCONN) QMNAME(PAY) CONNAME("qm1host(1414)")
DEF CHL(PAYROLL.QMGR2) CHLTYPE(CLNTCONN) QMNAME(PAY) CONNAME("qm2host(2414)")
DEF CHL(PAYROLL.QMGR3) CHLTYPE(CLNTCONN) QMNAME(PAY) CONNAME("qm3host(3414)")

*On QMgr1
DEF CHL(PAYROLL.QMGR1) CHLTYPE(SVRCONN) 

*On QMgr2
DEF CHL(PAYROLL.QMGR2) CHLTYPE(SVRCONN) 

*On QMgr3
DEF CHL(PAYROLL.QMGR3) CHLTYPE(SVRCONN) 

次に、アプリはQMgr名をとして指定し*PAY、WMQクライアントコードは3つのエントリから選択します。エントリの重み付けと再試行順序には、追加のパラメータを使用できます。これは、ドキュメントに記載されています。

注:示されている例は、概念を説明する重要な要素にまで簡略化されています。本番実装のSVRCONNエントリには、MCAUSERおよび/またはチャネル出口、場合によってはSSLパラメータ、およびV7.1以降ではいくつかのCHLAUTHルールが含まれます。

于 2012-10-19T20:56:19.797 に答える
0

複数の接続名を指定すると、キュー・マネージャーへの既存の接続が切断されたときに、MQクライアントが同じまたは使用可能なキュー・マネージャーのいずれかに自動的に再接続できるようになります。この機能は、MQ C、.NET、およびJMSクライアントで使用できます。ではご利用いただけませんWebSphere MQ classes for Java

自動クライアント再接続を含む豊富な機能セットを提供するMQJMSクライアントを検討できます。このリンクは、自動クライアント再接続機能をサポートするクライアントの詳細を提供します。でサポートされていない機能を示しているため、リンクを少し更新する必要がありますManaged XMS and managed .NET clients: C#, Visual Basic

于 2012-10-19T16:55:35.647 に答える