In Oracle Utilities Mobile Workforce Management runs on WebLogic server.
Pre-requisites
Oracle native WebLogic domain configured and the Admin Server must be up and running because our automation will be going to work online WLST.
How does it works?
In the Oracle Utilities products have a file ENVIRON.INI, that will having all connection related parameters available such as: ADMIN HOST, ADMIN PORT, UserStoreConfig files userConfigFile
userKeyFile path. By reading this file as properties we can get connected to the running WebLogic Admin Server.
We will need the GEOCODE data source parameters, this can be passed as properties file ConfigGEOCODE.properties. To create a data source we need the following :
- Name of the datasoruce as GEOCODE
- JNDI Name as NAVTEQ_UTIL
- Select the database as Oracle
Connection pool configuration in the JDBC System Resource
- Enter your database hostname
- Database port
- Database name
- Database user credentials
- Test Connection Pool
###################****##############****################################################ # Generic Datasource configuration script applicable on any Operating Environments (Unix, Windows) # ScriptName : ConfigGEOCODE.py # Properties : ConfigGEOCODE.properties # Updated by : Pavan Devarakonda # Date creation : 9th Aug 2018 ############### Connecting to Start ################################################ def connectAdmin() : try: import os splebase=os.environ['SPLEBASE'] loadProperties(splebase+"/etc/ENVIRON.INI") userconfig = splebase+"/etc/.wlsuserconfig" userkey = splebase+"/etc/.wlsuserkey" adminurl="t3s://"+WEB_ADMIN_SERVER+":"+WLS_ADMIN_PORT printline('Connectiong to adminurl: '+adminurl) connect(userConfigFile=userconfig,userKeyFile=userkey, url=adminurl) printline('Successfully connected') except: printline('Unable to find admin server...') exit() #================== Printing line ===================================== def printline(msg): print 45*'#' print msg print 45*'#' ################### Configuring Connection Pool ############################# def connPool(DSnam) : DRVPARM='/JDBCSystemResources/'+DSnam+'/JDBCResource/'+DSnam+'/JDBCDriverParams/'+DSnam cd(DRVPARM) set('Url',DBURL) set('DriverName',DBDRV) cmo.setPassword('XXXXXX') cd(DRVPARM+'/Properties/'+DSnam) cmo.createProperty('user') cd(DRVPARM+'/Properties/'+DSnam+'/Properties/user') set('Value',DBUSR) ############ Creating Data source ############################### def createDS() : DSnam = DSName printline('Creating datasource :'+DSnam) cmo.createJDBCSystemResource(DSnam) RESOURCE='/JDBCSystemResources/'+DSnam+'/JDBCResource/'+DSnam cd(RESOURCE) set('Name',DSnam) #Setting JNDI name cd(RESOURCE+'/JDBCDataSourceParams/'+DSnam) print RESOURCE+'/JDBCDataSourceParams/'+DSnam set('JNDINames',jarray.array([String(JNDIname)], String)) connPool(DSnam) #Set Connection Pool specific parameters cd(RESOURCE+'/JDBCConnectionPoolParams/'+DSnam) cmo.setTestConnectionsOnReserve(true) cmo.setTestTableName('SQL SELECT 1 FROM DUAL\r\n\r\n') #cmo.setTestTableName('SQL ISVALID') cmo.setConnectionReserveTimeoutSeconds(25) cmo.setMaxCapacity(15) cmo.setConnectionReserveTimeoutSeconds(10) cmo.setTestFrequencySeconds(120) cd(RESOURCE+'/JDBCDataSourceParams/'+DSnam) cmo.setGlobalTransactionsProtocol('TwoPhaseCommit') # targets the GEOCODE DataSource to utilities_cluster1 cd('/SystemResources/'+DSnam) set('Targets',jarray.array([ObjectName('com.bea:Name='+clstrNam+',Type=Cluster')], ObjectName)) ########################### Main Module ##################################### if __name__== "main": connectAdmin() edit() startEdit() # Create a new JDBC resource) try: cd('/') createDS() except BeanAlreadyExistsException: printline('Error: GEOCODE Datasource already exist') cancelEdit('y'); exit() save() activate() printline('Successfully created GEOCODE datasource') disconnect()The properties file look like this:
#========================================= DBURL=jdbc:oracle:thin:@mydb.server.com:1521:M1DBMAPS DBDRV=oracle.jdbc.xa.client.OracleXADataSource DBPASS=XXXXXXX DBUSR=NAVTEQ_UTIL DSName=GEOCODE JNDIname=NAVTEQ_UTIL clstrNam=utilities_cluster1The script execution goes as follows:
Now prepare for execution of WLST script, setup the environment and also define proper SSL related options to include in JAVA_OPTIONS which will be considered when wlst.sh execution time.
wlst -loadProperties ConfigGEOCODE.properties ConfigGEOCODE.py
This script execution was tested successful and ready to use. You need to enter properties file corresponding to your database values.