簡體   English   中英

SignalR背板跟蹤日志

[英]SignalR backplane trace logs

在我們的應用程序中,我們使用sql server實現了signalr橫向擴展。 背板已配置,但似乎無法將消息發送到與其連接的所有服務器。 是否有事件或其他任何方式記錄即將到達backpalne的請求,然后將這些消息發送到哪些服務器,以便我們可以確定問題出在哪里。 我們可以在每個服務器中啟用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背板是否已經在工作,如果不能使用?

簡短的答案:要驗證備用站點是否正常工作,必須滿足以下條件,並且您應該能夠看到

  1. 基礎數據庫表中的相關消息
  2. 在跟蹤日志中記錄SignalR.SqlMessageBus中的消息(啟用時)

更多信息:

我們還將SignalR與SQL scaelout一起使用,並且當新消息被持久保存到數據庫表時,我們將獲得以下跟蹤日志:

SignalR.SqlMessageBus Verbose: 0 : Stream 0 : Saving payload with 1 messages(s) to SQL server

此后,我們可以在相應的SignalR表中識別消息(取決於您的配置,可以有多個):

在此處輸入圖片說明

在您的日志中,我只看到來自SignalR.SqlMessageBus消息。 要獲取更多詳細信息,您還應該像這樣將與SignalR.ScaleoutMessageBus擴展相關的跟蹤源設置為Verbose,ActivityTracing (請參閱顯示SignalR.ScaleoutMessageBus日志消息的最后兩行):

SignalR.SqlMessageBus Verbose: 0 : Stream 0 : SqlReceiver last payload ID=8390, new payload ID=8391
SignalR.SqlMessageBus Verbose: 0 : Stream 0 : SqlReceiver last payload ID=8390, new payload ID=8391
SignalR.SqlMessageBus Verbose: 0 : Stream 0 : Updated receive reader initial payload ID parameter=8391
SignalR.SqlMessageBus Verbose: 0 : Stream 0 : Updated receive reader initial payload ID parameter=8391
SignalR.SqlMessageBus Verbose: 0 : Stream 0 : Payload 8391 containing 1 message(s) received
SignalR.SqlMessageBus Verbose: 0 : Stream 0 : Payload 8391 containing 1 message(s) received
SignalR.ScaleoutMessageBus Information: 0 : OnReceived(0, 8391, 1)
SignalR.ScaleoutMessageBus Information: 0 : OnReceived(0, 8391, 1)

可以像下面這樣配置SignalR.ScaleoutMessageBus跟蹤源:

  <source name="SignalR.ScaleoutMessageBus" switchName="SignalRSwitch" >
    <listeners>
      <add name="SignalR-Bus" />
    </listeners>
  </source>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM