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; } }
public MsgListen(MsgQueue respQueue, CustomsMessageType cmt, SendPlace sp) { this.respQueue = respQueue; this.cmt = cmt; this.sendPlace = sp; }