4

現在、ポーリング クライアントを使用してメッセージを取得するメッセージ ベースのアーキテクチャを作成しています。明らかな理由から、メッセージがテーブルに挿入されたときにイベントを受け取るために、クライアントを SQL Server 2008 に登録したいと考えています。

私は SQL Server Message Broker、CLR ストアド プロシージャ、および StreamInsight を調査するために Web をぐるぐる回っていますが、探しているものを見つけることができないようです。受け取った。基本的に、ポーリング モデルではなくイベント駆動型です。

これは存在しますか?どこから始めるべきかについてのアイデアはありますか? 例はありますか?

4

1 に答える 1

3

はい、これは存在します。SQL Service Broker を使用して成功しました。あなたがリストした他のオプションに慣れていません。

SSB のセットアップは可動部分や詳細が非常に多いため大変ですが、問題なく動作します。ポーリングを回避するのに役立つ主要な部分は、作成して C# から呼び出すストアド プロシージャです。その短い手順には、キューでメッセージが利用可能になるまで、またはタイムアウトが発生するまで、開いて処理された接続をブロックする RECEIVE WAITFOR ステートメントがあります。C# では、結果を取得するかタイムアウトを取得するかに関係なく、すぐに手順を再度実行して次の項目を待ちます。

SQL に対して開いている接続の数を制限することをお勧めします ... 可能であれば 1 にします。複数の利害関係者がいる場合は、その 1 つの接続を介してすべてのものをプッシュし、他の方法で C# サーバーに配布します。

于 2012-04-27T15:36:27.707 に答える