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
Post a Comment