There are 3 steps involved:
1. Define a jython script to create a datasource
2. Define instance specific parameters
3. Execute the script
1. Create your jython script createDS.py:
####################################
def connectAdmin() :
try:
connect(adminServerUser,adminServerPassword, adminServer)
print('Successfully connected')
except:
print 'Unable to find admin server...'
exit()
def deleteDS() :
try:
cd('/SystemResources/' + dsName)
set('Targets',jarray.array([], ObjectName))
except:
print 'Datasource not created yet'
try:
cd('/JDBCSystemResources')
datasources = cmo.getJDBCSystemResources()
for datasource in datasources :
currentDSName = datasource.getName()
if dsName == currentDSName :
try:
datasource.forceShutDown()
except:
print 'Could not shutdown datasource'
try:
cmo.destroyJDBCSystemResource(datasource)
except:
print 'Could not destroy data source'
except:
print 'could not delete datasource'
def retrieveTargets() :
targetsNames = targets.split(" ")
targetsArray = jarray.zeros(len(targetsNames),ObjectName)
index = 0
for targetName in targetsNames :
targetsArray[index] = ObjectName('com.bea:Name='+targetName+',Type=Server')
index = index + 1
return targetsArray
if __name__== "main":
print('This will enable you to create or update a Datasource')
connectAdmin()
print('Starting a edit session')
edit()
startEdit()
deleteDS()
print 'Creating data source'
# Create a new Mbean ( a JDBC resource)
cd('/')
cmo.createJDBCSystemResource(dsName)
#Naming the datasource under JDBCSystemResources
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName)
cmo.setName(dsName)
print 'Assigning JNDI name'
#Setting JNDI name
cd('/JDBCSystemResources/'+dsName+'/JDBCResource/'+dsName+'/JDBCDataSourceParams/'+dsName)
set('JNDINames',jarray.array([String(jndiName)], String))
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName )
cmo.setUrl(driverUrl)
cmo.setDriverName( driverName )
cmo.setPassword(driverPassword)
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName+'/Properties/'+dsName)
cmo.createProperty('user')
cd('/JDBCSystemResources/' + dsName + '/JDBCResource/' + dsName + '/JDBCDriverParams/' + dsName+'/Properties/'+dsName+'/Properties/user')
cmo.setValue(driverUser)
print 'Assigning target'
cd('/SystemResources/' + dsName)
targetsArray = retrieveTargets()
set('Targets',targetsArray)
#Writing the chages to the server
save()
activate()
disconnect()
####################################
2. Create a properties file for your instance, instance.properties:
adminServer = t3://localhost:7001
adminServerUser = weblogic
adminServerPassword = password
items = 1
dsName = MyDS
jndiName = jdbc/MyDS
targets = AdminServer
driverName = oracle.jdbc.xa.client.OracleXADataSource
driverUrl = jdbc:oracle:thin:@pippo.pallino.int:1597:SERVICE
driverUser = MyUser
driverPassword = myPass
3. Run the following command:
WL_HOME\server\bin\setWLSEnv.cmd
java weblogic.WLST -loadProperties instance.properties createDS.py





