[WLS, Database] AGL Datasource Support for URL with @alias or @LDAP

原文はこちら。
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)
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
このURLフォーマットは汎用データソースならびにマルチ・データソースでサポートしていますが、Active GridLink  (AGL) データソースではサポートしていませんでした。その理由は、AGLデータソースURLは長形式フォーマットのURLの中で (SERVICE_NAME=value) を持つ必要があったためです。
WebLogic Server 12.2.1.2.0 (PS2) より、URLは @alias@ldap 形式も利用できるようになりましたが、 @alias@ldap を含まない短形式フォーマットはまだサポートされておらず、エラーが発生し動作しませんので、エイリアスやLDAPエントリに格納されたデータベース・サービス名を利用することを強く推奨します(SIDは使わないでください)。AGLのパフォーマンスを最適化するには、エイリアスやLDAPストアで負荷分散やリトライ回数、遅延などの機能を持つ長形式フォーマットのURLを使う必要があります。

ALIAS の例

  1. 以下の構成を持つtnsnames.oraファイルを作成します。
    tns_entry=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=RAC-scan-address)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=service)))
    通常、$ORACLE_HOME/network/adminに作成されます。
  2. 以下ののようなURLを使ってWebLogic Serverのデータソース・ディスクリプタを作成します。
    jdbc:oracle:thin:@tns_entry
  3. 以下のシステムプロパティをWebLogic Serverコマンドラインに追加します。
    -Doracle.net.tns_admin=$ORACLE_HOME/network/admin

LDAP の例

  1. 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になったタイミングでエントリを投稿する予定です。

0 件のコメント:

コメントを投稿