![[IBM i]](../images/iseries.gif)
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Transaktions- und Kompensationsprotokolle in einer relationalen Datenbank für Hochverfügbarkeit speichern
Sie können Ihre WebSphere Application Server-Transaktions- und Kompensationsprotokolle in einer relationalen Datenbank speichern, anstatt sie als Betriebssystemdateien zu speichern. Dieses Feature bietet Unterstützung der Hochverfügbarkeit ohne Verwendung eines gemeinsam genutzten Dateisystems.
Informationen zu diesem Vorgang
Der WebSphere Application Server-Transaktionsservice schreibt für jede globale Transaktion, an der zwei oder mehr Ressourcen beteiligt sind oder die auf mehrere Server verteilt ist, Informationen in das Transaktionsprotokoll. Diese Transaktionen werden entweder von den Anwendungen oder von dem Container, in denen bzw. in dem sie implementiert werden. Der Transaktionsservice verwaltet Transaktionsprotokolle, um die Transaktionsintegrität sicherzustellen. In der Vorbereitungsphase einer verteilten Transaktion werden Informationen in die Transaktionsprotokolle geschrieben, damit der Transaktionsservice, die Protokolle verwenden kann, um alle unbestätigten Transaktionen zu wiederholen, falls ein WebSphere Application Server mit aktiven Transaktionen nach einem Fehler erneut gestartet wird. Dadurch kann das gesamte System wieder in einen konsistenten Zustand gebracht werden.
In früheren Releases von WebSphere Application Server wurden die Transaktionsprotokolle als Betriebssystemdateien gespeichert. In WebSphere Application Server Version 8.5.5 und höher bleibt diese Konfiguration die Standardkonfiguration. Sie können die Transaktionsprotokolle auch in einer relationalen Datenbank speichern. Diese Konfigurationsoption wird hauptsächlich für eine Hochverfügbarkeitsumgebung verwendet. In Vorgängerreleases von WebSphere Application Server setzte die Unterstützung für Hochverfügbarkeitstransaktionen die Verwendung eines gemeinsam genutzten Dateisystems zum Hosten der Transaktionsprotokolle voraus, z. b. einen über NFSv4 angehängten NAS (Network-attached Storage) oder ein SAN (Storage Area Network). Mit diesem Feature können Sie ihre Hochverfügbarkeitsdatenbank als gemeinsam genutztes Repository für die Transaktionsprotokolle verwenden,insbesondere, wenn Sie bereits in Hochverfügbarkeitsdatenbanktechnologie investiert haben, und haben somit eine Alternative zur Verwendung eines gemeinsam genutzten Dateisystems.
In der aktuellen Implementierung wird die Transaktionsprotokollierung inaktiviert, wenn nicht erwartete JDBC-Ausnahmen von der Hauptwiederherstellungsprotokollfunktion festgestellt werden, und der Server muss heruntergefahren werden, damit unvollständige Transaktionen wiederhergestellt werden können. Es wird kein Versuch unternommen, die Verbindung wiederherzustellen, bis der Server erneut gestartet wurde. Die aktuelle Implementierung versucht auch nicht festzustellen, ob die Bedingung temporär ist.
In WebSphere Application Server Version 8.5.5 und höher können Sie eine ähnliche Funktion nutzen, die ebenfalls für Kunden konzipiert wurde, die in einer Hochverfügbarkeitsumgebung arbeiten. Mit dieser Funktion können Sie die Kompensationswiederherstellungsprotokolle in einer relationalen Datenbank speichern. Der WebSphere Application Server-Kompensationsservice erlaubt Anwendungen auf unterschiedlichen Systemen, Aktivitäten zu koordinieren, die flexibler verbunden sind als atomare Transaktionen. Er speichert Informationen, die für die Durchführung einer Kompensation nach einem Systemausfall erforderlich sind, in seinen eigenen dedizierten Wiederherstellungsprotokollen.

(2 * die Anzahl potenzieller Server, die über den Peer wiederhergestellt werden) + 2
Diese maximale Poolgröße sorgt für eine ausreichende Anzahl an Verbindungen
zur Datenbank, um alle zugehörigen Transaktionsprotokolle schließen zu können. Wenn Sie die maximale Poolgröße nicht auf diesen Wert gesetzt haben, wird möglicherweise
die Fehlernachricht J2CA0045E angezeigt, aus der hervorgeht, dass nicht genügend Verbindungen verfügbar sind. gotchaVorgehensweise
- AppClusterMember1
- AppClusterMember2
- AppClusterMember3
- AppClusterMember4
- App1 für AppClusterMember1
- App2 für AppClusterMember2
- App3 für AppClusterMember3
- App4 für AppClusterMember4
Führen Sie die folgenden Schritte aus:
Beispiel
Clustername | Servername | Transaktionsprotokolltabelle | Kompensationsprotokolltabelle |
---|---|---|---|
AppCluster | AppClusterMember1 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App1 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App1 |
AppClusterMember2 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App2 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App2 | |
AppClusterMember3 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App3 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App3 | |
AppClusterMember4 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App4 | custom://com.ibm.rls.jdbc.SQLRecoveryLog?datasource=jdbc/tranlog,tablesuffix=App4 |
- AppClusterMember1
- AppClusterMember2
- AppClusterMember3
- AppClusterMember4
- WAS_TRAN_LOGApp1
- WAS_TRAN_LOGApp2
- WAS_TRAN_LOGApp3
- WAS_TRAN_LOGApp4
- WAS_PARTNER_LOGApp1
- WAS_PARTNER_LOGApp2
- WAS_PARTNER_LOGApp3
- WAS_PARTNER_LOGApp4
- WAS_COMP_LOGApp1
- WAS_COMP_LOGApp2
- WAS_COMP_LOGApp3
- WAS_COMP_LOGApp4