Verhalten von Messaging-Engine und Server beim Verlust der Verbindung zu einem Datenspeicher konfigurieren
Wenn die Verbindung zwischen einer aktiven Messaging-Engine und ihrem Datenspeicher verloren geht, weil ein Fehler aufgetreten ist oder Sie die Datenbank für Wartungsarbeiten stoppen, können Sie durch Konfiguration des Servers für automatischen Neustart sicherstellen, dass die Messaging-Engine nach der Wiederherstellung der Verbindung ordnungsgemäß funktioniert.
Informationen zu diesem Vorgang
Das in diesem Artikel beschriebene Verhalten tritt nur ein, wenn die Messaging-Engine aktiv ist und exklusive Sperren für ihren Datenspeicher einrichtet hat.
Indem Sie die angepasste Eigenschaft "sib.msgstore.jdbcFailoverOnDBConnectionLoss" für eine Messaging-Engine definieren, können Sie das Verhalten der Messaging-Engine und ihres Hostservers beim Verlust der Verbindung zum Datenspeicher festlegen.Eigenschaftswert | Verhalten beim Verlust der Verbindung zum Datenspeicher |
---|---|
true (Standardeinstellung) |
Der High Availability Manager
stoppt die Messaging-Engine und ihren Hostanwendungsserver, wenn die
nächste Prüfung des Typs Ist aktiv des Stammgruppenservice
stattfindet (der Standardwert sind 120 Sekunden).
Wenn der Server von einem Node Agent überwacht wird und Sie den automatischen Neustart
in der Überwachungsrichtlinie für den Server aktiviert haben, wird der Server erneut gestartet.
Die Messaging-Engine wird gestartet, wenn ein entsprechender Server verfügbar ist.
Anmerkung: Nachrichten, die eine geringere Zuverlässigkeitsstufe als "Garantiert, persistent"
haben, werden von der Messaging-Engine möglicherweise in der Zeit zwischen den Prüfungen
Ist aktiv akzeptiert und können verloren gehen.
|
false | Die Messaging-Engine wird weiterhin ausgeführt und akzeptiert Anforderungen und versucht in regelmäßigen Abständen erneut, die Verbindung zum Datenspeicher wiederherzustellen. Werden weitere Anforderungen an die Messaging-Engine übergeben, während der Datenspeicher nicht verfügbar ist, können die Ergebnisse unvorhersehbar sein, und die Messaging-Engine kann einen inkonsistenten Zustand aufweisen, wenn die Verbindung zum Datenspeicher wiederhergestellt wird. Anmerkung: Wenn weitere Anforderungen an die Messaging-Engine
übergeben werden, kann selbst das nicht persistente Messaging scheitern, weil die Messaging-Engine
den Datenspeicher möglicherweise verwenden muss, um beispielsweise einer Nachricht
eine eindeutige ID zuzuordnen oder um nicht persistente Nachrichten aus dem Speicher zu verschieben.
|
![]() |
![]() Die Messaging-Engine wird weiterhin ausgeführt und akzeptiert Anforderungen und versucht in regelmäßigen Abständen erneut, die Verbindung zum Datenspeicher wiederherzustellen. Anmerkung: Unter dem Betriebssystem
z/OS, in dem die Hochverfügbarkeitsumgebung aktiv ist (die in Clustern zusammengefasste
WebSphere Application Server und DB-Gruppen mit gemeinsamer Datennutzung enthält),
wird die Einstellung false bevorzugt und empfohlen.
Ein Szenario, in dem die Einstellung false nicht geeignet ist,
ist ein Cluster mit nur einem Member und ohne Server für die Failover-Messaging-Engine.
|
Vorgehensweise
- Klicken Sie auf , um zu der Anzeige mit den angepassten Eigenschaften für die Messaging-Engine zu navigieren.
- Klicken Sie auf Neu.
- Geben Sie sib.msgstore.jdbcFailoverOnDBConnectionLoss im Feld "Name" und true im Feld "Wert" ein.
- Klicken Sie auf OK.
- Speichern Sie Ihre Änderungen in der Masterkonfiguration.
- Starten Sie den Anwendungsserver erneut.
- Wenn Sie einen Cluster haben, wiederholen Sie die vorherigen Schritte, um diese Eigenschaft für jede Messaging-Engine im Cluster hinzuzufügen.
Ergebnisse
Wenn der Server erneut gestartet werden soll, müssen Sie sicherstellen, dass Automatischer Neustart in der Überwachungsrichtlinie für den Server ausgewählt ist.
Nächste Schritte
Wenn ein Server in dieser Situation erneut gestartet wird, erscheinen Nachrichten mit der ID CWSID0039E in den JVM-Protokollen für den Server.
Klicken Sie nach einem Serverneustart auf , um den Status der Messaging-Engine anzuzeigen. Vergewissern Sie sich, dass die Messaging-Engine erneut gestartet wurde und aktiv ist.
Wenn der Server Member eines Clusters ist, vergewissern Sie sich, dass die Cluster-Member immer noch für hohe Verfügbarkeit aktiviert sind, indem Sie die Anweisungen im Artikel Hohe Verfügbarkeit verwalten, wenn Messaging-Engines nicht gestartet werden können befolgen.
Sie können Ihr System so optimieren, dass der Verlust der Datenbankverbindung schnell erkannt wird und die Messaging-Engine eine angemessene Zeit auf die Wiederverfügbarkeit des Datenspeichers wartet, bevor sie versucht, einen anderen Server zu starten.