2. Inhalt
• Anforderungen und Wünsche
• Lösungen von Oracle
– Transparent Application Failover (TAF)
– Fast Connection Failover (FCF)
• Vergleich
• Quellen
Copyright TEAM, Paderborn Feb-07 Seite 2
3. Anforderungen und Wünsche
• Die Datenquelle sollte immer verfügbar sein ! [Hochverfügbar ☺]
• Keine Anpassungen an die Applikation bzgl. der gewählten
Methodik zur Sicherstellung der Hochverfügbarkeit
• Connection Pooling sollte möglich sein
• Die laufenden Applikationen sollten keinerlei Auswirkung eines
Ausfalls oder einer Stale Connection bemerken
Copyright TEAM, Paderborn Feb-07 Seite 3
4. Randbedingungen – Application Server
• Verwendung eines Application Servers* setzt eine Java
Implementierung des Datenbanktreibers voraus.
• Hochverfügbarkeit muss als Teil der JDBC Treibers implementiert
und ggfs. des Application Servers angeboten werden.
* Betrachtet wird hier ein Java EE / J2EE Application Server
Copyright TEAM, Paderborn Feb-07 Seite 4
5. Randbedingungen - Architektur
EJB
JSP
Session Beans
Connection Pool
AS DB
Connect wird z. Z. verwendet
Connect wartet auf Verwendung
Copyright TEAM, Paderborn Feb-07 Seite 5
6. Lösungen von Oracle zur hochverfügbaren
Datenquellen
Oracle bietet in diesem Umfeld folgende Möglichkeiten:
– Transparent Application Failover
– Fast Connection Failover
Copyright TEAM, Paderborn Feb-07 Seite 6
7. Transparent Application Failover (TAF)
• Transparent Application Failover ermöglicht einer Application
automatisch einen Reconnect auf eine andere Datenbankinstanz
nach einem Verbindungsverlust durchzuführen.
• Versucht ein Client eine aufgebaute Verbindung zu nutzen, die
fehlerhaft ist, so wird durch TAF automatisch eine neue
Verbindung zu einer anderen Instanz aufgebaut.
Copyright TEAM, Paderborn Feb-07 Seite 7
8. TAF –Reconnect mit Oracle Real Application Cluster
Im Fehlerfall wandern die entsprechenden Verbindungen auf eine andere Instanz.
Copyright TEAM, Paderborn Feb-07 Seite 8
9. TAF – Failover Level
• SESSION (Login Failover)
– Client wird automatisch auf den nächsten verfügbare Knoten
reconnected
• SELECT (Statement Failover)
– Ausfall erfolgt bei der Ausführung einer Abfrage
– Client wird automatisch auf den nächsten verfügbare Knoten
reconnected
– Abfrage lauft auf dem nächsten Knoten weiter
Grundsätzlich muss auf offenen Transaktionen ein Rollback erfolgen,
es wird eine ‚ORA-25402: transaction must roll back‘
Exception geworfen.
Copyright TEAM, Paderborn Feb-07 Seite 9
11. TAF - Eigenschaften
Unterstützung für: Keine Unterstützung für:
• User Session • Aktive Transaktion
• Aktive Cursor, die gerade • PL SQL Package – Variablen
ausgeführt werden • Connection Pooling
• OCI (JDBC/OCI – Thick) • JDBC – Thin
Beim Einsatz des Oracle JDBC/OCI Treibers ist TAF immer aktiviert !
Copyright TEAM, Paderborn Feb-07 Seite 11
12. Fast Connection Failover (FCF)
• Fast Connection Failover ermöglicht es ungültige Verbindungen
festzustellen und diese Verbindungen aus einem Connection
Pool zu bereinigen.
• Ziel ist es ungültige Verbindungen in einem Pool zu minimieren
bzw. auszuschließen, um so nur gültige Verbindungen den
Applikationen, die den Pool nutzen zu Verfügung zu stellen.
Copyright TEAM, Paderborn Feb-07 Seite 12
13. FCF – ONS Service Down Notification
ONS
ONS Connection Pool
ONS
AS
RAC
Cleanup
Copyright TEAM, Paderborn Feb-07 Seite 13
14. FCF – ONS Service Up Notification
ONS
ONS Connection Pool
OK
ONS
AS
RAC
Rebalancing
Copyright TEAM, Paderborn Feb-07 Seite 14
15. FCF - Randbedingungen
• Verwendung des Implicit Connection Cache ist FCF aktiv
• Innerhalb des Connect String muss der Service Name verwendet
werden; Keine SID
• Database Release 10g (R1 oder R2) Real Application Cluster DB
• Oracle Notification Services muss auf dem JDBC Client
(Application Server) verfügbar sein.
Copyright TEAM, Paderborn Feb-07 Seite 15
19. FCF – Konfiguration des ONS
Je nach Produkt und Version existieren zur Zeit unterschiedliche
Konfigurationsdateien für die Bereitstellung von ONS:
Produkt und Version Konfigurationsdatei
RAC 10gR1 und 10gR2 $ORACLE_HOME/opmn/conf/ons.config
OracleAS 10gR2 $ORACLE_HOME/opmn/ons.conf
OracleAS 10gR3 $ORACLE_HOME/opmn/conf/opmn.xml
Copyright TEAM, Paderborn Feb-07 Seite 19
20. FCF – Konfiguration des ONS (Beispiele)
Oracle 10gR2 RAC
racgons add_config rac_node2.devbrain.team-pb.de:6200
OracleAS 10g R3
<notification-server>
<port local="6104" remote="6204" request="6007"/>
<ssl enabled="false" wallet-file="$ORACLE_HOMEopmnconfssl.wltdefault"/>
<topology>
<nodes list="mt_node1.devbrain.team-pb.de:6200,rac_node1.devbrain.team-
pb.de:6200,rac_node2.devbrain-team-pb.de:6200"/>
</topology>
</notification-server>
Quelle: Oracle Application Server 10g Fast Connection Failover Configuration Guide
Copyright TEAM, Paderborn Feb-07 Seite 20
21. FCF – Test der ONS Kommunikation
Oracle RAC
$ORACLE_HOME/opmn/bin/onsctl ping
$ORACLE_HOME/opmn/bin/onsctl debug
OracleAS
$ORACLE_HOME/opmn/bin/opmnctl ping
$ORACLE_HOME/opmn/bin/opmnctl debug
ONS
ONS Connection Pool
ONS
AS
RAC
Copyright TEAM, Paderborn Feb-07 Seite 21
22. Vergleich FCF vs TAF
1. Unabhängigkeit vom Treiber
FCF (JDBC/Thin und JDBC/OCI); TAF nur als JDBC/OCI
2. Application-Level Connection Retries
TAF führt einen Reconnect auf OCI/Net Level aus
3. Integration mit ‚Implizit Connection Cache‘
TAF arbeitet pro Verbindung; Keine Notification möglich.
4. Load Balancing von neuen Verbindungen
Keine Unterstützung mit TAF
5. Transaction Management
Benötigt ein Rollback der Application, bei einer offenen Transaction.
Copyright TEAM, Paderborn Feb-07 Seite 22
23. Kann ich nicht beides nutzen ?
Quelle: Oracle Database JDBC Developer‘s Guide and Reference
Copyright TEAM, Paderborn Feb-07 Seite 23
24. Anforderungen und Wünsche
• RAC
Die Datenquelle sollte immer verfügbar sein ! [Hochverfügbar ☺]
• Keine Anpassungen an die Applikation bzgl. der gewählten
FCF
Methodik zur Sicherstellung der Hochverfügbarkeit
• Connection Pooling sollte möglich sein
• Die laufenden Applikationen sollten keinerlei Auswirkung eines
Ausfalls oder einer Stale Connection bemerken
ET RY
R
Copyright TEAM, Paderborn Feb-07 Seite 24
25. Quellen
Oracle Database 10g JDBC Documentation
OC4J 10g (10.1.3.x) Documentation
OTN - OracleAS High Availability
OC4J Data Sources: Implicit Connection Caching and Fast Connection Failover
Using TAF in Oracle Real Application Cluster
Oracle Application Server 10g Fast Connection Failover Configuration Guide
Copyright TEAM, Paderborn Feb-07 Seite 25
26. Vielen Dank
für Ihre Aufmerksamkeit!
Hermann-Löns-Str. 88
33104 Paderborn
Fon: 05254 / 8008-0
Fax: 05254 / 8008-19
eMail: team@team-pb.de
www.team-pb.de