5

JMS トピックにパブリッシュしている TIBCO BusinessWorks プロセスがあります。これを TOPIC.A と呼びましょう。SUBSCRIBE.A という名前でそのトピックにサブスクライブしているプロセスが 1 つあります。

私が抱えている問題は、SUBSCRIBE.A フックのリッスンを開始する最初のサーバーが問題なく動作することです。まったく同じプロセスを実行している他の 3 つのサーバーでは、「WebSphere MQ 呼び出しが compcode '2' ('MQCC_FAILED') reason '2429' ('MQRC_SUBSCRIPTION_IN_USE') で失敗しました」というエラーが表示されます。

これは、エンタープライズ ソフトウェアにとって妥当な動作ではありません。また、WebsphereMQ、JMS、および TIBCO Businessworks はすべて適切にスケーリングできることを知っているので、何かが欠けているに違いありません。各イベントを 1 回だけ処理したいのですが、フェイルオーバーとシェア ボリュームの両方の理由から、単一のボックスではそれができません。

クラスター内の 4 つのサーバーすべてがサブスクリプション SUBSCRIBE.A にサービスを提供できるようにするには、どうすればよいですか?

4

2 に答える 2

4

エンタープライズ ソフトウェアにとって妥当な動作とは思えないことに同意しますが、この制限は JMS 仕様によって課せられています。JMS 1.1 仕様のセクション 6.66.1 には、「特定の永続サブスクリプションの TopicSubscriber を持つことができるのは、一度に 1 つのセッションだけです」と書かれています。

とはいえ、WebSphere MQ には、必要なことを実行できるベンダー固有のオプションが用意されていますCLONESUPP。Connection Factory プロパティを参照してください。CLONESUPPこれは、プロパティページの Infocenter に記載されています。

これは MQ に固有のものですが、管理対象オブジェクトを使用してこれを指定すると、コードでベンダー固有のメソッドを使用する必要がなくなります。

于 2013-09-18T18:54:21.390 に答える