Guten Tag, ich habe ein Projekt geschrieben, um Park Queue Info von der IBM MQ zu erhalten, es hat jedoch einen Fehler beim Versuch, die Verbindung zu schließen, produziert. Es ist in java geschrieben. Unter Anwendung in der Ereignisanzeige auf dem MQ-Rechner werden zwei Fehler angezeigt. Sie lauten:
"Das Programm wurde abnormal beendet. Das Kanalprogramm 'system.def.surconn' wurde abnormal beendet. Schauen Sie sich frühere Fehlermeldungen für das Kanalprogramm 'system.def.surconn' in den Fehlerdateien an, um die Ursache des Fehlers zu ermitteln.
In der anderen Nachricht heißt es: "Fehler beim Empfang vom Host rnanaj (10.10.12.34) Es ist ein Fehler beim Empfang von Daten von rnanaj (10.10.12.34) über tcp/ip aufgetreten. Dies kann auf einen Kommunikationsfehler zurückzuführen sein. Der Rückgabewert des tcp/ip recv()-Aufrufs war 10054 (X'2746'). Notieren Sie diese Werte."
Dies muss etwas sein, wie ich versuche, zu verbinden oder die Verbindung zu schließen, unten habe ich meinen Code zu verbinden und zu schließen, irgendwelche Ideen?
Verbinden:
_logger.info("Start");
File outputFile = new File(System.getProperty("PROJECT_HOME"), "run/" + this.getClass().getSimpleName() + "." + System.getProperty("qmgr") + ".txt");
FileUtils.mkdirs(outputFile.getParentFile());
Connection jmsConn = null;
Session jmsSession = null;
QueueBrowser queueBrowser = null;
BufferedWriter commandsBw = null;
try {
// get queue connection
MQConnectionFactory MQConn = new MQConnectionFactory();
MQConn.setHostName(System.getProperty("host"));
MQConn.setPort(Integer.valueOf(System.getProperty("port")));
MQConn.setQueueManager(System.getProperty("qmgr"));
MQConn.setChannel("SYSTEM.DEF.SVRCONN");
MQConn.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
jmsConn = (Connection) MQConn.createConnection();
jmsSession = jmsConn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue jmsQueue = jmsSession.createQueue("PARK");
// browse thru messages
queueBrowser = jmsSession.createBrowser(jmsQueue);
Enumeration msgEnum = queueBrowser.getEnumeration();
commandsBw = new BufferedWriter(new FileWriter(outputFile));
//
String line = "DateTime\tMsgID\tOrigMsgID\tCorrelationID\tComputerName\tSubsystem\tDispatcherName\tProcessor\tJobID\tErrorMsg";
commandsBw.write(line);
commandsBw.newLine();
while (msgEnum.hasMoreElements()) {
Message message = (Message) msgEnum.nextElement();
line = dateFormatter.format(new Date(message.getJMSTimestamp()))
+ "\t" + message.getJMSMessageID()
+ "\t" + message.getStringProperty("pkd_orig_jms_msg_id")
+ "\t" + message.getJMSCorrelationID()
+ "\t" + message.getStringProperty("pkd_computer_name")
+ "\t" + message.getStringProperty("pkd_subsystem")
+ "\t" + message.getStringProperty("pkd_dispatcher_name")
+ "\t" + message.getStringProperty("pkd_processor")
+ "\t" + message.getStringProperty("pkd_job_id")
+ "\t" + message.getStringProperty("pkd_sysex_msg");
_logger.info(line);
commandsBw.write(line);
commandsBw.newLine();
}
}
Schließen:
finally {
IO.close(commandsBw);
if (queueBrowser != null) { try { queueBrowser.close();} catch (Exception ignore) {}}
if (jmsSession != null) { try { jmsSession.close();} catch (Exception ignore) {}}
if (jmsConn != null) { try { jmsConn.stop();} catch (Exception ignore) {}}
}