私たちのアプリケーションでは、SQL Serverでsignalr scaleoutを実装しました。バックプレーンは設定されていますが、接続されているすべてのサーバにメッセージを送信できないようです。私たちがどこに問題があるのかを特定できるように、バックパイルに来るリクエストを記録するイベントやその他の方法はありますか?我々は、各サーバのシグナルトレースログを有効にすることができ、そのトレースは以下の通りです。しかし、ここの情報は、私たちが問題を見つけるにはあまりにも少ないです。SignalRバックプレーントレースログ
2017-02-02 04:05:11.7642 TRACE SignalR.SqlMessageBus Stream 0 : No records received (System.Diagnostics.TraceSourceExtensions.Trace)
2017-02-02 04:05:11.7798 TRACE SignalR.SqlMessageBus Stream 0 : Waiting 3000ms before checking for messages again (System.Diagnostics.TraceSourceExtensions.Trace)
2017-02-02 04:05:14.8111 TRACE SignalR.SqlMessageBus Created DbCommand: CommandType=Text, CommandText=SELECT [PayloadId], [Payload], [InsertedOn] FROM [SignalR].[Messages_0] WHERE [PayloadId] > @PayloadId, Parameters= [Name=PayloadId, Value=51373] (System.Diagnostics.TraceSourceExtensions.Trace)
2017-02-02 04:05:14.8111 TRACE SignalR.SqlMessageBus Stream 0 : No records received (System.Diagnostics.TraceSourceExtensions.Trace)
2017-02-02 04:05:14.8267 TRACE SignalR.SqlMessageBus Stream 0 : Setting up SQL notification (System.Diagnostics.TraceSourceExtensions.Trace)
2017-02-02 04:05:14.8267 TRACE SignalR.SqlMessageBus Created DbCommand: CommandType=Text, CommandText=SELECT [PayloadId], [Payload], [InsertedOn] FROM [SignalR].[Messages_0] WHERE [PayloadId] > @PayloadId, Parameters= [Name=PayloadId, Value=51373] (System.Diagnostics.TraceSourceExtensions.Trace)
SQLバックプレーンがすでに動作しているかどうかを確認するにはどうすればよいですか?
返信いただきありがとうございます。複数のサーバーが接続されているため、特定のサーバーが保存しているメッセージのペイロードIDを見つける方法があります。複数のサーバーが同時に保存しているため、「1つのメッセージでペイロードをSQLサーバーに保存する」ことによって得られる情報はそれほど多くありません。 – janitha000
実際にはいです。私の答えの最後にもっと完全なログファイルを見ると、 'PayloadId'が表示されている' SqlMessageBus'と 'ScaleoutMessageBus'からのいくつかのメッセージが表示されます。そして、これからDBテーブルをチェックして、メッセージが永続化されているかどうかを確認することができます。 –