原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/migrating_from_generic_data_source
以前、RAC接続用のマルチ・データソースからActive GridLink for RAC(AGL)へ移行する方法についてエントリを書きました。両者ともOracle RACをサポートしている古いデータソース・テクノロジーからより新しいテクノロジーへ移行するために必要な内容ですが、現在この情報はドキュメントで公開されています。
アプリケーションを変更する必要はないはずです。標準適なアプリケーションはデータソースをJODIから検索し、データソースを使って接続を取得するためです。JNDI名の変更はありません。
構成に対する唯一の必要な変更及び必要な情報は、一般的にデータベース管理者から提供されます。必要な情報は新しいURLです。RACクラスタのONS(Oracle Notification Service)の構成が必要になる場合があります。後者は以下の組み合わせで実行している場合にのみ必要です。
GENERIC(汎用)データソースからAGLデータソースへの移行にあたっては、WLSTを利用することを推奨します。URLをJDBCDriverParamsオブジェクト内で変更しなければなりません。新しいJDBCOracleParamsオブジェクト(汎用データソースでは通常存在しません)では、FANを有効にして、必要に応じてONS情報を設定する必要があります。
以下はWLSTスクリプトのサンプルです。この例では新しい構成値をハードコーディングしていますが、パラメータ化すれば、複数のデータソースを取り扱うにあたって柔軟性を持たせることができるでしょう。ONS用にOracle walletを使っている場合、JDBCOracleParamsオブジェクトも追加する必要があります。
管理コンソールでは、データベース・タイプは読み取り専用であり、データベースタイプを変更することはできません。URLを設定し、FANの有効化チェックボックスをONにし、ONS情報を設定することで回避を試行することができますが、12.2.1では管理コンソールからDatasource Typeをリセットする方法はありません。この値は他の全てに優先します。
https://blogs.oracle.com/WebLogicServer/entry/migrating_from_generic_data_source
以前、RAC接続用のマルチ・データソースからActive GridLink for RAC(AGL)へ移行する方法についてエントリを書きました。両者ともOracle RACをサポートしている古いデータソース・テクノロジーからより新しいテクノロジーへ移行するために必要な内容ですが、現在この情報はドキュメントで公開されています。
Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)スタンドアロンのデータベースからOracle RACクラスタにデータベース環境が変わっているお客様もたくさんいらっしゃいます。この場合、GENERIC(汎用)データソースからAGLデータソースへの移行です。この移行は非常にシンプルです。
Migrating from Multi Data Source to Active GridLink
http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#JDBCA690
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
マルチ・データ・ソースからActive GridLinkへの移行
http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#BABHJBGJ
アプリケーションを変更する必要はないはずです。標準適なアプリケーションはデータソースをJODIから検索し、データソースを使って接続を取得するためです。JNDI名の変更はありません。
構成に対する唯一の必要な変更及び必要な情報は、一般的にデータベース管理者から提供されます。必要な情報は新しいURLです。RACクラスタのONS(Oracle Notification Service)の構成が必要になる場合があります。後者は以下の組み合わせで実行している場合にのみ必要です。
- 11gドライバもしくはOracle Database 11gを使う場合。Auto-ONSはドライバとデータベースサーバ間のプロトコルフローに依存します。この機能は12cで追加されました。
- 12.1.3以前のWebLogic Serverを使う場合。Auto-ONSはWebLogic Server 12.1.3からサポートされています。
- SSL通信でOracle walletを使っている場合。walletの構成にあたってはONS情報の構成も必要です。
- 複雑なONSのトポロジーで実行する場合。一般に、auto-ONSは必要とするものを理解してくれますが、時として正確に指定しなければならない場合があります。WebLogic Server 12.2.1では、ONS構成の拡張を使ってプロパティノードリストを使って正確なトポロジーを指定することができます。詳細は以下のリンクをご覧下さい。
Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)
Configure ONS Host and Port
http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
ONSホストおよびポートの構成
http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
GENERIC(汎用)データソースからAGLデータソースへの移行にあたっては、WLSTを利用することを推奨します。URLをJDBCDriverParamsオブジェクト内で変更しなければなりません。新しいJDBCOracleParamsオブジェクト(汎用データソースでは通常存在しません)では、FANを有効にして、必要に応じてONS情報を設定する必要があります。
以下はWLSTスクリプトのサンプルです。この例では新しい構成値をハードコーディングしていますが、パラメータ化すれば、複数のデータソースを取り扱うにあたって柔軟性を持たせることができるでしょう。ONS用にOracle walletを使っている場合、JDBCOracleParamsオブジェクトも追加する必要があります。
WebLogic Server12.2.1では、JDBCResourceレベルで明示的なデータソースタイプがあります。このデータソースタイプにGENERICを設定すると、# java weblogic.WLST file.py
import sys, socket, os
hostname = socket.gethostname()
datasource="JDBC Data Source-0"
connect("weblogic","welcome1","t3://"+hostname+":7001")
edit()
startEdit()
cd("/JDBCSystemResources/" + datasource )
targets=get("Targets")
set("Targets",jarray.array([], ObjectName))
save()
activate()
startEdit()
cd("/JDBCSystemResources/" + datasource + "/JDBCResource/" +
datasource + "/JDBCDriverParams/" + datasource )
set("Url","jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(" +
"ADDRESS=(PROTOCOL=TCP)(HOST=dbhost)(PORT=1521)))" +
"(CONNECT_DATA=(SERVICE_NAME=otrade)))")
cd("/JDBCSystemResources/" + datasource + "/JDBCResource/" +
datasource + "/JDBCOracleParams/" + datasource )
set("FanEnabled","true")
set("OnsNodeList","dbhost:6200")
#cd("/JDBCSystemResources/" + datasource + "/JDBCResource/" +
# datasource )
#set("DatasourceType", "AGL")
save()
activate()
startEdit()
cd("/JDBCSystemResources/" + datasource )
set("Targets", targets)
save()
activate()
set("DatasourceType", "AGL")
を使って再設定しなければなりません。. 上記のサンプルでは、当該行をコメントアウトしています。管理コンソールでは、データベース・タイプは読み取り専用であり、データベースタイプを変更することはできません。URLを設定し、FANの有効化チェックボックスをONにし、ONS情報を設定することで回避を試行することができますが、12.2.1では管理コンソールからDatasource Typeをリセットする方法はありません。この値は他の全てに優先します。