8 台のサーバーで構成される分散アプリケーションがあり、すべてが .NET Windows サービスを実行しています。各サービスは、使用可能なワーク パッケージのデータベースをポーリングします。
ポーリング メカニズムは、別の理由からも重要です (現時点ではあまりにも退屈です)。
.NET サービスはすべてデータベースを定期的にポーリングし、負荷がかかっているときはデッドロックが発生しないようにするため、このポーリング メカニズムはキューに実装するのが最適であると考えています。
私は、各 .NET サービスでメッセージを入力キューに入れたいと考えています。データベース サーバーは、入力キューの各メッセージを一度に 1 つずつポップして処理し、応答メッセージを別のキューに書き込みます。
私が抱えている問題は、SQL Server Broker (SSB) のほとんどの例がデータベース サービス間であり、.NET クライアントから開始されていないことです。SQL Server Broker は、この仕事に適したツールではないのではないかと考えています。ブローカーの T-SQL DML は .NET から入手できるようですが、これが機能すると思われる方法は SSB には適合しないようです。
2 つのキュー (インとアウト) と 1 つのアクティベーション ストアド プロシージャを備えた単一の SSB サービスが必要になると思います。
これは SSB の動作とは異なるようです。何か不足していますか?