2012-04-10 14 views
0

MSMQ WCFクライアントとサーバーを使用するときに、メッセージtimeToBeRecievedを設定するにはどうすればよいですか?MSMQ WCF、受信時刻

私は信頼できないターゲットシステムへのメッセージングを管理するためにmsmqサービスを使用しています。メッセージは数日間配信されないままです。

無効なメッセージのほとんどは、サーバーバインディングで以下の設定を使用してポイズンキューに入れられます。

receiveErrorHandling="Move" 

いくつかのメッセージは、ポイズンキューではなくシステムのデッドレターキューで終了しています。上記と同じキューにデッド・レター・メッセージを設定する方法はありますか?キューは、キュー(毒)と呼ばれる実際のメッセージキューのサブキューです。

どのようにして、メッセージが最終的にポイズンキューに入る十分大きな値にtimeToBeReceivedを設定するのですか?メッセージタイプごとに1つの失敗キューが必要ですが、デッドレターも処理する必要はありません。あなたはバインディングに設定ファイルに値を設定することができます

おかげ

+1

は「私も死んだ手紙に対処する必要がありますする必要はありません。」デッドレターのキューには常に対処する必要があります。たとえそれがスレッドを監視していても、それは満たされません。 –

+0

私はメッセージ処理用に1つのキューを必要とせず、エラー処理のためにいくつかのキューを必要とします。私にとってはばかばかしいようです。私はメッセージのための1つのキューと、失敗のための1つのキューを必要とします。多分私はnservicebusを試すべきでしょうか? – Jim

+1

MSMQデッドレターキューは基本パッケージの一部です。 WCFサポートのために導入されたサブキューは、実際には宛先キュー内のメッセージを並べ替えるだけのフィルタです。 –

答えて

1

<bindings> 
    <netMsmqBinding> 
    <binding timeToLive="[define your timespan here]" /> 
    <!-- more configuration --> 
    </netMsmqBinding> 
</bindings> 
... 
+0

これはクライアントまたはサーバーの設定ですか? – Jim

+0

@Jim:これらの場所に**メッセージを送信する**を定義する必要があります。私が知っている限り、これは送信の受信側とは関係ありません。 –

+1

受信側はメッセージを変更するべきではないので、送信アプリケーションで設定する必要があるか、送信側でグローバル設定を行う必要があります。 –

関連する問題