19.1.1 Oracle RACを使用したOracleへの接続
Oracle RACを使用したOracleへの接続方法は,Oracleのバージョン,または負荷分散に使用する機能によって異なります。なお,接続できるトランザクションの種類はローカルトランザクションです。
Oracleのバージョン,負荷分散に使用する機能および使用するRARファイルの対応については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.6.7 Oracleと接続する場合の前提条件と注意事項」を参照してください。
負荷分散に使用する機能ごとに,Oracleへの接続方法について説明します。
(1) アプリケーションサーバの機能を使用した接続
アプリケーションサーバのクラスタコネクションプール機能を使用して,Oracle RACに接続します。アプリケーションサーバがデータベースアクセスの負荷を分散します。
クラスタコネクションプール機能の詳細については,19.1.2以降の説明を参照してください。
(a) 負荷分散処理の流れと設定
クラスタコネクションプール機能を使用した場合の負荷分散処理の流れと設定を次の図に示します。
この図では,3台構成のOracle RACシステムで,データベースノード1にはインスタンス1,データベースノード2にはインスタンス2,データベースノード3にはインスタンス3があります。データベースに接続するための設定を次に示します。
-
インスタンス1,2,3に対応したメンバリソースアダプタ用DB Connector M1,M2,M3を生成します。また,メンバリソースアダプタに振り分ける機能を持つルートリソースアダプタ用DB Connector Rも生成します。
-
J2EEアプリケーションはルートリソースアダプタ用DB Connector Rに関連づけます。
この設定によって,J2EEアプリケーション1,2からのデータベースアクセスはデータベースノード1,2,3に分散されます。
(b) データベース障害発生時と回復時の動作
データベース障害が発生した場合,アプリケーションサーバが障害を検知します。障害が発生したデータベースに対応するメンバリソースアダプタが閉塞され,残っているインスタンスで処理が続行されます。
データベース障害が回復するとアプリケーションサーバは自動で閉塞を解除します。また,手動でも閉塞を解除できます。
(2) Oracleの機能を使用した接続
DB ConnectorからOracle RACに接続し,Oracle RACの機能でデータベースアクセスの負荷を分散します。
(a) 負荷分散処理の流れと設定
Oracle RACの機能を使用した場合の負荷分散処理の流れと設定を次の図に示します。
この図では,3台構成のOracle RACシステムで,データベースノード1にはインスタンス1,データベースノード2にはインスタンス2,データベースノード3にはインスタンス3があります。データベースに接続するための設定について説明します。
-
それぞれのインスタンスに分散して接続するDB Connector Aを生成します。
-
DB Connector Aは,グローバルデータベース名またはサービス名を使用するように設定します。
-
J2EEアプリケーション1,および2をDB Connector Aに関連づけます。
この設定によって,J2EEアプリケーション1,および2からのデータベースアクセスはデータベースノード1,2,3に分散されます。
(b) データベース障害発生時と回復時の動作
データベース障害が発生した場合,Oracle RAC機能によって障害が発生したインスタンスが切り離され,残っているインスタンスで処理が続行されます。
アプリケーションサーバのコネクションプールを使用している場合,データベース回復時には次のどちらかの操作を実行してください。コネクションプールがクリアされ,これ以降のアクセスが正常に分散されます。
-
cjclearpoolコマンドを実行する。
-
J2EEサーバを再起動する。