Ein Datenbankprozess, eine Netzwerkverbindung oder ein Knoten kann ausfallen, während eine Anwendung gerade auf eine Antwort wartet. Transparent Application Continuity (TAC) soll bestimmte wiederherstellbare Unterbrechungen vor dem Client verbergen: Oracle verfolgt Session- und Transaktionszustand, erkennt Request-Grenzen und kann einen Request auf einer wiederhergestellten Verbindung wiederholen. Das ist keine Garantie für jeden Fehler, sondern ein kontrollierter Wiederholungsmechanismus mit Korrektheitsprüfungen.
Am Service aktivieren
TAC wird über ein Datenbank-Service-Attribut eingeschaltet: FAILOVER_TYPE=AUTO. Bei RAC sollte der Service mit bevorzugten und verfügbaren Instanzen passend zum gewünschten Ausfallziel definiert sein. Für TAC ist außerdem eine geeignete Zustandswiederherstellung zu planen; Oracle empfiehlt FAILOVER_RESTORE=AUTO. Welche Werte gelten, hängt von Datenbankversion, Treiber und Anwendung ab. Prüfen Sie daher das Service-Profil und die konkrete Client-Unterstützung, statt sich auf einen einzelnen Connect-String zu verlassen.
Side Effects und Grenzen beachten
Ein Request kann neben SQL auch externe Aktionen auslösen, etwa E-Mail, HTTP-Aufrufe oder Dateizugriffe. Eine blinde Wiederholung könnte solche Aktionen doppelt ausführen. TAC mit FAILOVER_TYPE=AUTO erkennt Side Effects und deaktiviert Replay für den betroffenen Abschnitt, bis eine neue sichere Grenze erkannt wird. Danach kann die Schutzwirkung wieder einsetzen. Das Verhalten muss im Anwendungstest überprüft werden, insbesondere bei PL/SQL-Paketen und Integrationen außerhalb der Datenbank.
Auch Session State zählt: NLS-Einstellungen, Rollen, Package State und andere veränderliche Parameter müssen zu Beginn eines Requests wiederherstellbar sein. In Oracle AI Database 26ai unterstützen Database Templates zusätzliche serverseitige Zustände; für TAC ist dafür FAILOVER_RESTORE=AUTO vorgesehen. Der tatsächliche Schutz hängt dennoch davon ab, ob der Client die Funktion unterstützt und der notwendige Keystore korrekt eingerichtet ist.
Ausfalltests, die etwas aussagen
- Service-Attribute, Pool-Konfiguration, Treiber und Datenbankversion dokumentieren.
- Eine typische Lese- und Schreibtransaktion unter kontrolliertem Knoten- oder Verbindungsabbruch testen.
- Commit-Ausgang, Antwort an den Client und mögliche doppelte externe Aktionen prüfen.
- Sessions mit geändertem Zustand und lange Requests in den Test aufnehmen.
- Replay- und Failover-Statistiken sowie die erlaubte Wiederherstellungszeit gegen das SLA messen.
TAC ergänzt Cluster- und Service-Hochverfügbarkeit um Wiederherstellung auf Request-Ebene. Das wertvollste Ergebnis ist nicht nur ein erfolgreicher Failover-Test, sondern eine klare Aussage, welche Requests innerhalb des vereinbarten Zeitfensters tatsächlich wiederholbar sind.
Weiterführend: Oracles Anleitung zur Transparent Application Continuity und zur Konfiguration von Application Continuity.