0

MSMQ をクラスターで実行するように構成しました。クラスターは 2 つの Hyper-V 仮想マシンで構成され、3 番目の仮想マシンで共通の記憶域を使用します (すべての仮想マシンは Windows ドメインを共有し、ネットワークを介して相互に認識します)。フェールオーバー クラスター マネージャー スナップインは、MSMQ サービスが実行中であることを示します。クラスターのメンバーであるマシン上のクラスター化されていない MSMQ サービスは、サービス スナップインで実行されていることが示されています。ここで、リモート コンピューター (3 番目の仮想マシン) からクラスター化された MSMQ サービスとクラスター化されていない MSMQ サービスにメッセージを送信しようとしています。次のキュー名を使用します。

  • FormatName:Direct=OS:{clustered-msmq-netbios-name}\private$\{queueName}
  • FormatName:Direct=TCP:{clustered-msmq-ip-address}\private$\{queueName}
  • FormatName:Direct=TCP:{non-clustered-msmq-ip-address}\private$\{queueName}

クラスタ化されていない msmq の IP アドレスが指定されている場合、メッセージはクラスタ化されていない msmq インスタンスに配信されます。しかし、クラスター化された msmq インスタンスにアクセスしようとすると、送信されたメッセージが発信メッセージ キューに残り、「接続を待機しています」(Winsock ソケットの接続に失敗しました) と表示されます。また、クラスター化された msmq インスタンスのキューは空です。

クラスター化された msmq サービスに telnet で接続しようとしました。接続には、クラスター化された msmq の IP アドレスとポート 1801 を指定しました。「ポート 1801 でホストへの接続を開けませんでした: 接続に失敗しました」と表示されます。

何か案が?

追加情報。両方のクラスタ サーバーがオンラインのときに [メッセージ キューの管理] メニュー項目をクリックすると、スナップインのツリーにメッセージ キュー項目がありません。1 台のサーバー (2 台目) を一時停止すると、ツリーにメッセージ キューの項目が表示されます。ツリーにメッセージ キュー アイテムがあると、メッセージの処理が開始されます (送信サーバーの送信メッセージ キューからメッセージが消えるのが見えますが、受信サーバーには表示されません)。

4

1 に答える 1

0

クラスター化されたメッセージ キューイングは、現在ロールの所有者であるそのクラスター ノードからのみ管理できるようです。現在アクティブではないクラスタ ノードには、[メッセージ キューの管理] メニュー項目はありません。

メッセージがクラスター化された msmq インスタンスに配信されないという問題を考慮して、クラスター ノードの 1 つに msmq Windows 機能を再インストールし、msmq クラスター ロールを再作成しました。これらの操作の後、メッセージ配信が機能し始めました。

于 2018-07-02T12:59:57.410 に答える