private void DispatchCompleting(MessageData responsemsg, Exception ex, bool canceled, AsyncOperation asyncOper) { if (!canceled) { lock (_userStateToLifetime.SyncRoot) { _userStateToLifetime.Remove(asyncOper.UserSuppliedState); } } TransmitCompletedEventArgs eventArgs = new TransmitCompletedEventArgs(responsemsg, ex, canceled, asyncOper.UserSuppliedState); asyncOper.PostOperationCompleted(onCompletedDelegate, eventArgs); }
void DispatchMsg_DispatchCompleted(object sender, TransmitCompletedEventArgs e) { StringBuilder result = new StringBuilder(); try { if (e.Cancelled) { AidLogHelper.Write(xQuant.Log4.LogLevel.Debug, string.Format("分发结束返回处理(DispatchMsg_DispatchCompleted):GUID={0},e.Cancelled", e.MessageData.MessageID)); result.AppendLine(); result.Append(" Canceled!"); } else if (e.Error != null) { AidLogHelper.Write(xQuant.Log4.LogLevel.Debug, string.Format("分发结束返回处理(DispatchMsg_DispatchCompleted):GUID={0},e.Error.Message={1}",e.MessageData.MessageID,e.Error.Message)); if (e.Error is SocketException) { SocketException sex = e.Error as SocketException; result.AppendLine(); result.AppendFormat("Socket错误:{0}. 错误代码:{1}", e.Error.Message, sex.SocketErrorCode); } else { result.AppendLine(); result.Append(e.Error.Message); } byte[] rebytes = e.MessageData.GetRespMessage(); if (rebytes == null) { rebytes = new byte[] { 0 }; } SendToMQ(e.MessageData, rebytes, result.ToString()); } else { if (e.MessageData.IsMultiPackage) { while (e.MessageData.RespPackageList.Count > 0) { result.Append(e.MessageData.GetRespMessage()); e.MessageData.RespPackageList.Dequeue(); } } else { byte[] rebytes = e.MessageData.GetRespMessage(); AidLogHelper.Write(xQuant.Log4.LogLevel.Debug, string.Format("分发结束返回处理(DispatchMsg_DispatchCompleted):GUID={0};正常;返回字节长度={1}",e.MessageData.MessageID,rebytes.Length)); SendToMQ(e.MessageData, rebytes, ""); } } } catch (Exception ex) { try { StringBuilder sb = new StringBuilder("AidSystemService DispatchMsg_DispatchCompleted发生异常!(MQHandlerSync)"); sb.AppendLine(); sb.AppendFormat("GUID={0},Exception.Message:{1}.", e.MessageData.MessageID, ex.Message); SendToMQ(e.MessageData, new byte[1] { 0 }, sb.ToString()); AidLogHelper.Write(xQuant.Log4.LogLevel.Error, "分发结束返回处理(DispatchMsg_DispatchCompleted)发生异常!" + ex.Message); //CommonHelper.AddEventLog(EventSourceName, sb.ToString()); } catch (Exception innerex) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("GUID={0},Exception.Message{1}.StackTrace:{2}.", e.MessageData.MessageID, innerex.Message, innerex.StackTrace); AidLogHelper.Write(xQuant.Log4.LogLevel.Error, "分发结束返回处理(DispatchMsg_DispatchCompleted)异常处理内部有问题!" + sb.ToString()); //CommonHelper.AddEventLog(EventSourceName, sb.ToString()); } } }
void DispatchMsg_DispatchCompleted(object sender, TransmitCompletedEventArgs e) { StringBuilder result = new StringBuilder(); try { if (e.Cancelled) { result.AppendLine(); result.Append(" Canceled!"); } else if (e.Error != null) { if (e.Error is SocketException) { SocketException sex = e.Error as SocketException; result.AppendLine(); result.AppendFormat("{0}. ERROR CODE:{1}", e.Error.Message, sex.SocketErrorCode); } else { result.AppendLine(); result.Append(e.Error.Message); } } else { if (e.MessageData.IsMultiPackage) { while (e.MessageData.RespPackageList.Count > 0) { result.Append(e.MessageData.GetRespMessage()); e.MessageData.RespPackageList.Dequeue(); } } else { byte[] rebytes = e.MessageData.GetRespMessage(); // 发送个MQ(MessageID, buffer) // 跳过MQ // .... // web界面层 int realLen = rebytes.Length; if (e.MessageData.TragetPlatform != PlatformType.Encrypt) { byte end = 0; realLen = Array.IndexOf(rebytes, end); } byte[] buffer = new byte[realLen]; Array.Copy(rebytes, buffer, realLen); BizMsgDataBase respData = null; respData = MsgTransfer.DecodeMsg(e.MessageData.MessageID, buffer); #region Test code if (respData is PayAcctCheckData) { TestForCheckAcct(result, (PayAcctCheckData)respData); textBoxResult.Text = result.ToString(); } #endregion } } } catch (Exception ex) { result.AppendLine(); result.Append(ex.Message.ToString()); //textBoxRespAcct.Text = result.ToString(); //MessageBox.Show(ex.Message.ToString()); } }
void DispatchMsg_DispatchCompleted(object sender, TransmitCompletedEventArgs e) { StringBuilder result = new StringBuilder(); try { if (e.Cancelled) { result.AppendLine(); result.Append(" Canceled!"); } else if (e.Error != null) { //result.AppendFormat("EorrCode:",e.Error.); if (e.Error is SocketException) { SocketException sex = e.Error as SocketException; result.AppendLine(); result.AppendFormat("{0}. ERROR CODE:{1}", e.Error.Message, sex.SocketErrorCode); result.AppendLine(); result.Append(sex.StackTrace); } else { result.AppendLine(); result.Append(e.Error.Message); } MessageBox.Show(result.ToString()); } else { if (e.MessageData.IsMultiPackage) { while (e.MessageData.RespPackageList.Count > 0) { result.Append(e.MessageData.GetRespMessage()); e.MessageData.RespPackageList.Dequeue(); } } else { byte[] rebytes = e.MessageData.GetRespMessage(); // 发送个MQ(MessageID, buffer) // 跳过MQ // .... // web界面层 int realLen = rebytes.Length; if (e.MessageData.TragetPlatform != PlatformType.Encrypt) { byte end = 0; realLen = Array.IndexOf(rebytes, end); } byte[] buffer = new byte[realLen]; Array.Copy(rebytes, buffer, realLen); BizMsgDataBase respData = null; respData = MsgTransfer.DecodeMsg(e.MessageData.MessageID, buffer); #region Test code if (respData is InterBankAutoRedepoData) { InterBankAutoRedepoData rData = respData as InterBankAutoRedepoData; if (rData == null) { result.AppendFormat("The Core's result object is null!"); } else { result.AppendFormat("Core Status:{0}", rData.RPhdrHandler.STATUS); if (rData.SyserrHandler.Message != null) { result.AppendLine(); result.AppendFormat("SYSERROR:{0};", rData.SyserrHandler.Message); } if (rData.OmsgHandler.OMSGItemList != null && rData.OmsgHandler.OMSGItemList.Count > 0) { result.AppendLine(); result.AppendFormat("OMSG:{0};", rData.OmsgHandler.OMSGItemList[0].MSG_TEXT); } } } #endregion } } textBoxResult.Text = result.ToString(); } catch (Exception ex) { result.AppendLine(); result.Append(ex.Message.ToString()); //MessageBox.Show(ex.Message.ToString()); } }
private void OnDispatchCompleted(TransmitCompletedEventArgs eventargs) { if (DispatchCompleted != null) { DispatchCompleted(this, eventargs); } }
void DispatchMsg_DispatchCompleted(object sender, TransmitCompletedEventArgs e) { StringBuilder result = new StringBuilder(); try { if (e.Cancelled) { result.AppendLine(); result.Append(" Canceled!"); } else if (e.Error != null) { //result.AppendFormat("EorrCode:",e.Error.); if (e.Error is SocketException) { SocketException sex = e.Error as SocketException; result.AppendLine(); result.AppendFormat("{0}. ERROR CODE:{1}", e.Error.Message, sex.SocketErrorCode); } else { result.AppendLine(); result.Append(e.Error.Message); } //CommonHelper.AddEventLog(EventSourceName, result.ToString()); //RecordDB(result.ToString(), e.MessageData); } else { if (e.MessageData.IsMultiPackage) { while (e.MessageData.RespPackageList.Count > 0) { result.Append(e.MessageData.GetRespMessage()); e.MessageData.RespPackageList.Dequeue(); } } else { byte[] rebytes = e.MessageData.GetRespMessage(); // 发送个MQ(MessageID, buffer) MQMessage msg = GetMessage(e.MessageData.BizMsgID, e.MessageData.MessageID, e.MessageData.TragetPlatform, e.MessageData.IsMultiPackage); int realLen = rebytes.Length; if (e.MessageData.TragetPlatform != PlatformType.Encrypt) { byte end = 0; realLen = Array.IndexOf(rebytes, end); } byte[] buffer = new byte[realLen]; Array.Copy(rebytes, buffer, realLen); msg.Byte = buffer; UpdateLogDB(e.MessageData); _mqSender.SendMessage(msg); } } } catch (Exception ex) { StringBuilder sb = new StringBuilder("LoadResendLog MQ DispatchMsg_DispatchCompleted异常!"); sb.AppendLine(); sb.AppendFormat("Exception.Message:{0}.", ex.Message); //CommonHelper.AddEventLog(EventSourceName, sb.ToString()); } }
void DispatchMsg_DispatchCompleted(object sender, TransmitCompletedEventArgs e) { StringBuilder result = new StringBuilder(); try { if (e.Cancelled) { result.AppendLine(); result.Append(" Canceled!"); } else if (e.Error != null) { //result.AppendFormat("EorrCode:",e.Error.); if (e.Error is SocketException) { SocketException sex = e.Error as SocketException; result.AppendLine(); result.AppendFormat("{0}. ERROR CODE:{1}", e.Error.Message, sex.SocketErrorCode); //if (e.MessageData.ReSentTime < 5) //{ // e.MessageData.ReSentTime++; // e.MessageData.RespPackageList = new Queue<PackageData>(); // e.MessageData.IsMultiPackage = e.MessageData.ReqPackageList.Count > 1 ? true : false; // result.AppendLine(); // result.AppendFormat("正在第{0}次重发数据: {1}", e.MessageData.ReSentTime, e.MessageData.MessageID); // result.AppendLine(); // DispatchMsg(e.MessageData); //} } else { result.AppendLine(); result.Append(e.Error.Message); } //textBoxRetCstmResult.Text += result.ToString(); } else { if (e.MessageData.IsMultiPackage) { while (e.MessageData.RespPackageList.Count > 0) { result.Append(e.MessageData.GetRespMessage()); e.MessageData.RespPackageList.Dequeue(); } } else { byte[] rebytes = e.MessageData.GetRespMessage(); // 发送个MQ(MessageID, buffer) // 跳过MQ // .... // web界面层 int realLen = rebytes.Length; if (e.MessageData.TragetPlatform != PlatformType.Encrypt) { byte end = 0; realLen = Array.IndexOf(rebytes, end); } byte[] buffer = new byte[realLen]; Array.Copy(rebytes, buffer, realLen); BizMsgDataBase respData = null; respData = MsgTransfer.DecodeMsg(e.MessageData.MessageID, buffer); #region Test code if (respData is PayRegisterRetrievedData) { TestForRegisterRetrieved(result, (PayRegisterRetrievedData)respData); textBoxRespRegRetrieved.Text = result.ToString(); } else if (respData is PayFundTransferData) { TestForFundTransfer(result, (PayFundTransferData)respData); textBoxRespFundTransfer.Text = result.ToString(); } else if (respData is PayOutcomeAcctEraseData) { TestForPayAcctErase(result, (PayOutcomeAcctEraseData)respData); textBoxRespEraseAcct.Text = result.ToString(); } else if (respData is PayVostroAcctEliminateData) { TestForVostroAcctEliminate(result, (PayVostroAcctEliminateData)respData); textBoxRespEl.Text = result.ToString(); } else if (respData is PayInterBankData) { TestForInterBank(result, (PayInterBankData)respData); textBoxRespInterBank.Text = result.ToString(); } #endregion } } } catch (Exception ex) { result.AppendLine(); result.Append(ex.Message.ToString()); //textBoxRespAcct.Text = result.ToString(); //MessageBox.Show(ex.Message.ToString()); } }
void DispatchMsg_DispatchCompleted(object sender, TransmitCompletedEventArgs e) { _dataCount--; StringBuilder result = new StringBuilder(); result.Append("begin completed"); try { if (e.Cancelled) { result.AppendLine(); result.Append(" Canceled!"); if (_dataCount <= 0) { long end = DateTime.Now.Ticks; TimeSpan span = new TimeSpan(end - _begin); MessageBox.Show(span.TotalMilliseconds.ToString()); } } else if (e.Error != null) { result.AppendLine("e.Error --:"); //result.AppendFormat("EorrCode:",e.Error.); if (e.Error is SocketException) { SocketException sex = e.Error as SocketException; result.AppendLine(); result.AppendFormat("{0}. ERROR CODE:{1}", e.Error.Message, sex.SocketErrorCode); //if (e.MessageData.ReSentTime < 5) //{ // e.MessageData.ReSentTime++; // e.MessageData.RespPackageList = new Queue<PackageData>(); // e.MessageData.IsMultiPackage = e.MessageData.ReqPackageList.Count > 1 ? true : false; // result.AppendLine(); // result.AppendFormat("正在第{0}次重发数据: {1}", e.MessageData.ReSentTime, e.MessageData.MessageID); // result.AppendLine(); // DispatchMsg(e.MessageData); //} } else { result.AppendLine("e.Error.Message:"); result.Append(e.Error.Message); } if (_dataCount <= 0) { //long end = DateTime.Now.Ticks; //TimeSpan span = new TimeSpan(end - _begin); //MessageBox.Show(span.TotalMilliseconds.ToString()); } textBoxRetCstmResult.Text += result.ToString(); } else { if (_isConCurrentTesting) { //String eventSourceName = "xQuant.ConCurrentTesting"; //StringBuilder sb = new StringBuilder(); //sb.AppendFormat("Req:{0}; Begin:{1} Type:{2}", e.MessageData.MessageID, e.MessageData.Begin.ToString("HH:mm:ss:fff"), e.MessageData.GetType().ToString()); //sb.AppendLine(); //sb.AppendFormat("Resp:{0}; End:{1}, Remain:{2}", e.MessageData.RespMsgID, DateTime.Now.ToString("HH:mm:ss:fff"), _dataCount); //CommonHelper.AddEventLog(eventSourceName, sb.ToString()); if (_dataCount <= 0) { TimeSpan span = new TimeSpan(DateTime.Now.Ticks - _begin); MessageBox.Show("Finish! Duration:" + span.TotalMilliseconds.ToString()); } return; } if (e.MessageData.IsMultiPackage) { while (e.MessageData.RespPackageList.Count > 0) { result.Append(e.MessageData.GetRespMessage()); e.MessageData.RespPackageList.Dequeue(); } } else { byte[] rebytes = e.MessageData.GetRespMessage(); // 发送个MQ(MessageID, buffer) // 跳过MQ // .... // web界面层 int realLen = rebytes.Length; result.AppendLine("realLen:" + realLen.ToString()); if (e.MessageData.TragetPlatform != PlatformType.Encrypt) { byte end = 0; realLen = Array.IndexOf(rebytes, end); } if (realLen <= 0) { MessageBox.Show("返回数据为空!"); return; } byte[] buffer = new byte[realLen]; Array.Copy(rebytes, buffer, realLen); BizMsgDataBase respData = null; respData = MsgTransfer.DecodeMsg(e.MessageData.MessageID, buffer); #region Test code if (respData is RetrieveCstmData) { TestForRetrieveCstm(result, (CoreBizMsgDataBase)respData); result.AppendLine(); if (_dataCount <= 0) { long end = DateTime.Now.Ticks; TimeSpan span = new TimeSpan(end - _begin); MessageBox.Show(span.TotalMilliseconds.ToString()); } //textBoxRetCstmResult.Text += result.ToString(); } else if (respData is UpdateCstmData) { TestForUpdateCstm(result, (CoreBizMsgDataBase)respData); result.AppendLine(); if (_dataCount <= 0) { long end = DateTime.Now.Ticks; TimeSpan span = new TimeSpan(end - _begin); MessageBox.Show(span.TotalMilliseconds.ToString()); } //textBoxRespUpdtCstm.Text += result.ToString(); } else if (respData is AddCstmData) { TestForAddCstm(result, (CoreBizMsgDataBase)respData); textBoxRespUpdtCstm.Text = result.ToString(); } else if (respData is AcctRecordData) { //TestForAcctRecord(result, (CoreBizMsgDataBase)respData); //textBoxRespAcct.Text = result.ToString(); } else if (respData is RetrieveCstmBaseInfoData) { TestRetrieveCstmBaseInfo(result, respData); textBoxRetCstmResult.Text = result.ToString(); } else if (respData is EncryptTellerAuth) { EncryptTellerAuth encryptTeller = respData as EncryptTellerAuth; if (encryptTeller.AfterEncrypt) { TestForLogin(result, encryptTeller); textBoxEncryptOutput.Text = result.ToString(); //if (DialogResult.OK == MessageBox.Show(_dataCount.ToString(), "Test", MessageBoxButtons.OK)) { if (_dataCount <= 0) { //long end = DateTime.Now.Ticks; //TimeSpan span = new TimeSpan(end - _begin); //MessageBox.Show(span.TotalMilliseconds.ToString()); } } } else { TellerLogin2((EncryptTellerAuth)respData); } } else if (respData is PayBankInfoData) { result.AppendLine("respData is PayBankInfoData!"); TestForBanksInfoDownload((PayBankInfoData)respData); } #endregion } } } catch (Exception ex) { result.AppendLine(); result.Append(ex.Message.ToString()); textBoxRetCstmResult.Text = "DispatchMsg_DispatchCompleted Exception:" + result.ToString(); //MessageBox.Show(ex.Message.ToString()); } }
void DispatchMsg_DispatchCompleted(object sender, TransmitCompletedEventArgs e) { _dataCount--; StringBuilder result = new StringBuilder(); try { if (e.Cancelled) { result.AppendLine(); result.Append(" Canceled!"); if (_dataCount <= 0) { long end = DateTime.Now.Ticks; TimeSpan span = new TimeSpan(end - _begin); MessageBox.Show(span.TotalMilliseconds.ToString()); } } else if (e.Error != null) { //result.AppendFormat("EorrCode:",e.Error.); if (e.Error is SocketException) { SocketException sex = e.Error as SocketException; result.AppendLine(); result.AppendFormat("{0}. ERROR CODE:{1}", e.Error.Message, sex.SocketErrorCode); //if (e.MessageData.ReSentTime < 5) //{ // e.MessageData.ReSentTime++; // e.MessageData.RespPackageList = new Queue<PackageData>(); // e.MessageData.IsMultiPackage = e.MessageData.ReqPackageList.Count > 1 ? true : false; // result.AppendLine(); // result.AppendFormat("正在第{0}次重发数据: {1}", e.MessageData.ReSentTime, e.MessageData.MessageID); // result.AppendLine(); // DispatchMsg(e.MessageData); //} } else { result.AppendLine(); result.Append(e.Error.Message); } if (_dataCount <= 0) { long end = DateTime.Now.Ticks; TimeSpan span = new TimeSpan(end - _begin); MessageBox.Show(span.TotalMilliseconds.ToString()); } //textBoxRetCstmResult.Text += result.ToString(); } else { if (e.MessageData.IsMultiPackage) { while (e.MessageData.RespPackageList.Count > 0) { result.Append(e.MessageData.GetRespMessage()); e.MessageData.RespPackageList.Dequeue(); } } else { byte[] rebytes = e.MessageData.GetRespMessage(); // 发送个MQ(MessageID, buffer) // 跳过MQ // .... // web界面层 int realLen = rebytes.Length; if (e.MessageData.TragetPlatform != PlatformType.Encrypt) { byte end = 0; realLen = Array.IndexOf(rebytes, end); } byte[] buffer = new byte[realLen]; Array.Copy(rebytes, buffer, realLen); BizMsgDataBase respData = null; respData = MsgTransfer.DecodeMsg(e.MessageData.MessageID, buffer); #region Test code if (respData is AcctRecordData) { TestForAcctRecord(result, (CoreBizMsgDataBase)respData); textBoxRespAcct.Text = result.ToString(); } else if (respData is AcctRetrieveData) { TestForRetrieveRecord(result, (CoreBizMsgDataBase)respData); textBoxRespRetrieve.Text = result.ToString(); } else if (respData is AcctEraseData) { TestForAcctErase(result, (CoreBizMsgDataBase)respData); textBoxRespErase.Text = result.ToString(); } #endregion } } } catch (Exception ex) { result.AppendLine(); result.Append(ex.Message.ToString()); textBoxRespAcct.Text = result.ToString(); //MessageBox.Show(ex.Message.ToString()); } }