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.pyimport 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 件のコメント:
コメントを投稿