Beispiel: Mit der JMX-API und dem Scripting-Tool "wsadmin" einen JDBC-Provider und eine Datenquelle erstellen
Der folgende Beispielcode ist ein JACL-Script (Scripting-Tool "wsadmin"), mit dem Sie eine Datenquelle erstellen können.
Verwenden Sie dieses Script nur zum Erstellen solcher Datenquellen, für die das Produkt keine Schablone bereitstellt. Für jeden von WebSphere Application Server unterstützten JDBC-Provider stellt das Produkt eine entsprechende Datenquellenschablone bereit. Der Artikel "Konfigurationsobjekt mit dem Tool 'wsadmin' erstellen" enthält Anweisungen zur Verwendung des Befehls createUsingTemplate für das Erstellen dieser Datenquellen. Eine vollständige Liste der unterstützten JDBC-Provider (und damit eine vollständige Liste der Datenquellen, die mit einer Schablone erstellt werden müssen) finden Sie im Artikel "Erforderliche Mindestdatenquelleneinstellungen nach Anbieter".
- Es erstellt eine Datenquelle fvtDS_1.
- Es erstellt eine Datenquelle der Version 4.0 fvtDS_3.
- Es erstellt eine CMP-Datenquelle, die mit fvtDS_1 verknüpft wird.
#AWE -- Konfigurieren Sie XA-DB2-Datenquellen (für Version 4.0 und JCA-kompatible Datenquellen)
#Die folgenden Werte aktualisieren:
#Klassenpfad, der vom Datenbanktreiber verwendet wird
set driverClassPath "c:/sqllib/java/db2java.zip"
set server "server1"
set fvtbase "c:/wssb/fvtbase"
#Benutzer und Kennwörter...
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:/]
#---------------------------------------------------------
# Ein JAASAuthData-Objekt für komponentengesteuerte Authentifizierung erstellen
#---------------------------------------------------------
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.."
#Alten JDBC-Provider entfernen...
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
}
}
#Den Servernamen abrufen...
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)
#JDBC-Provider für die Datenquellen erstellen
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)
#iSeries-JDBC-Provider für die Datenquellen erstellen
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]
#Die erste Datenquelle erstellen
puts "Creating the datasource fvtDS_1"
set attrs2 [subst {{name fvtDS_1} {description "FVT DataSource 1"}}]
set ds1 [$AdminConfig create DataSource $provider1 $attrs2]
#Die Eigenschaften für die Datenquelle festlegen.
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
#Verbindungspoolobjekt erstellen
$AdminConfig create ConnectionPool $ds1 {{connectionTimeout 1000} {maxConnections 30} {minConnections 1} {agedTimeout 1000} {reapTime 2000} {unusedTimeout 3000} }
#4.0-Datenquellen erstellen
puts "Creating the 4.0 datasource fvtDS_3"
set ds3 [$AdminConfig create WAS40DataSource $provider1 {{name fvtDS_3} {description "FVT 4.0 DataSource"}}]
#Die Eigenschaften für die Datenquelle festlegen
set propSet3 [$AdminConfig create J2EEResourcePropertySet $ds3 {}]
#Diese Attribute müssen mit denen von fvtDS_1 übereinstimmen
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}}
#CMP-Verbindungsfactory für JCA-kompatible Datenquelle hinzufügen. Dieser Schritt ist für
#Datenquellen der Version 4 nicht erforderlich, weil diese integrierte CMP-Verbindungsfactorys enthalten.
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]
#Die Eigenschaften für die Datenquelle festlegen.
$AdminConfig create MappingModule $cf1 {{mappingConfigAlias "DefaultPrincipalMapping"} {authDataAlias "alias1"}}
$AdminConfig save