Exemplo n.º 1
0
        /// <summary>
        /// Testing MQ send 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonSend_Click(object sender, EventArgs e)
        {
             try
            {
            MQSender mqSender = new MQSender();
            MQConnection mqcon = new MQConnection();
            mqcon.Init("1", ConfigurationSettings.AppSettings["MQHOST"], int.Parse(ConfigurationSettings.AppSettings["MQPORT"]), ConfigurationSettings.AppSettings["MQName"]);
            mqcon.Open();
            //mqSender.Init(ConfigurationSettings.AppSettings["Test_2591"], mqcon);
            mqSender.Init(ConfigurationSettings.AppSettings["Test_2591"], mqcon);

            MQMessage msg = new MQMessage();
            msg.HeaderMcd.McdType = MQMessage.MQHeaderMcd.Request;
            msg.HeaderUser.UserBaseDate.Value = DateTime.Now.ToShortDateString();
            msg.HeaderUser.UserServiceId.Value = "11";
            msg.HeaderUser.UserServiceStatus.Value = "0";
            msg.HeaderUser.UserServiceGuage.Value = "0";
            msg.HeaderUser.UserServiceGuageInfo.Value = String.Empty;
            msg.HeaderUser.UserUserId.Value = "12";
            msg.HeaderUser.UserTaskCode.Value = "1290";
            msg.Text = "MQ test 消息";
           
                mqSender.SendMessage(msg);
   
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// ������Ϣ������ʧ�ܣ����׳��쳣
 /// </summary>
 /// <param name="aMessage">MQ��Ϣ</param>
 public void SendMessage(MQMessage aMessage)
 {
     try
     {
         Produce(_queueName, aMessage);
     }
     catch(Exception exp)
     {
         Log4.LogHelper.Write(Log4.LogLevel.Error, exp.ToString());
         throw new Exception("����MQ��Ϣʧ�ܣ�������������������MQ���������У����Ժ����ԡ�");
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 处理消息反馈
 /// </summary>
 /// <param name="aMessage"></param>
 public void OnMessageReceiver_CallBack(MQMessage aMessage)
 {
     
     MessageData msgdata = ConvertMessage(aMessage);
     AidLogHelper.Write(xQuant.Log4.LogLevel.Debug, string.Format("MQ已接收到消息(MQHandlerSync),GUID={0}", msgdata.MessageID));
     if (!Inited)
     {
         Init();
     }
     try
     {
         bool isAsyncSocket = false;
         
         if (msgdata != null)
         {
             msgdata.FirstTime = DateTime.Now;
             if (isAsyncSocket)
             {
                 OnMessageHandleAsync(msgdata);
             }
             else
             {
                 DispatchMsg(msgdata);
             }
         }
     }
     catch (Exception ex)
     {
         try
         {
             StringBuilder sb = new StringBuilder("从MQ接收到消息后处理发生异常!(MQHandlerSync)");
             SendToMQ(msgdata, new byte[1] { 0 }, sb.ToString());
             sb.AppendLine();
             sb.AppendFormat("GUID={0},Exception.Message:{1}.", msgdata.MessageID, ex.Message);
             sb.AppendLine();
             sb.AppendFormat("Stack Trace:{0}.", ex.StackTrace);
             //CommonHelper.AddEventLog(EventSourceName, sb.ToString());
             AidLogHelper.Write(xQuant.Log4.LogLevel.Error, sb.ToString());
         }
         catch
         {
         }
     }
 }
Exemplo n.º 4
0
        private MessageData ConvertMessage(MQMessage mqmsg)
        {
            if (mqmsg == null)
            {
                return null;
            }
            MessageData data = new MessageData();
            string msgid = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "GUID");
            if (!String.IsNullOrEmpty(msgid))
            {
                data.MessageID = new Guid(msgid);
            }
            else
            {
                return null;
            }
            
            data.BizMsgID = mqmsg.HeaderUser.UserServiceId.Value;
            bool isSingle = true;
            string mpkgFlag = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "PKGTYPE");
            if (!String.IsNullOrEmpty(mpkgFlag))
            {
                if (bool.TryParse(mpkgFlag, out isSingle))
                {
                    data.IsMultiPackage = !isSingle;
                }
                else
                {
                    data.IsMultiPackage = false;
                }
            }
            else
            {
                return null;
            }

            string platform = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "TARGETSYS");
            if (!String.IsNullOrEmpty(platform))
            {
                data.TragetPlatform = (PlatformType)Enum.Parse(typeof(PlatformType), platform);
            }
            else
            {
                return null;
            }

            string sourceIP = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "IP");
            if (!String.IsNullOrEmpty(sourceIP))
            {
                data.SourceIP = sourceIP;
            }            

            data.ReqPackageList.Enqueue(new PackageData(1, mqmsg.Byte));

            return data;  
        }
Exemplo n.º 5
0
        ///// <summary>
        ///// 
        ///// </summary>
        ///// <returns></returns>
        private MQMessage GetMessage(String msgId, Guid id, PlatformType targetSys, bool isSinglePkg, String sourceIP, String definedError)
        {
            MQMessage msg = new MQMessage();
            msg.HeaderUser.UserServiceId.Value = msgId;
            msg.HeaderMcd.McdType = MQMessage.MQHeaderMcd.Request;
            //msg.HeaderUser.UserBaseDate.Value = DateTimeHelper.NowDateToString;
            //msg.HeaderUser.UserServiceId.Value = id.ToString();
            msg.HeaderUser.UserServiceStatus.Value = "0";
            msg.HeaderUser.UserServiceGuage.Value = "0";
            msg.HeaderUser.UserServiceGuageInfo.Value = "";
            msg.HeaderUser.UserTaskCode.Value = "";
            msg.HeaderUser.UserUserId.Value = "";            

            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("TARGETSYS", targetSys.ToString()));
            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("PKGTYPE", isSinglePkg.ToString()));
            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("GUID", id.ToString()));
            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("ERROR", definedError));
            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("IP", sourceIP));

            return msg;
        }
Exemplo n.º 6
0
        public static MessageData FromMQMessage(MQMessage mqmsg, out string error)
        {
            error = "";
            if (mqmsg == null)
            {
                return null;
            }
            MessageData data = new MessageData();
            string msgid = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "GUID");
            if (!String.IsNullOrEmpty(msgid))
            {
                data.MessageID = new Guid(msgid);
            }
            else
            {
                return null;
            }
            

            data.BizMsgID = mqmsg.HeaderUser.UserServiceId.Value;
            bool isSingle = true;
            string mpkgFlag = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "PKGTYPE");
            if (!String.IsNullOrEmpty(mpkgFlag))
            {
                if (bool.TryParse(mpkgFlag, out isSingle))
                {
                    data.IsMultiPackage = !isSingle;
                }
                else
                {
                    data.IsMultiPackage = false;
                }
            }
            else
            {
                return null;
            }

            string platform = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "TARGETSYS");
            if (!String.IsNullOrEmpty(platform))
            {
                data.TragetPlatform = (PlatformType)Enum.Parse(typeof(PlatformType), platform);
            }
            else
            {
                return null;
            }
            string sourceIP = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "IP");
            if (!String.IsNullOrEmpty(sourceIP))
            {
                data.SourceIP = sourceIP;
            }
            data.RespPackageList.Enqueue(new PackageData(1, mqmsg.Byte));

            error = FindDefinedParameterValue(mqmsg.HeaderUser.UserDefined, "ERROR");
            //if (!String.IsNullOrEmpty(error))
            //{
            //    throw new Exception(string.Format("解析MQ消息,GUID={0};ERROR={1};", data.MessageID, error));
            //}

            return data;
        }
Exemplo n.º 7
0
        /// <summary>
        /// ����MQ��Ϣͷ����ѡ����
        /// </summary>
        /// <param name="mqMessage">MQMessage</param>
        /// <returns>����ѡ����</returns>
        public static string ParseSelector(MQMessage mqMessage)
        {
            StringBuilder selector = new StringBuilder();

            if (mqMessage.HeaderMcd.McdType != null)
                selector.AppendFormat("{0}='{1}'", XMSC.JMS_TYPE, mqMessage.HeaderMcd.McdType);
            if (mqMessage.HeaderMcd.MessageId != null)
            {
                if (selector.Length > 0)
                    selector.Append(" and ");
                selector.AppendFormat("{0}='{1}'", XMSC.JMS_MESSAGEID, mqMessage.HeaderMcd.MessageId);
            }

            if (mqMessage.HeaderUser.UserServiceId.Value != null)
            {
                if (selector.Length > 0)
                    selector.Append(" and ");
                selector.AppendFormat("{0}='{1}'", mqMessage.HeaderUser.UserServiceId.Name, mqMessage.HeaderUser.UserServiceId.Value);
            }
            if (mqMessage.HeaderUser.UserServiceStatus.Value != null)
            {
                if (selector.Length > 0)
                    selector.Append(" and ");
                selector.AppendFormat("{0}='{1}'", mqMessage.HeaderUser.UserServiceStatus.Name, mqMessage.HeaderUser.UserServiceStatus.Value);
            }
            if (mqMessage.HeaderUser.UserServiceGuage.Value != null)
            {
                if (selector.Length > 0)
                    selector.Append(" and ");
                selector.AppendFormat("{0}='{1}'", mqMessage.HeaderUser.UserServiceGuage.Name, mqMessage.HeaderUser.UserServiceGuage.Value);
            }
            if (mqMessage.HeaderUser.UserBaseDate.Value != null)
            {
                if (selector.Length > 0)
                    selector.Append(" and ");
                selector.AppendFormat("{0}='{1}'", mqMessage.HeaderUser.UserBaseDate.Name, mqMessage.HeaderUser.UserBaseDate.Value);
            }
            if (mqMessage.HeaderUser.UserUserId.Value != null)
            {
                if (selector.Length > 0)
                    selector.Append(" and ");
                selector.AppendFormat("{0}='{1}'", mqMessage.HeaderUser.UserUserId.Name, mqMessage.HeaderUser.UserUserId.Value);
            }
            if (mqMessage.HeaderUser.UserTaskCode.Value != null)
            {
                if (selector.Length > 0)
                    selector.Append(" and ");
                selector.AppendFormat("{0}='{1}'", mqMessage.HeaderUser.UserTaskCode.Name, mqMessage.HeaderUser.UserTaskCode.Value);
            }

            foreach (MQParameter<string> list in mqMessage.HeaderUser.UserDefined)
            {
                if (list.Value != null)
                {
                    if (selector.Length > 0)
                        selector.Append(" and ");
                    selector.AppendFormat("{0}='{1}'", list.Name, list.Value);
                }
            }

            return selector.ToString();
        }
Exemplo n.º 8
0
 /// <summary>
 /// 处理从同步MQ结束后的消息反馈
 /// </summary>
 /// <param name="aMessage"></param>
 public void OnMessageReceiver_CallBack(MQMessage aMessage)
 {
     try
     {
         PerformReceiverAsync(aMessage);
     }
     catch (Exception ex)
     {
         xQuant.Log4.LogHelper.Write(xQuant.Log4.LogLevel.Error, string.Format("接收处理后发生异常!Exception:{0}!\r\nStackTrace:{1}!", ex.Message,ex.StackTrace));
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// 异步回调接收后的处理
 /// </summary>
 /// <param name="mqmsg"></param>
 private void PerformReceiverAsync(MQMessage mqmsg)
 {
     string error = "";
     MessageData msgdata = MQMsgCommonHelper.FromMQMessage(mqmsg, out error);
  
     xQuant.Log4.LogHelper.Write(xQuant.Log4.LogLevel.Debug, string.Format("异步接收MQ返回!GUID:{0}.Error:{1}.", msgdata.MessageID, error));
     if (_receiverManager.GetSemaphore(msgdata.MessageID) == null)
     {
         //过期消息
         AfterReceivedAsync(msgdata, error, MsgLogState.RecvOverdue);
     }
     else
     {
         if (string.IsNullOrEmpty(error))
         {
             //正常接收并无错误
             AfterReceivedAsync(msgdata, "已接收到报文!", MsgLogState.RecvSucceed);
         }
         else
         {
             //接收过程中,在服务端发生错误
             AfterReceivedAsync(msgdata, error, MsgLogState.RecvFailed);
         }
     }
 }
Exemplo n.º 10
0
 /// <summary>
 /// 同步接收后处理
 /// </summary>
 /// <param name="recmq"></param>
 /// <returns></returns>
 private MessageData PerformReceiverSync(MQMessage recmq, out string error)
 {
     try
     {
         error = "";
         MessageData msgdata = MQMsgCommonHelper.FromMQMessage(recmq, out error);
         return msgdata;
     }
     catch (Exception ex)
     {
         throw new AidException(MsgHandlerEntry.MQ_Exception_Title, ex.Message, ex);
     }
 }
Exemplo n.º 11
0
        private MQMessage GetMessage(String msgId, Guid id, PlatformType targetSys, bool isSinglePkg)
        {
            MQMessage msg = new MQMessage();
            msg.HeaderUser.UserServiceId.Value = msgId;
            msg.HeaderMcd.McdType = MQMessage.MQHeaderMcd.Request;
            msg.HeaderUser.UserServiceStatus.Value = "0";
            msg.HeaderUser.UserServiceGuage.Value = "0";
            msg.HeaderUser.UserServiceGuageInfo.Value = "";
            msg.HeaderUser.UserTaskCode.Value = "";
            //msg.HeaderUser.UserUserId.Value = USER_CODE;

            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("TARGETSYS", targetSys.ToString()));
            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("PKGTYPE", isSinglePkg.ToString()));
            msg.HeaderUser.UserDefined.Add(new MQParameter<string>("GUID", id.ToString()));

            return msg;
        }
Exemplo n.º 12
0
 /// <summary>
 /// �����Ѷ�������Ļص�����
 /// </summary>
 /// <param name="msg">�Ѷ��ĵ���Ϣ</param>
 private void OnMessageListener(IMessage msg)
 {
     if (msg != null)
     {
         try
         {
             MQMessage mqMessage = new MQMessage();
             mqMessage.ParseMessage(msg);
             if (_messageReceiveCallBack != null)
                 _messageReceiveCallBack(mqMessage);
         }
         catch (Exception ex)
         {
             xQuant.Log4.LogHelper.Write(xQuant.Log4.LogLevel.Error, String.Format("{0}.OnMessageCallback Exception:\n{1}", GetType().FullName, ex));
         }
     }
 }
Exemplo n.º 13
0
        private void MessageReceiver_Callback(MQMessage aMessage)
        {
            try
            {
                switch (aMessage.HeaderMcd.McdType)
                {
                    case MQMessage.MQHeaderMcd.Response:
                        MessageBox.Show(aMessage.Text);
                        break;
                    case MQMessage.MQHeaderMcd.Result:
                        MessageBox.Show(aMessage.Text);
                        break;
                    case MQMessage.MQHeaderMcd.Request:
                    default:
                        return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }