原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/agl_datasource_support_for_url
Oracle JDBCドライバでは、接続URLに
WebLogic Server 12.2.1.2.0 (PS2) より、URLは
https://blogs.oracle.com/WebLogicServer/entry/agl_datasource_support_for_url
Oracle JDBCドライバでは、接続URLに
@alias
を持つことができ、ホスト名やポート番号、サービス名といった情報を多数のデータソース間で共有する外部のtnsnames.oraファイルに配置することができます。筆者の知見では、(コンピュータ毎に1箇所で)接続情報をより簡単に管理するため、この機能は近年人気が出てきています。情報をさらに一箇所で集中管理するため、URLで @LDAP
を使い、接続情報をLDAPサーバから取得することができます。詳細はデータベースのJDBC開発者ガイドをご覧ください。Oracle® Database JDBC Developer's Guide 12c Release 1 (12.1)このURLフォーマットは汎用データソースならびにマルチ・データソースでサポートしていますが、Active GridLink (AGL) データソースではサポートしていませんでした。その理由は、AGLデータソースURLは長形式フォーマットのURLの中で
Data Sources and URLs
https://docs.oracle.com/database/121/JJDBC/urls.htm#JJDBC28267
Oracle® Database JDBC開発者ガイド 12cリリース1 (12.1)
データソースおよびURL
http://docs.oracle.com/cd/E57425_01/121/JJDBC/urls.htm#JJDBC28267
(SERVICE_NAME=value)
を持つ必要があったためです。WebLogic Server 12.2.1.2.0 (PS2) より、URLは
@alias
や @ldap
形式も利用できるようになりましたが、 @alias
や @ldap
を含まない短形式フォーマットはまだサポートされておらず、エラーが発生し動作しませんので、エイリアスやLDAPエントリに格納されたデータベース・サービス名を利用することを強く推奨します(SIDは使わないでください)。AGLのパフォーマンスを最適化するには、エイリアスやLDAPストアで負荷分散やリトライ回数、遅延などの機能を持つ長形式フォーマットのURLを使う必要があります。ALIAS の例
- 以下の構成を持つtnsnames.oraファイルを作成します。
通常、tns_entry=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=RAC-scan-address)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=service)))
$ORACLE_HOME/network/admin
に作成されます。 - 以下ののようなURLを使ってWebLogic Serverのデータソース・ディスクリプタを作成します。
jdbc:oracle:thin:@tns_entry
- 以下のシステムプロパティをWebLogic Serverコマンドラインに追加します。
-Doracle.net.tns_admin=$ORACLE_HOME/network/admin
LDAP の例
- LDAP/LDAPSのWebLogic Serverデータソース・ディスクリプタを以下のURLのように作成します。
jdbc:oracle:thin:@ldap://ldap.example.com:7777/sales,cn=OracleContext,dc=com
JDBC Driverの要件
ちょっと落とし穴があります。この機能をサポートするより賢いucp.jarファイルを使う必要があります。そのための方法は2つあります。- 12.1.0.2のucp.jarに対するWebLogic Serverのパッチを入手する
(Bug #2319035 - UCP DOESN'T SUPPORT ALIAS URL FOR RAC CLUSTER) - Oracle Database 12cR2のucp.jarファイルを待つ。GAになったタイミングでエントリを投稿する予定です。