Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理 11g リリース1 (10.3.4) B60997-02 |
|
前 |
次 |
WebLogic Serverは、接続時フェイルオーバーおよびロード・バランシングを使用するように構成されたデータ・ソースを使用する従来のアプリケーションに対して接続時フェイルオーバーを提供します。
接続時フェイルオーバーとロード・バランシングを行うように構成されたデータ・ソースを使用してWebLogic Serverと複数のOracle RACノードを接続するには、後述するように、Oracle RACクラスタ内の各Oracle RACインスタンスにOracle Thin DriverでJDBCデータ・ソースを構成します。図C-1は、システムの概要を示します。
図C-1 Oracle Thin Driverの接続時フェイルオーバーを使用したデータ・ソースの構成
ドメインを構成するには、管理コンソールか、または、WebLogic Scripting Tool (WLST)やJMXプログラムなどのお好きな方法を使用できます。
データ・ソースに接続が作成されると、Oracle Thin Driverによって使用するOracle RACインスタンスが決定されます。アプリケーションは接続を取得すると、JNDIツリーでデータ・ソースをルックアップして、データ・ソースからの接続をリクエストします。データ・ソースは、データ・ソース内の接続のプールから使用可能な接続を1つ選んで提供します。
以下の節では、Oracle RACの接続時フェイルオーバー機能を使用して接続の障害に対処する構成について説明します。この構成では、障害のケースによって、フェイルオーバーにかかる時間がTCPタイムアウトと同じ長さになる場合もあります。これは環境により数分間に及ぶ場合があります。
この構成を使用するには、以下の属性でWebLogicドメインにJDBCデータ・ソースを作成します。
接続時フェイルオーバーを行うように構成されたOracle Thin JDBC Driver 11g。例:
<url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS= (PROTOCOL=TCP)(HOST=lcqsol24)(PORT=1521))(ADDRESS=(PROTOCOL=TCP) (HOST=lcqsol25)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=off)) (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=snrac)))</url> <driver-name>oracle.jdbc.OracleDriver</driver-name>
ConnectionReserveTimeoutSeconds="120"
接続に対するアプリケーション・リクエストが、接続が利用できるまで120秒間待機できるようにします。
TestConnectionsOnReserve="true"
アプリケーションがデータ・ソースにある接続を予約する際に、データベース接続がテストされるようにします。この属性の詳細は、「予約時の接続テストによるフェイルオーバーの有効化」を参照してください。
別のOracle RACノードのフェイルオーバーを有効にする必要があります。
TestTableName="name_of_small_table"
。物理データベース接続のテストに使用される表の名前です。この属性の詳細は、「データ・ソースの接続テスト・オプション」を参照してください。
以下にサンプル構成コードを示します。
注意: 読みやすくするために改行が追加されています。 |
<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://xmlns.oracle.com/weblogic" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/domain/1.0/domain.xsd"> <name>oracleRACNonXAPool</name> <jdbc-driver-params> <url>jdbc:oracle:thin:@(DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) HOST=lcqsol24)(PORT=1521))(ADDRESS=(PROTOCOL=TCP) (HOST=lcqsol25)(PORT=152))(FAILOVER=on) (LOAD_BALANCE=off))(CONNECT_DATA=(SERVER=DEDICATED) (SERVICE_NAME=snrac)))</url> <driver-name>oracle.jdbc.OracleDriver</driver-name> <properties> <property> <name>user</name> <value>wlsqa</value> </property> </properties> <password-encrypted>{3DES}aP/xScCS8uI=</password-encrypted> </jdbc-driver-params> <jdbc-connection-pool-params> <test-connections-on-reserve>true</test-connections-on-reserve> <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name> <profile-type>4</profile-type> </jdbc-connection-pool-params> <jdbc-data-source-params> <jndi-name>oracleRACJndiName</jndi-name> <global-transactions-protocol>OnePhaseCommit </global-transactions-protocol> </jdbc-data-source-params> </jdbc-data-source>