Exemplo: Criando um provedor JDBC e origem de dados usando a API Java Management Extensions e a ferramenta de script wsadmin
O código de amostra a seguir é um script JACL (wsadmin - ferramenta de script) utilizado para criar uma nova origem de dados.
Utilize esse script para criar apenas as origens de dados para as quais o produto não forneça um modelo. Para cada provedor JDBC que o WebSphere Application Server suporta, o produto fornecer um modelo de origem de dados correspondente. Consulte o tópico Criando Objetos de Configuração usando a ferramenta wsadmin para obter instruções sobre como utilizar o comando createUsingTemplate para estabelecer essas origens de dados. Para obter uma lista completa de provedores JDBC suportados (e, portanto, uma lista completa de origens de dados que devem ser criadas utilizando um modelo), consulte o tópico, configurações necessárias mínimas da Origem de Dados, pelo fornecedor.
- Cria uma origem de dados fvtDS_1
- Cria uma origem de dados 4.0 fvtDS_3
- Cria uma origem de dados CMP (Container-managed Persistence) vinculada ao fvtDS_1
#AWE -- Configurar origens de dados XA DB2, origens de dados da Versão 4.0 e compatíveis com a arquitetura de Conector (JCA)
#ATUALIZAR ESTES VALORES:
#O classpath que será utilizado pelo driver de banco de dados
set driverClassPath "c:/sqllib/java/db2java.zip"
set server "server1"
set fvtbase "c:/wssb/fvtbase"
#Usuários e senhas.
set defaultUser1 "dbuser1"
set defaultPassword1 "dbpwd1"
set aliasName "alias1"
set databaseName1 "jtest1"
set databaseName2 "jtest2"
#FIM DAS ATUALIZAÇÕES
puts "Add an alias alias1"
set cell [$AdminControl getCell]
set sec [$AdminConfig getid /Cell:$cell/Security:/]
#---------------------------------------------------------
# Criar um objeto JAASAuthData para autenticação gerenciada por componente
#---------------------------------------------------------
puts "criar objeto JAASAuthData para 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 "Instalando datasource DB2 para XA"
puts "Localizando o JDBCProvider antigo.."
#Remover o provedor jdbc antigo...
set jps [$AdminConfig list JDBCProvider]
foreach jp $jps {
set jpname [lindex [lindex [$AdminConfig show $jp {name}] 0] 1]
if {($jpname == "FVTProvider")} {
puts "Removendo Provedor JDBC antigo"
$AdminConfig remove $jp
$AdminConfig save
}
}
#Obter o nome do servidor...
puts "Localizando o servidor $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 "Servidor $srvr localizado"
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 "Localizando o Adaptador de Recurso"
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)
#Crie um Provedor JDBC para as origens de dados
puts "Criando o provedor para 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)
#Crie um Provedor JDBC do iSeries para as origens de dados
puts "Criando o provedor para com.ibm.db2.jdbc.app.UDBXADataSource"
set attrs1 [subst {{classpath $driverClassPath}
{implementationClassName com.ibm.db2.jdbc.app.UDBXADataSource}{name "FVTProvider2"}
{description "Provedor JDBC do DB2 UDB para iSeries"} {xa "true"}}]
set provider1 [$AdminConfig create JDBCProvider $serv $attrs1]
#Crie a primeira origem de dados
puts "Criando o datasource fvtDS_1"
set attrs2 [subst {{name fvtDS_1} {description "FVT DataSource 1"}}]
set ds1 [$AdminConfig create DataSource $provider1 $attrs2]
#Defina as propriedades para a origem de dados.
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
#Crie o objeto do conjunto de conexões
$AdminConfig create ConnectionPool $ds1 {{connectionTimeout 1000}
{maxConnections 30} {minConnections 1} {agedTimeout 1000}
{reapTime 2000} {unusedTimeout 3000} }
#Crie as origens de dados 4.0
puts "Criando o datasource 4.0 fvtDS_3"
set ds3 [$AdminConfig create WAS40DataSource $provider1 {{name fvtDS_3} {description "FVT 4.0 DataSource"}}]
#Definir as propriedades da origem de dados
set propSet3 [$AdminConfig create J2EEResourcePropertySet $ds3 {}]
#Estes atributos devem ser os mesmos 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}}
#Inclua um connection factory CMP para a origem de dados compatível com JCA. Essa etapa não é necessária para
#origens de dados da Versão 4, porque elas contêm connection factories CMP internas.
puts "Criando a Fábrica de Conector CMP para fvtDS_1"
set attrs12 [subst {{name "FVT DS 1_CF"} {authMechanismPreference BASIC_PASSWORD}
{cmpDatasource $ds1} {authDataAlias $aliasName}}]
set cf1 [$AdminConfig create CMPConnectorFactory $rsadapter $attrs12]
#Defina as propriedades para a origem de dados.
$AdminConfig create MappingModule $cf1 {{mappingConfigAlias "DefaultPrincipalMapping"} {authDataAlias "alias1"}}
$AdminConfig save