コード例 #1
0
        public string Send(GxQueueMessage msg)
        {
            Message m = msg.GetBaseMessage(this.propertyFilter);

            try
            {
                if (mq == null)
                {
                    errCode        = 1;
                    errDescription = "Send message error: connection to the queue is closed";
                    GXLogging.Debug(log, errDescription);
                    return("");
                }
                if (transactional(mq) && context.MQTransaction != null)
                {
                    if (context.MQTransaction.Status != MessageQueueTransactionStatus.Pending)
                    {
                        context.MQTransaction.Begin();
                    }
                    GXLogging.Debug(log, "Sending message to transactional queue:" + mq.Path);
                    mq.Send(m, context.MQTransaction);
                }
                else
                {
                    GXLogging.Debug(log, "Sending message to non transactional queue:" + mq.Path);
                    mq.Send(m);
                }
                msg.SetBaseMessage(m);
            }
            catch (MessageQueueException mex)
            {
                errCode        = 1;
                errDescription = mex.Message;
                GXLogging.Debug(log, "Send message error code:" + mex.MessageQueueErrorCode + ", msmq path:" + mq.Path, mex);
                return("");
            }
            catch (Exception ex)
            {
                errCode        = 1;
                errDescription = ex.Message;
                GXLogging.Debug(log, "Send message error, msmq path:" + mq.Path, ex);
                return("");
            }
            return(m.Id);
        }
コード例 #2
0
        public GxQueueMessage GetNext()
        {
            GxQueueMessage gxm          = new GxQueueMessage();
            bool           messageExist = false;
            bool           validMessage = false;

            while (!validMessage)
            {
                try
                {
                    messageExist = mEnum.MoveNext();
                    if (messageExist)
                    {
                        Message m = (Message)(mEnum.Current);
                        gxm.SetBaseMessage(m);
                        validMessage = testMessage(gxm);
                        if (validMessage && !browse)
                        {
                            mEnum.RemoveCurrent();
                        }
                    }
                    else
                    {
                        validMessage = true;
                    }
                }
                catch (MessageQueueException mex)
                {
                    errCode        = 1;
                    errDescription = mex.Message;
                    messageExist   = false;
                    validMessage   = true;
                }
            }
            mEof = !messageExist;
            return(gxm);
        }