public static void startThread()
        {
            try
            {
                customsGoodsRespQueue = new MsgQueue().Createqueue(cf.getDeclMsgQueueAddr("customsGoodsRespUrl"));
                customsDeclRespQueue = new MsgQueue().Createqueue(cf.getDeclMsgQueueAddr("customsManifestRespUrl"));
                customsOrderRespQueue = new MsgQueue().Createqueue(cf.getDeclMsgQueueAddr("customsOrderRespUrl"));

                govGoodsRespQueue = new MsgQueue().Createqueue(cf.getDeclMsgQueueAddr("govGoodsRespUrl"));
                govDeclRespQueue = new MsgQueue().Createqueue(cf.getDeclMsgQueueAddr("govManifestRespUrl"));
                govOrderRespQueue = new MsgQueue().Createqueue(cf.getDeclMsgQueueAddr("govOrderRespUrl"));
                flag = true;
                int counter;
                receiveMessageThreadArray[0] = new Thread(new ThreadStart(new MsgListen(customsGoodsRespQueue,CustomsMessageType.GOODS,SendPlace.CUSTOMS ).ThreadProc));
                receiveMessageThreadArray[1] = new Thread(new ThreadStart(new MsgListen(customsDeclRespQueue, CustomsMessageType.MANIFEST, SendPlace.CUSTOMS).ThreadProc));
                receiveMessageThreadArray[2] = new Thread(new ThreadStart(new MsgListen(customsOrderRespQueue, CustomsMessageType.ORDER, SendPlace.CUSTOMS).ThreadProc));

                receiveMessageThreadArray[3] = new Thread(new ThreadStart(new MsgListen(govGoodsRespQueue, CustomsMessageType.GOODS, SendPlace.GOVERNMENT).ThreadProc));
                receiveMessageThreadArray[4] = new Thread(new ThreadStart(new MsgListen(govDeclRespQueue, CustomsMessageType.MANIFEST, SendPlace.GOVERNMENT).ThreadProc));
                receiveMessageThreadArray[5] = new Thread(new ThreadStart(new MsgListen(govOrderRespQueue, CustomsMessageType.ORDER, SendPlace.GOVERNMENT).ThreadProc));

                for (counter = 0; counter < threadNumber; counter++)
                {
                    receiveMessageThreadArray[counter].Start();
                }
                Logger.Info("start receive thread success!");

            }
            catch (Exception e)
            {
                Logger.Error("start receive thread failed!", e);
            }
        }
        public Boolean sendDeclMessage(string messageId, string outId, int sendType, string messageDetail, int place)
        {
            if (messageId == null && messageId == ""
                && outId == null && outId == ""
                && messageDetail == null && messageDetail == ""
                && sendType == 0
                && place == 0)
            {
                return false;
            }
            MessageQueueTransaction msgTransaction = new MessageQueueTransaction();

            try
            {
                mq = mqFactory.CreateMsgQueueFactory(sendType, place);

                using (TransactionScope scope = new TransactionScope())
                {

                    msgTransaction.Begin();
                    XmlDocument xmldoc = new XmlDocument();

                    if (place == (int)SendPlace.GOVERNMENT)
                    {

                        String key = configUtil.getGovPwd();
                        messageDetail = AESUtil.AesEncoding(messageDetail, key, Encoding.UTF8);

                        mq.SendEncryptMessage(messageDetail, msgTransaction, messageId);
                    }
                    else
                    {
                        xmldoc.LoadXml(messageDetail);
                        mq.SendMessage(xmldoc, msgTransaction, messageId);
                    }
                    Logger.Debug(messageDetail);

                    messageDeclService.createDeclMessage(messageId, outId, sendType, messageDetail,place);
                    messageRespService.createResponseMessage(messageId, outId, sendType,place);

                    scope.Complete();
                    msgTransaction.Commit();
                    return true;

                }
            } catch (Exception e)
            {
                msgTransaction.Abort();
                if ((int)CustomsDeclarationProxy.Constant.CustomsMessageType.MANIFEST== sendType)
                {
                    Logger.Error("shipmentPackId:" + outId + "send and insert manifest message failed!", e);
                }
                else if ((int)CustomsDeclarationProxy.Constant.CustomsMessageType.ORDER == sendType)
                {
                    Logger.Error("shipmentPackId:" + outId + "send and insert order message failed!", e);
                }
                return false;
            }
        }
Esempio n. 3
0
 public MsgListen(MsgQueue respQueue, CustomsMessageType cmt, SendPlace sp)
 {
     this.respQueue = respQueue;
     this.cmt = cmt;
     this.sendPlace = sp;
 }