Création d'un fournisseur JDBC et d'une source de données utilisant l'API Java Management Extensions et l'outil de scriptage wsadmin

L'exemple de code suivant est un script JACL (wsadmin, outil de scriptage) utilisé pour créer une source de données.

Utilisez ce script pour créer uniquement des sources de données pour lesquelles le produit ne fournit pas de modèle. Pour chaque fournisseur JDBC pris en charge par WebSphere Application Server, le produit fournit un modèle de source de données correspondant. Pour obtenir des instructions d'utilisation de la commande createUsingTemplate en vue d'établir ces sources de données, voir la rubrique Création d'objets de configuration avec l'outil wsadmin. Pour obtenir une liste complète des fournisseurs JDBC pris en charge (et donc une liste complète des sources de données devant être créées à l'aide d'un modèle), voir la rubrique Paramètres minimum requis des sources de données par fournisseur.

Le script configure les exemples d'objets JDBC suivants :
  • Il crée une source de données appelée fvtDS_1.
  • Il crée une source de données 4.0 appelée fvtDS_3.
  • Il crée une source de données CMP (Container-Managed Persistence) liée à fvtDS_1.
Avertissement : Si vous modifiez le chemin d'accès aux classes ou le chemin d'accès à la bibliothèque native du fournisseur JDBC associé à votre source de données ultérieurement, vous devez redémarrer chaque serveur d'applications qui se trouve dans la portée du fournisseur JDBC pour que la nouvelle configuration fonctionne. Sinon, un message d'erreur concernant la source de données est généré.
#AWE --  Configuration de sources de données XA DB2, à la fois compatibles avec la version 4.0 et avec la spécification JCA (architecture J2EE Connector)


#METTRE A JOUR LES VALEURS SUIVANTES :
#Le chemin de classes qui sera utilisé par votre pilote de base de données
set driverClassPath "c:/sqllib/java/db2java.zip"

set server "server1"

set fvtbase "c:/wssb/fvtbase"

#Utilisateurs et mots de passe...
set defaultUser1 "dbuser1"
set defaultPassword1 "dbpwd1"
set aliasName "alias1"

set databaseName1 "jtest1"
set databaseName2 "jtest2"
#FIN DES MISES A JOUR

puts "Ajout de l'alias alias1"
set cell [$AdminControl getCell]  
set sec [$AdminConfig getid /Cell:$cell/Security:/]

#---------------------------------------------------------
# Créer un objet JAASAuthData pour l'authentification gérée par le composant 
#---------------------------------------------------------
puts "Création de l'objet JAASAuthData pour 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 "Installation de la source de données DB2 pour XA"

puts "Recherche de l'ancien fournisseur JDBC..."
#Supprimer l'ancien fournisseur JDBC...
set jps [$AdminConfig list JDBCProvider]
foreach jp $jps {
 set jpname [lindex [lindex [$AdminConfig show $jp {name}] 0] 1]
 if {($jpname == "FVTProvider")} {
  puts "Suppression de l'ancien fournisseur JDBC"
  $AdminConfig remove $jp
  $AdminConfig save
 }
}


#Obtenir le nom du serveur...
puts "Recherche du serveur $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 "Serveur trouvé : $srvr"
  set serv $srvr
 }
}

set desiredNodeName "monNoeud"
puts "Recherche du noeud"
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 "Recherche de l'adaptateur de ressources"
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][z/OS]
#Créer un fournisseur JDBC pour les sources de données
puts "Création du fournisseur pour 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]
#Créer un fournisseur iSeries JDBC pour les sources de données
puts "Création du fournisseur pour 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]
#Créer la première source de données
puts "Création de la source de données fvtDS_1"
set attrs2 [subst {{name fvtDS_1} {description "FVT DataSource 1"}}]
set ds1 [$AdminConfig create DataSource $provider1  $attrs2]

#Définir les propriétés de la source de données.
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


#Créer l'objet de pool de connexion
$AdminConfig create ConnectionPool $ds1 {{connectionTimeout 1000} {maxConnections 30} {minConnections 1} {agedTimeout 1000} {reapTime 2000} {unusedTimeout 3000} }


#Créer les sources de données 4.0
puts "Création de la source de données 4.0 fvtDS_3"
set ds3 [$AdminConfig create WAS40DataSource $provider1 {{name fvtDS_3} {description "FVT 4.0 DataSource"}}]

#Définir les propriétés de la source de données.
set propSet3 [$AdminConfig create J2EEResourcePropertySet $ds3 {}]

#Ces attributs doivent être identiques à ceux de 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}}

#Ajouter une fabrique de connexions CMP pour la source de données compatible JCA. Cette étape n'est pas nécessaire 
#pour les sources de données version 4 car elles contiennent des fabriques de connexions CMP intégrées.
puts "Création de la fabrique de connexions CMP pour fvtDS_1"
set attrs12 [subst {{name "FVT DS 1_CF"} {authMechanismPreference BASIC_PASSWORD} {cmpDatasource $ds1} {authDataAlias $aliasName}}]
set cf1 [$AdminConfig create CMPConnectorFactory $rsadapter $attrs12]

#Définir les propriétés de la source de données.
$AdminConfig create MappingModule $cf1 {{mappingConfigAlias "DefaultPrincipalMapping"} {authDataAlias "alias1"}}

$AdminConfig save

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_scriptool
Nom du fichier : rdat_scriptool.html