3

クラスター化された MSMQ があります。これらのメッセージを読み取る WCF サービス アプリ (コンソールでホストされている自己) もあります。

ただし、アプリはキューに配置されたメッセージをまったく読み取っていないように見えますが、クラスター化された環境で同じアプリを実行すると、問題なくキューを読み取ります。

何か案は?

私の考えは:

ClusteredMSMQ (for failover reasons to ensure high availability)
Server 1 -> WCF service app
Server 2 -> WCF service app
Server 3 -> WCF service app

WCF サービス アプリの 3 つのサーバーの理由は、1 つがクラッシュした場合に備えて、もう 1 つが引き続きキュー内のメッセージの読み取りを引き継ぐことができるためです。これはトランザクション MSMQ であり、サービス バインディングはクラスター化された MSMQ を指しており、ExactlyOnce=true が設定されています。また、サービス アプリに更新がある場合は、それを削除して更新を実行する必要があります。その間、他のサービス アプリが引き継ぐことができます。理にかなっていますか?

何が起こっているのか、または私が誤解していることはありますか?

4

1 に答える 1

1

解決策は、DTCもクラスター内のすべてのサーバーで同じ設定で構成されている必要があるということでした。これを適用した後、クラスター化されたアプリ/サービスとしてDTCを作成します。

最後に、アプリケーションはメッセージを読み取ることができました

于 2012-09-26T17:01:46.147 に答える