ServerProcessing IServerChannelSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, out IMessage responseMsg, out ITransportHeaders responseHeaders, out Stream responseStream) { long startTicks = TimeUtil.NOW(); string uri = null; long inputLength = 0L; if (requestStream != null && requestHeaders != null) { uri = requestHeaders["__RequestUri"].ToString(); } ServerProcessing process = this.nextSink.ProcessMessage(sinkStack, requestMsg, requestHeaders, requestStream, out responseMsg, out responseHeaders, out responseStream); if (null != responseMsg) { object methodName = responseMsg.Properties["__MethodName"]; if (uri != null && methodName != null) { string cmdName = uri.ToString() + methodName.ToString(); CmdMonitor.RecordCmdDetail(cmdName, TimeUtil.NOW() - startTicks, inputLength, responseStream.Length, TCPProcessCmdResults.RESULT_OK); } else { LogManager.WriteExceptionUseCache(string.Format("IServerChannelSink.ProcessMessage#uri={0},methodName={1}", uri, methodName)); } } else { LogManager.WriteExceptionUseCache(string.Format("IServerChannelSink.ProcessMessage#uri={0},responseMsg=null", uri)); } return(process); }
public void BeforeSendReply(ref Message reply, object correlationState) { MessageInspector.cmdInfo cmd = (MessageInspector.cmdInfo)correlationState; if (null != cmd) { CmdMonitor.RecordCmdDetail(cmd.cmdName, TimeUtil.NOW() - cmd.receiveTicks, (long)cmd.cmdSize, TCPProcessCmdResults.RESULT_OK); } }