أولاً، دعونا نقدم باختصار websphere mq وتثبيته واستخدامه.
websphere mq: يُستخدم لنقل المعلومات من خلال وظيفة مشتركة بين الأنظمة الأساسية.
1 قم بتثبيت websphere mq وابدأ
2. يقوم websphere mq بإنشاء مدير قائمة الانتظار (مثل: MQSI_SAMPLE_QM)
3. قم بإنشاء نوع قائمة الانتظار وحدد النوع المحلي (مثل lq)
4. حدد نوع القنوات وحدد اتصال الخادم (مثل BridgeChannel)
بعد ذلك، دعونا نلقي نظرة على رمز المثال:
MQFileReceiver.javapackage com.mq.dpca.file; import java.io.File; import java.io.FileOutputStream; import com.ibm.mq.MQEnvironment; import com.ibm.mq.MQException; MQGetMessageOptions;import com.ibm.mq.MQMessage;import com.ibm.mq.MQQueue;import com.ibm.mq.MQQueueManager;import com.ibm.mq.constants.MQConstants;import com.mq.dpca.msg.MQConfig;import com.mq.dpca.util.ReadCmdLine; import com.mq.dpca.util.RenameUtil /** * * وظيفة تلقي الملفات لمجموعة MQ * الاستقصاء النشط */public class MQFileReceiver { public MQQueueManager qmgr; // الاتصال بمدير قائمة الانتظار public MQQueue inQueue; // قائمة انتظار الإرسال public String queueName = ""; ""; // منفذ int خاص = 1414; // رقم منفذ المستمع قناة السلسلة الخاصة = ""; qmgrName = ""; // مدير قائمة الانتظار Private MQMessage inMsg; // إنشاء مخزن مؤقت للرسائل public MQGetMessageOptions gmo; // تعيين خيارات الحصول على الرسائل public static fileName = null; ccsid = 0; public static void main(String args[]) { MQFileReceiver mfs = new MQFileReceiver(); // تهيئة الاتصال mfs.initproperty(); // استلام الملفات mfs.runGoupReceiver(); // احصل على اسم البرنامج النصي للصدفة // String shellname = MQConfig.getValueByKey(fileName);// if( shellname!=null&&!"".equals(shellname)){// //استدعاء shell// ReadCmdLine.callShell(shellname);// }else{// System.out.println("ليس لها اسم الصدفة، تلقي الملفات فقط.");// } } public void runGoupReceiver() { Try { init(); getGroupMessages (); qmgr.commit(); System.out.println("/n تم استلام الرسائل بنجاح"); mqe) { mqe.printStackTrace(); حاول { System.out.println("/n النسخ الاحتياطي للمعاملة"); qmgr.backout(); ); System.exit(2); } } Catch (Exception e) { e.printStackTrace(); تهيئة معلومات اتصال الخادم * * @throws Exception */ public void init() throws Exception { /* تعيين خصائص MQEnvironment لاتصالات العميل */ MQEnvironment.hostname = host; MQEnvironment.channel =channel; إلى مدير قائمة الانتظار*/ qmgr = new MQQueueManager(qmgrName); قم بتعيين خيار فتح قائمة الانتظار للإدخال */ int opnOptn = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_FAIL_IF_QUIESCING /* فتح قائمة الانتظار للإدخال */ inQueue = qmgr.accessQueue(queueName, opnOptn, null, null, null); * قبول الوظيفة الرئيسية للملف * * @throws استثناء */ public void getGroupMessages() { /* تعيين خيارات الحصول على الرسالة */ gmo = new MQGetMessageOptions(); gmo.options = MQConstants.MQGMO_FAIL_IF_QUIESCING; / gmo.options = gmo.options + MQConstants.MQGMO_WAIT; /* تحديد حد وقت الانتظار */ gmo.waitInterval = 5000; /* الحصول على الرسائل فقط */ gmo.options = gmo.options + MQConstants.MQGMO_ALL_MSGS_AVAILABLE; gmo.options + MQConstants.MQGMO_LOGICAL_ORDER; gmo.matchOptions = MQConstants.MQMO_MATCH_GROUP_ID; /* إنشاء مخزن مؤقت للرسائل*/ inMsg = new MQMessage(); حاول { FileOutputStream fos = null; ); if (fos == null) { حاول { fileName = inMsg.getStringProperty("fileName"); String fileName_full = null; fileName_full = file_dir + RenameUtil.rename(fileName); fos = new FileOutputStream(new File(fileName_full)); int msgLength = inMsg.getMessageLength(); = بايت جديد[msgLength]; inMsg.readFully(buffer); fos.write(buffer, 0, msgLength); /* تحقق مما إذا كان هو معرف الرسالة الأخير*/ char x = gmo.groupStatus; .println ("آخر رسالة في المجموعة")؛ فاصل } inMsg.clearMessage(); (استثناء e) { System.out .println("استلم الرسالة بدون خاصية، لا تفعل شيئًا!"); inMsg.clearMessage(); } } else { int msgLength = inMsg.getMessageLength(); [msgLength]; inMsg.readFully(buffer.write(buffer, 0, msgLength); تحقق مما إذا كان هو معرف الرسالة الأخير*/ char x = gmo.groupStatus; if (x == MQConstants.MQGS_LAST_MSG_IN_GROUP) { System.out.println("آخر رسالة في المجموعة"); } } Catch (Exception e) { char x = gmo.groupStatus; MQConstants.MQGS_LAST_MSG_IN_GROUP) { System.out.println("آخر رسالة في المجموعة"); e.getMessage()); } } public void initproperty() { MQConfig config = new MQConfig().getInstance(); if (config.getMQ_MANAGER() != null) { qmgrName = config.getMQ_MANAGER(); ); Integer.valueOf(config.getMQ_PROT()); ccsid = Integer.valueOf(config.getMQ_CCSID()); file_dir = config.getFILE_DIR();