現在、tibco EMS サーバーに接続するように WCF サービスをセットアップしているという問題があります。シングル インスタンス モードでサービスを実行している場合 (アプリケーションの実行方法により、これを変更することはできません)、1 つしか処理していない場合でも、常に最初に 2 つのメッセージを確認します。これにより、一部のメッセージがスキップされます。
[ServiceBehavior(
ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.Single,
Namespace = "http://tempuri.org/test")]
public class MyService : IMyService
Tibco EMS WCF コードをステップ実行したところ、基になる TIBCO.EMS.Session クラスの private _deliveredList フィールドに 2 つのメッセージがあることがわかります。メッセージは 1 つしか処理していませんが、どちらも ACK が必要であるとマークされています。キューにあるメッセージの数は問題ではないようです。長さが 1 より大きい場合、常に二重確認応答が行われます。
次の構成でスロットリングを適用しましたが、送信された最初のメッセージの数には影響がないようです。
どんな助けでも大歓迎です。