Lassen Sie uns zunächst kurz Websphere MQ und seine Installation und Verwendung vorstellen.
websphere mq: Wird zur plattformübergreifenden Übertragung von Informationen verwendet.
1 Installieren Sie Websphere MQ und starten Sie
2 Websphere MQ erstellt einen Warteschlangenmanager (z. B. MQSI_SAMPLE_QM).
3. Erstellen Sie den Warteschlangentyp und wählen Sie den lokalen Typ aus (z. B. lq).
4. Legen Sie den Kanaltyp fest und wählen Sie Serververbindung aus (z. B. BridgeChannel).
Schauen wir uns als Nächstes den Beispielcode an:
MQFileReceiver.javapackage com.mq.dpca.file; import java.io.FileOutputStream; 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-Gruppenempfangsdateifunktion * Aktive Abfrage */public class MQFileReceiver { private MQQueueManager qmgr; // Übertragungswarteschlange private String queueName = ""; // Warteschlangenname private String host = ""; // private int port = 1414; // Listener-Portnummer private String channel = "" // Kanalname private String qmgrName = ""; // Warteschlangenmanager private MQMessage inMsg; // Nachrichtenpuffer erstellen private static String fileName = null; ccsid = 0; private static String file_dir = null; /** * Programmeintrag* * @param args */ public static void main(String args[]) { MQFileReceiver mfs = new MQFileReceiver(); //Initialisieren Sie die Verbindung mfs.initproperty(); //Empfangen Sie den Shell-Skriptnamen// String shellname = MQConfig.getValueByKey(fileName);/ if( shellname!=null&&!"".equals(shellname)){// //Shell aufrufen// ReadCmdLine.callShell(shellname);// }else{// System.out.println("keinen Shellnamen haben, nur Dateien empfangen.");// } } public void runGoupReceiver() { try { init(); (); qmgr.commit(); System.out.println("/n Nachrichten erfolgreich empfangen"); mqe) { mqe.printStackTrace(); try { System.out.println("/n Backing out Transaction"); ); System.exit(2); } fangen (Ausnahme e) { e.printStackTrace(2); Serververbindungsinformationen initialisieren * * @throws Exception */ private void init() throws Exception { /* MQEnvironment-Eigenschaften für Client-Verbindungen festlegen */ MQEnvironment.port = port; zum Warteschlangenmanager*/ qmgr = new MQQueueManager(qmgrName); Legen Sie die Option zum Öffnen der Warteschlange für die Eingabe fest */ int opnOptn = MQConstants.MQOO_INPUT_AS_Q_DEF | * Akzeptieren Sie die Hauptfunktion der Datei * * @throws Ausnahme */ public void getGroupMessages() { /* Setze Nachrichtenoptionen */ gmo = new MQGetMessageOptions(); gmo.options = gmo.options + MQGMO_SYNCPOINT; /* Auf Nachrichten warten * / gmo.options = gmo.options + MQConstants.MQGMO_WAIT; /* Wartezeitlimit festlegen */ gmo.waitInterval = 5000; /* Nur Nachrichten abrufen */ gmo.options = gmo.options + MQGMO_ALL_MSGS_AVAILABLE; /* Nachrichten in Bearbeitungsreihenfolge abrufen gmo.options + MQConstants.MQGMO_LOGICAL_ORDER; gmo.matchOptions = MQConstants.MQMO_MATCH_GROUP_ID; /* Nachrichtenpuffer erstellen*/ inMsg = new MQMessage(); try { FileOutputStream fos = null; /* Process group message*/ while (true) { try { inQueue.get(inMsg, gmo ); if (fos == null) { try { fileName = inMsg.getStringProperty("fileName"); String fileName_full = file_dir + RenameUtil.rename(new FileOutputStream(new File(fileName_full)); = neues Byte[msgLength]; inMsg.readFully(buffer); fos.write(buffer, 0, msgLength); /* Überprüfen Sie, ob es sich um die letzte Nachrichtenkennung handelt*/ char x = gmo.groupStatus; if (x == MQConstants.MQGS_LAST_MSG_IN_GROUP) { System.out .println ("Letzte Nachricht in der Gruppe"); break; (Ausnahme e) { System.out .println("Empfangen Sie die Nachricht ohne Eigenschaft, tun Sie nichts!"); int msgLength = inMsg.getMessageLength(); byte[] buffer = neues Byte [msgLength]; inMsg.readFully(buffer); fos.write(buffer, 0, msgLength); Überprüfen Sie, ob es sich um die letzte Nachrichtenkennung handelt*/ char x = gmo.groupStatus; if (x == MQConstants.MQGS_LAST_MSG_IN_GROUP) { System.out.println("Last Msg in Group"); } } Catch (Ausnahme e) { char x = gmo.groupStatus; if (x == MQConstants.MQGS_LAST_MSG_IN_GROUP) { System.out.println("Last Msg in Group"); if (fos != null) fos.close(); e.getMessage()); } } public void initproperty() { MQConfig config = new MQConfig().getInstance(); if (config.getMQ_MANAGER() != null) { qmgrName = config.getMQ_QUEUE_NAME(); channel = config.getMQ_HOST_NAME( ); Port = Integer.valueOf(config.getMQ_PROT()); ccsid = Integer.valueOf(config.getMQ_CCSID());