例: Java Management Extensions API および wsadmin スクリプト・ツールを使用した JDBC プロバイダーおよびデータ・ソースの作成
以下のサンプル・コードは、データ・ソースを作成するために使用される JACL (wSadmin - スクリプト・ツール) スクリプトです。
このスクリプトは、テンプレートを提供しない製品のデータ・ソースを作成するためにのみご使用ください。 製品には、WebSphere® Application Server がサポートする すべての JDBC プロバイダーに対応しているデータ・ソース・テンプレートが備わっています。 これらのデータ・ソースを確立するための createUsingTemplate コマンドの使用方法については、トピック『wsadmin ツールによる構成オブジェクトの作成』を参照してください。 サポートされる JDBC プロバイダーの完全なリスト (したがって、テンプレートを使用して作成する必要のあるデータ・ソースの完全なリスト) については、『ベンダーによる、データ・ソースの最小必要設定』トピックを参照してください。
このスクリプトは、以下のサンプル JDBC オブジェクトをセットアップします。
- データ・ソース fvtDS_1 の作成
- 4.0 データ・ソース fvtDS_3 の作成
- fvtDS_1 にリンクされるコンテナー管理パーシスタンス (CMP) データ・ソースの作成
重要: ご使用のデータ・ソースに関連する JDBC プロバイダーのクラスパスまたはネイティブ・ライブラリー・パスを後で変更する場合は、
新規構成が動作するようにするために、
その JDBC プロバイダーのスコープ内のすべてのアプリケーション・サーバーを再始動する必要があります。
再始動しなかった場合は、データ・ソース障害メッセージを受け取ります。
#AWE -- Set up XA DB2 data sources, both Version 4.0 and Connector architecture (JCA)-compliant data sources
#UPDATE THESE VALUES:
#The classpath that will be used by your database driver
set driverClassPath "c:/sqllib/java/db2java.zip"
set server "server1"
set fvtbase "c:/wssb/fvtbase"
#Users and passwords..
set defaultUser1 "dbuser1"
set defaultPassword1 "dbpwd1"
set aliasName "alias1"
set databaseName1 "jtest1"
set databaseName2 "jtest2"
#END OF UPDATES
puts "Add an alias alias1"
set cell [$AdminControl getCell]
set sec [$AdminConfig getid /Cell:$cell/Security:/]
#---------------------------------------------------------
# Create a JAASAuthData object for component-managed authentication
#---------------------------------------------------------
puts "create JAASAuthData object for alias1"
set alias_attr [list alias $aliasName]
set desc_attr [list description "Alias 1"]
set userid_attr [list userId $defaultUser1]
set password_attr [list password $defaultPassword1]
set attrs [list $alias_attr $desc_attr $userid_attr $password_attr]
set authdata [$AdminConfig create JAASAuthData $sec $attrs]
$AdminConfig save
set dm [$AdminControl queryNames type=Server,name=dmgr,*]
$AdminControl invoke $dm restart "true true"
puts "Installing DB2 datasource for XA"
puts "Finding the old JDBCProvider.."
#Remove the old jdbc provider...
set jps [$AdminConfig list JDBCProvider]
foreach jp $jps {
set jpname [lindex [lindex [$AdminConfig show $jp {name}] 0] 1]
if {($jpname == "FVTProvider")} {
puts "Removing old JDBC Provider"
$AdminConfig remove $jp
$AdminConfig save
}
}
#Get the server name...
puts "Finding the server $server"
set servlist [$AdminConfig list Server]
set servsize [llength $servlist]
foreach srvr $servlist {
set sname [lindex [lindex [$AdminConfig show $srvr {name}] 0] 1]
if {($sname == $server)} {
puts "Found server $srvr"
set serv $srvr
}
}
set desiredNodeName "myNode"
puts "Finding the Node"
set nodelist [$AdminConfig list Node]
foreach node $nodelist {
set nodename [lindex [lindex [$AdminConfig show $node {name}] 0] 1]
if {($nodename == $desiredNodeName)} {
puts "node = $node"
break
}
}
puts "Finding the Resource Adapter"
set ralist [$AdminConfig list J2CResourceAdapter $node]
set ralistlen [llength $ralist]
foreach ra $ralist {
set raname [lindex [lindex [$AdminConfig show $ra {name}] 0] 1]
if {($raname == "WebSphere Relational Resource Adapter")} {
set rsadapter $ra
}
}
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
#Create a JDBC Provider for the data sources
puts "Creating the provider for COM.ibm.db2.jdbc.DB2XADataSource"
set attrs1 [subst {{classpath $driverClassPath}
{implementationClassName COM.ibm.db2.jdbc.DB2XADataSource}{name "FVTProvider2"}
{description "DB2 JDBC Provider"} {xa "true"}}]
set provider1 [$AdminConfig create JDBCProvider $serv $attrs1]
![[IBM i]](../images/iseries.gif)
#Create an iSeries JDBC Provider for the data sources
puts "Creating the provider for com.ibm.db2.jdbc.app.UDBXADataSource"
set attrs1 [subst {{classpath $driverClassPath}
{implementationClassName com.ibm.db2.jdbc.app.UDBXADataSource}{name "FVTProvider2"}
{description "DB2 UDB for iSeries JDBC Provider"} {xa "true"}}]
set provider1 [$AdminConfig create JDBCProvider $serv $attrs1]
#Create the first data source
puts "Creating the datasource fvtDS_1"
set attrs2 [subst {{name fvtDS_1} {description "FVT DataSource 1"}}]
set ds1 [$AdminConfig create DataSource $provider1 $attrs2]
#Set the properties for the data source.
set propSet1 [$AdminConfig create J2EEResourcePropertySet $ds1 {}]
set attrs3 [subst {{name databaseName} {type java.lang.String} {value $databaseName1}}]
$AdminConfig create J2EEResourceProperty $propSet1 $attrs3
set attrs10 [subst {{jndiName jdbc/fvtDS_1} {statementCacheSize 10}
{datasourceHelperClassname com.ibm.websphere.rsadapter.DB2DataStoreHelper}
{relationalResourceAdapter {$rsadapter}} {authMechanismPreference "BASIC_PASSWORD"}
{authDataAlias $aliasName}}]
$AdminConfig modify $ds1 $attrs10
#Create the connection pool object
$AdminConfig create ConnectionPool $ds1 {{connectionTimeout 1000} {maxConnections 30} {minConnections 1} {agedTimeout 1000} {reapTime 2000} {unusedTimeout 3000} }
#Create the 4.0 data sources
puts "Creating the 4.0 datasource fvtDS_3"
set ds3 [$AdminConfig create WAS40DataSource $provider1 {{name fvtDS_3} {description "FVT 4.0 DataSource"}}]
#Set the properties on the data source
set propSet3 [$AdminConfig create J2EEResourcePropertySet $ds3 {}]
#These attributes should be the same as fvtDS_1
set attrs4 [subst {{name user} {type java.lang.String} {value $defaultUser1}}]
set attrs5 [subst {{name password} {type java.lang.String} {value $defaultPassword1}}]
$AdminConfig create J2EEResourceProperty $propSet3 $attrs3
$AdminConfig create J2EEResourceProperty $propSet3 $attrs4
$AdminConfig create J2EEResourceProperty $propSet3 $attrs5
set attrs10 [subst {{jndiName jdbc/fvtDS_3} {databaseName $databaseName1}}]
$AdminConfig modify $ds3 $attrs10
$AdminConfig create WAS40ConnectionPool $ds3 {{orphanTimeout 3000} {connectionTimeout 1000} {minimumPoolSize 1} {maximumPoolSize 10} {idleTimeout 2000}}
#Add a CMP connection factory for the JCA-compliant data source. This step is not necessary for
#Version 4 data sources, as they contain built-in CMP connection factories.
puts "Creating the CMP Connector Factory for fvtDS_1"
set attrs12 [subst {{name "FVT DS 1_CF"} {authMechanismPreference BASIC_PASSWORD} {cmpDatasource $ds1} {authDataAlias $aliasName}}]
set cf1 [$AdminConfig create CMPConnectorFactory $rsadapter $attrs12]
#Set the properties for the data source.
$AdminConfig create MappingModule $cf1 {{mappingConfigAlias "DefaultPrincipalMapping"} {authDataAlias "alias1"}}
$AdminConfig save