0

このトピックについて多くのスレッドが開かれましたが、私の問題に対する答えがないように見えるので、試してみます..

システム:Windows Server 2012 SQL Server 2012 Enterprise エディション

問題 : SQLDependency を使用して、アプリケーションでクエリ通知を使用できるようにしています。これは、独自のサービス、キュー、およびプロシージャを作成することを意味します。

質問 1: ストアド プロシージャを見ると、トップ 0 を受け取っていることがわかります。トップ 0 を行うとはどういう意味ですか?

さて、実際の問題です..時折、エラーログが次のメッセージでいっぱいになります(開くことができないほどです): クエリ通知配信は、ダイアログ 'X' でメッセージを送信できませんでした.... Service Broker: '会話ハンドル X が見つかりません。メッセージは、同じ conversation_handle で表示されるか、最も異なる 3 つのハンドルで表示されます。

sys.conversation_endpoints からその会話をクエリすると、それが表示され、 is_system = 1 (STARTED_OUTBOUND) としてマークされます。

エラー 9245 に関するアラートを追加して、エラーが発生したときにその理由を特定しようとしました。メッセージ「前回の時間間隔中に X クエリ通知エラーが抑制されました」では、X は膨大で 10,000 を超えています。そのような数の通知がないため、この数は再試行に関連していると思います。

最初は、「DialogTimer」メッセージに関連している可能性があると思いました。その特定のメッセージの会話を終了すると、メッセージが停止することに気付いたからですが、最近は機能しませんでした。 .

アプリケーション プールにリサイクルするとすぐに発生しますが、ログには SQLDependency.Stop が呼び出されます。

さらに詳細が必要な場合はお知らせください。あなたの助けに感謝、

4

1 に答える 1

0

トレース フラグ 4133 を有効にするだけでよいようです。次の投稿をご覧ください。

https://dba.stackexchange.com/questions/33750/error-9245-severity-16-state-1-during-the-last-time-interval-xxx-query-n

于 2016-04-24T21:25:41.330 に答える