I wanted to retreive all the information from weblogic datasources using WLST such as:
- Name
- JNDI Name
- Connection Pool parameters:
- URL
- Driver Class Name
- Properties passed to the JDBC Driver
- SetStreamAsBlob
- Initial Capacity
- Maximum Capacity
I’ve written a script to perform this task.
How to use this script:
<MIDDLEWARE_HOME>/soa/common/bin/wlst.sh bring_datasources.py <ENV> <DOMAIN>
#miguel.ortiz
import sys,os,re
environment = sys.argv[1]
domain = sys.argv[2]
hostUser = 'READONLY_USER'
hostPass = 'readonly_pass'
# you need to provide two parameters, environment and domain
if environment == '' or domain == '' :
print 'este script requiere (2) parametros, Ambiente y Dominio'
# if the environment is QAM
if environment == 'QAM' :
hostIP = '172.x.x.x'
if domain == 'SYNC':
hostPort = '8001'
if domain == 'ASYNC':
hostPort = '8002'
if domain == 'RSYNC':
hostPort = '8003'
# If my environment is Production
if environment == 'PROD' :
hostIP = '172.x.x.x'
if domain == 'SYNC':
hostPort = '8001'
if domain == 'ASYNC':
hostPort = '8002'
if domain == 'RSYNC':
hostPort = '8003'
dsCounter = 0
# Connect to the host
connect( hostUser , hostPass , 't3://' + hostIP + ':' + hostPort )
# get all JDBC Properties
allJDBCResources = cmo.getJDBCSystemResources()
for jdbcResource in allJDBCResources:
dsCounter +=1
dsname = jdbcResource.getName()
dsResource = jdbcResource.getJDBCResource()
dsJNDIname = dsResource.getJDBCDataSourceParams().getJNDINames()#[0]
dsInitialCap = dsResource.getJDBCConnectionPoolParams().getInitialCapacity()
dsMaxCap = dsResource.getJDBCConnectionPoolParams().getMaxCapacity()
dsParams = dsResource.getJDBCDataSourceParams()
dsDriver = dsResource.getJDBCDriverParams().getDriverName()
conn = dsResource.getJDBCDriverParams().getUrl()
test = dsResource.getJDBCDriverParams().getProperties()
test1 = dsResource.getJDBCConnectionPoolParams()
user = ''
readTimeOut = ''
conTimeOut = ''
streamAsBlob = ''
redirect('file','false')
try :
user = get("/JDBCSystemResources/"+ dsname +"/Resource/" + dsname + "/JDBCDriverParams/" + dsname + "/Properties/" + dsname + "/Properties/user/Value")
readTimeOut = get("/JDBCSystemResources/"+ dsname +"/Resource/" + dsname + "/JDBCDriverParams/" + dsname + "/Properties/" + dsname + "/Properties/oracle.jdbc.ReadTimeout/Value")
conTimeOut = get("/JDBCSystemResources/"+ dsname +"/Resource/" + dsname + "/JDBCDriverParams/" + dsname + "/Properties/" + dsname + "/Properties/oracle.net.CONNECT_TIMEOUT/Value")
streamAsBlob = get("/JDBCSystemResources/"+ dsname +"/Resource/" + dsname + "/JDBCDriverParams/" + dsname + "/Properties/" + dsname + "/Properties/SendStreamAsBlob/Value")
except WLSTException:
# omitimos errores por la no existencia de las propiedades buscadas con ls()
pass
stopRedirect()
print 'datasource.name.' + str(dsCounter) +'=' + str(dsname)
print 'datasource.jndiname.' + str(dsCounter) + '=' + str(dsJNDIname)
print 'datasource.driver.class.' + str(dsCounter) + '=' + dsDriver
print 'datasource.url.' + str(dsCounter) + '=' + conn
print 'datasource.readTimeout.' + str(dsCounter) + '=' + readTimeOut
print 'datasource.connectionTimeout.' + str(dsCounter) + '=' + conTimeOut
print 'datasource.username.' + str(dsCounter) + '=' + user
print 'datasource.password.' + str(dsCounter) + '='
print 'datasource.initialCapacity.' + str(dsCounter) + '=' + str(dsInitialCap)
print 'datasource.maxCapacity.' + str(dsCounter) + '=' + str(dsMaxCap)
print 'datasource.target.' + str(dsCounter) + '=' + target
if not streamAsBlob :
getStreamAsBlob = 'false'
else :
print '#datasource.sendStreamAsBlob.' + str(dsCounter) + '=' + streamAsBlob
print '\n'
- The output of the script was adjusted to match the input of another script for datasource creation, adjust it to your needs.

