MQ Anschluss - 2009 Fehler
bin connectting den MQ mit folgenden code. Ich bin in der Lage, verbunden mit MQ erfolgreich. Mein Fall ist Stelle ich die Nachrichten zu MQ alle 1 min mal. Nach dem abklemmen der Kabel bekomme ich ein ResonCode Fehler aber IsConnected Eigenschaft zeigen, immer noch wahr. Ist das der richtige Weg ist, um zu überprüfen, ob die Verbindung noch angeschlossen ist ? Oder es am besten pratcices herum.
Würde ich mag, um die Verbindung zu öffnen, wenn die Anwendung gestartet wird, halten Sie es sich offen halten für immer.
public static MQQueueManager ConnectMQ()
{
if ((queueManager == null) || (!queueManager.IsConnected)||(queueManager.ReasonCode == 2009))
{
queueManager = new MQQueueManager();
}
zurück queueManager;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Verhalten der ein Fehler in WMQ client-Verbindung ist, dass beim Leerlauf angezeigt wird, werden angeschlossen, bis Sie einen API-Aufruf fehlschlägt oder die Verbindung mal aus. So isConnected() wird wahrscheinlich Bericht solange auf true, bis eine get -, put-oder Fragen rufen versucht wird und fehlschlägt, an welcher Stelle QMgr dann Bericht getrennt.
Die andere Sache zu beachten ist hier, dass 2009 nicht der einzige code, den Sie bekommen könnte. Es passiert zu sein, die Sie bekommen, wenn die Verbindung getrennt wird-aber es gibt Anschluss-codes für QMgr Herunterfahren, Kanal Herunterfahren, und eine Vielzahl von Ressourcen-und anderen Fehlern.
In der Regel eine Voraussetzung für eine Konstante Verbindung, die Sie würde wollen, wickeln Sie die Verbindung und Verarbeitung der message-Schleife in einen try/catch-block geschachtelt innerhalb einer while-Anweisung. Wenn Sie fangen eine Ausnahme andere als eine absichtliche beenden, schließen Sie die Objekte und QMgr, schlafen mindestens 5 Sekunden lang, dann Schleife um die Spitze, während die. Der Schlaf ist entscheidend, denn wenn man erwischt wird, in einem engen reconnect-Schleife und werfen Hunderte von Verbindungsversuchen an der QMgr, können Sie bringen Sie sogar ein mainframe QMgr in die Knie zu zwingen.
Alternative ist zu verwenden ein Fehler in WMQ v7 client und QMgr. Mit dieser Kombination, automatische Wiederherstellung der Verbindung ist konfigurierbar als ein-Kanal-Konfiguration.