0

クラスター環境で MSMQ に問題があります。私は次の設定をしています:

Windows フェールオーバーで 2 つのノードをセットアップします。これらを「ノード A」と「ノード B」と呼びます。

次に、MSMQ のクラスター化されたインスタンスをセットアップしました。これを「MSMQ インスタンス」と呼びます。

DTC のクラスター化されたインスタンスもセットアップしました。これを「DTC インスタンス」と呼びましょう。

DTC インスタンス内では、ローカルとクラスター化されたインスタンスの両方からのアクセスを許可しました。基本的に、すべての認証をオフにしてテストしました。

社内アプリケーションのクラスター化されたインスタンスも作成しました。これを「アプリケーション インスタンス」と呼びましょう。この Application インスタンス内に、他のリソースを追加しました。これらは、アプリケーションが使用する他のサービスであり、Net.MSMQ アダプターでもあります。

問題.......

アプリケーション インスタンスをクラスター化すると、常に所有者が使用している反対側のノードに設定されているように見えるため、ノード A でクラスター化されたインスタンスを作成している場合、現在の所有者は常にノード B に設定されます。問題ではありません。

私が抱えている問題は、アプリケーション インスタンスがノード B で実行されている限り、MSMQ が機能しているように見えることです。

送信キューはローカルに作成され、メッセージを受信し、MSMQ クラスターを介して処理されます。

次にノード A にフェールオーバーすると、MSMQ は動作を拒否します。送信キューは作成されないため、メッセージは処理されません。

イベント ビューアに次のエラーが表示されます。

「バージョン チェックは次のエラーで失敗しました: '認識できないエラー -1072824309 (0xc00e000b)'。MSMQ のバージョンを検出できません。キューに入れられたチャネル上のすべての操作が失敗します。MSMQ がインストールされ、使用可能であることを確認してください」

その後、ノード B にフェールオーバーすると、機能します。

アプリケーションは MSMQ インスタンスを使用するようにセットアップされており、すべての権限が適切です。

DTC のクラスター化されたインスタンスが必要ですか、それとも MSMQ インスタンス内のリソースとして構成できますか?

私はこれでレンガの壁にいるので、誰かがこれに光を当てることができますか?

4

1 に答える 1

1

はい、クラスター化された DTC セットアップが必要です。

dependendyクラスタ化された MSMQ インスタンスでは、クラスタ化された DTC を " "として構成する必要があります。MSMQ -> Properties -> Dependencies

これがすべての場合に必須かどうかはわかりませんが、クラスターでは、MSMQ の依存関係として構成されたファイル共有もあります。私の理解では、これにより、MSMQ が必要とする一時ファイルがノードの切り替え後も利用できるようになるはずです。

さらに、クラスター ノードのセットアップに非常に役立つ記事を 2 つ紹介します。構成が正しいことを段階的に確認するのに役立つ場合があります。

于 2013-02-08T12:59:25.343 に答える