Creating a DataSource in WebLogic Using WLST

Creating JDBC DataSources in WebLogic Server using WLST (WebLogic Scripting Tool),including authentication, connection pool configuration, and deployment targets.

Prerequisites:

WebLogic Server installed
JDBC driver JAR available (e.g., ojdbc8.jar for Oracle)
Admin credentials and server URL

Basic WLST DataSource Creation Script:

Save as create_datasource.py:

# Connect to Admin Server
connect('weblogic', 'welcome1', 't3://localhost:7001
edit()
startEdit()

# Create JDBC DataSource
cd('/')
cmo.createJDBCSystemResource('MyDS')
cd('/JDBCSystemResources/MyDS/JDBCResource/MyDS')
cmo.setName('MyDS')

# JDBC DataSource Parameters
cd('/JDBCSystemResources/MyDS/JDBCResource/MyDS/JDBCDataSourceParams/MyDS')
cmo.setJNDINames(['jdbc/MyDS'])  # JNDI Name
cmo.setGlobalTransactionsProtocol('TwoPhaseCommit')  # For XA transactions

#JDBC Driver Properties
cd('/JDBCSystemResources/MyDS/JDBCResource/MyDS/JDBCDriverParams/MyDS')
cmo.setUrl('jdbc:oracle:thin:@//localhost:1521/ORCLPDB1')
cmo.setDriverName('oracle.jdbc.OracleDriver')
cmo.setPassword('db_password')

cd('/JDBCSystemResources/MyDS/JDBCResource/MyDS/JDBCDriverParams/MyDS/Properties/MyDS')
cmo.createProperty('user')
cd('/JDBCSystemResources/MyDS/JDBCResource/MyDS/JDBCDriverParams/MyDS/Properties/MyDS/Properties/user')
cmo.setValue('db_user')

# Connection Pool Settings

cd('/JDBCSystemResources/MyDS/JDBCResource/MyDS/JDBCConnectionPoolParams/MyDS')cmo.setInitialCapacity(5)       # Initial connections
cmo.setMaxCapacity(20)          # Max connections
cmo.setMinCapacity(5)           # Min connections
cmo.setStatementCacheSize(100)  # Cached statements

# Deploy to Target Server(s
cd('/JDBCSystemResources/MyDS')
targets = ObjectName('com.bea:Name=AdminServer,Type=Server')
set('Targets',jarray.array([targets], ObjectName))

save()
activate()
disconnect()
exit()

Running the Script

Execute via WLST:

$WL_HOME/common/bin/wlst.sh create_datasource.py

Advanced Configurations

Adding Connection Testing

cd('/JDBCSystemResources/MyDS/JDBCResource/MyDS/JDBCConnectionPoolParams/MyDS')

cmo.setTestConnectionsOnReserve(true)

cmo.setTestTableName('SQL SELECT 1 FROM DUAL')  # Oracle test query

Comments