2012-04-23 16 views
0

私は、2つの異なるインスタンスで動作する多くのSSBを実装しています。これらは、非同期トリガーに基づくデータプッシュパターンです。ブローカサービス送信キュー問題

My SQL Infoは以下のとおりです。Microsoft SQL Server Management Studio 10.50.2500.0 Microsoft Analysis Servicesクライアントツール10.50.2500.0 Microsoftデータアクセスコンポーネント(MDAC)6.1.7601.17514 Microsoft MSXML 3.0 4.0 5.0 6.0 Microsoft Internet Explorer 9.0.8112.16421 Microsoft .NET Frameworkの2.0.50727.5448オペレーティングシステム6.1.7601

私は何かが私のすべての送信キューは、それがキューのパフォーマンスに影響を与えるだろうと私はきた確かにタイプ http://schemas.microsoft.com/SQL/ServiceBroker/EndDialog

からのメッセージで満たされている奇妙なように気づきましたこのメッセージを取り除く

1このメッセージを終了するには、送信キューにリーダーを割り当てる必要がありますか?

2-また、会話を終了している間に受信側で何か問題がありますか?

答えて

3

現在設計中のService Brokerメッセージは常にダイアログです。つまり、会話には常に2人の参加者が存在します。会話の片側が終了すると、END CONVERSATIONが呼び出され、EndDialogメッセージタイプがダイアログ内の他の参加者に送信されます。スペースを取らないようにする以外の理由がある場合は、それらのメッセージを処理する必要があります。これらを処理するために、キューにアクティブ化ストアドプロシージャを作成することができます。そうすれば、それは自動的に起こり、あなたはそれを心配する必要はありません。

+0

送信キューのアクティベーションプロシージャは送信パフォーマンスに影響しませんか? –

+0

最小限のリソース消費(つまり、ディスク、CPU)を除けば、なぜそうなるのかわかりません。私はここで最小限に強調する。あなたがしていることがイニシエータでEND CONVERSATIONを呼び出すのであれば、これは簡単なことです。しかし、それについて私の言葉を取ってはいけません:それを書いて、あなたのためにどのように行くかを見てください。いくつかのヒント:1)一度にアクティブなsprocを1つだけアクティブにする。 2)キューが空(すなわち、複数のメッセージを処理する)になるまで受信を行うようにsprocを書き込む。 –

+0

とエラーメッセージの処理を追加する方が良い –

関連する問題