https://blogs.oracle.com/weblogicserver/migrating-from-multi-data-source-to-active-gridlink-take-2
このトピックに関するオリジナルのブログエントリで、マルチデータソース(MDS)を削除し、Active GridLinkデータソース(AGL)に置き換えることを提案しました。
Migrating from Multi Data Source to Active GridLink実際には、マルチデータソースはJDCストアのように別のオブジェクトから参照される可能性が高く、マルチデータソースを削除すると無効な構成が作成されてしまいます。さらに、マルチデータソースからの接続を使うオブジェクトが再構成中、ならびに再構成後に失敗するでしょう。これはつまり、こうした類の操作では、関連するサーバーをシャットダウンし、構成をオフラインWLSTで更新し、サーバーを再起動する必要があり、管理コンソールを使うことはできません。ただし、コンソールを利用する説明をしている部分を除いては、以前のエントリの別の情報はこのプロセスでも対応しています。JNDI名は変更していないので、構成だけを変更します。アプリケーションに対して変更する必要はありません。
https://blogs.oracle.com/weblogicserver/migrating-from-multi-data-source-to-active-gridlink
https://orablogs-jp.blogspot.jp/2013/04/migrating-from-multi-data-source-to.html
以下は、オフラインWLSTスクリプトのサンプルで、これをパラメータ化し、複数のデータソースを扱えるように柔軟性をあげることもできるでしょう。
WLS 12.1.2および12.1.3では、FanEnabledがtrue(推奨されていません)に設定されておらず、auto-ONS(12.1.2 がauto-ONSをサポートする最初のリリースです)が使用されている場合でも、Active GridLinkデータソースを識別するために使用可能な明示的なActiveGridlinkフラグがあります上記のスクリプトで、FanEnabledとOnsNodeListが設定されていない場合にのみ、コメントを解除して設定してください。
# java weblogic.WLST file.py
import
sys, socket, os
# Application values
dsName
=
'myds'
memberds1
=
'ds1'
memberds2
=
'ds2'
domain
=
'
/
domaindir
onsNodeList
=
host1:
6200
,host2:
6200
'
url
=
'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST='
\
+
'(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))'
\
+
'(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))'
\
+
'(CONNECT_DATA=(SERVICE_NAME=servicename)))'
user
=
'user1'
password
=
'password1'
readDomain(domain)
# change type from MDS to AGL
# The following is for WLS 12.1.2 and 12.1.3 if not setting
# FanEnabled true, which is not recommended
# set('ActiveGridlink','true')
# The following is for WLS 12.2.1 and later
# cd('/JDBCSystemResources/' + dsName + '/JdbcResource/' + dsName )
# set('DatasourceType', 'AGL')
# set the AGL parameters
cd(
'/JDBCSystemResources/'
+
dsName
+
'/JdbcResource/'
+
dsName)
create(
'myJdbcOracleParams'
,
'JDBCOracleParams'
)
cd(
'JDBCOracleParams/NO_NAME_0'
)
set
(
'FanEnabled'
,
'true'
)
set
(
'OnsNodeList'
,onsNodeList)
# Set the data source parameters
cd(
'/JDBCSystemResources/'
+
dsName
+
'/JdbcResource/'
+
dsName
+
'/JDBCDataSourceParams/NO_NAME_0'
)
set
(
'GlobalTransactionsProtocol'
,
'None'
)
unSet(
'DataSourceList'
)
unSet(
'AlgorithmType'
)
# Set the driver parameters
cd(
'/JDBCSystemResources/'
+
dsName
+
'/JdbcResource/'
+
dsName)
create(
'myJdbcDriverParams'
,
'JDBCDriverParams'
)
cd(
'JDBCDriverParams/NO_NAME_0'
)
set
(
'Url'
,url)
set
(
'DriverName'
,
'oracle.jdbc.OracleDriver'
)
set
(
'PasswordEncrypted'
,password)
create(
'myProps'
,
'Properties'
)
cd(
'Properties/NO_NAME_0'
)
create(
'user'
,
'Property'
)
cd(
'Property'
)
cd(
'user'
)
set
(
'Value'
, user)
# Set the connection pool parameters
cd(
'/JDBCSystemResources/'
+
dsName
+
'/JdbcResource/'
+
dsName)
create(
'myJdbcConnectionPoolParams'
,
'JDBCConnectionPoolParams'
)
cd(
'/JDBCSystemResources/'
+
dsName
+
'/JdbcResource/'
+
dsName
+
'/JDBCConnectionPoolParams/NO_NAME_0'
)
set
(
'TestTableName'
,
'SQL ISVALID'
)
# remove member data sources if they are not needed
cd(
'/'
)
delete(memberds1,
'JDBCSystemResource'
)
delete(memberds2,
'JDBCSystemResource'
)
updateDomain()
closeDomain()
exit()
WLS 12.2.1以降、JDBCResourceレベルで明示的なデータソースタイプがあります。 これがGENERICに設定されている場合は、set("DatasourceType", "AGL") を使って再設定する必要があります。上記のスクリプトでは、行のコメントを解除して設定します。この場合、ActiveGridlinkフラグは必要ありません。
ONSでOracle walletを使っている場合、JDBCOracleParamsオブジェクトにも追加する必要があります。WLS 12.2.1より前のリリースでは、ONSの情報は明示的に指定する必要がありますが、WLS 12.2.1以後ではONSの情報を指定する必要はなく、データベースが正しい情報を判断しようとします。より複雑なONSトポロジーについては、以下のドキュメントで説明しているフォーマットを使って構成を指定することができます。
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1.2.0)
ONSホストおよびポートの構成
https://docs.oracle.com/cd/E84527_01/wls/JDBCA/gridlink_datasources.htm#GUID-A4965575-6753-4443-A2D5-58EFC7812B1C
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
0 件のコメント:
コメントを投稿