| Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理の構成と管理 11gリリース1 (10.3.6) B60997-10 |
|
![]() 前 |
![]() 次 |
この章では、接続時フェイルオーバーとロード・バランシングを使用するように構成されたデータ・ソースを使用している従来のアプリケーションに対してWebLogic Serverで接続時フェイルオーバー(非推奨)が機能する方法について説明します。
|
注意: 新規アプリケーションでは、同じ機能を持つGridLinkデータ・ソースを使用する必要があります。GridLinkデータ・ソースについておよび『データベースJDBC開発者ガイド』の暗黙的な接続キャッシングに関する項を参照してください。 |
接続時フェイルオーバーおよびロード・バランシング用に構成されたデータ・ソースを使用してWebLogic Serverを複数のOracle RACノードに接続するには、次の各項で説明するように、Oracle RACクラスタでOracle Thinドライバを使用して、Oracle RACインスタンス別にJDBCデータ・ソースを構成します。図D-1は、システムの概要を示しています。
管理コンソール、またはドメインの構成に優先的に使用したいその他の手段、たとえばWebLogic Scripting Tool (WLST)またはJMXプログラムが使用できます。
データ・ソースに接続が作成されると、使用するOracle RACインスタンスがOracle Thinドライバによって決定されます。アプリケーションは、接続を取得すると、JNDIツリー上でデータ・ソースを検索して、そのデータ・ソースからの接続をリクエストします。データ・ソースは、データ・ソース内の接続プールから使用可能な接続の1つを配信します。
次の各項では、Oracle RACの接続時フェイルオーバー機能を使用して接続の失敗を処理する構成について説明します。この構成では、失敗した場合のフェイルオーバー時間はTCPタイムアウトの時間になりますが、これは使用環境に応じて数分かかる場合もあります。
この構成を使用するには、次の属性が指定されているWebLogicドメインにJDBCデータ・ソースを作成します。
接続時フェイルオーバー用に構成されたOracle JDBC Thinドライバ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>