1. Log in as a wls user to shell and start WLST:
    [wls@prod01]$ $WL_HOME/common/bin/wlst.sh
  2. Connect to the Administration Server using wlsadmin as the user, <pwd> as the password, and t3://adminhost.domain.local:7001 as the server URL:
    wls:/offline> connect("wlsadmin","<pwd>","t3://adminhost.domain.local:7001")
  3. Run the following WLST commands to create the first data source:
    edit()
    startEdit()#create the ds-XA-rac01 data source
    cmo.createJDBCSystemResource('ds-XA-rac01')
    cd('/JDBCSystemResources/ds-XA-rac01/JDBCResource/ds-XA-rac01')
    cmo.setName('ds-XA-rac01')
    cd('/JDBCSystemResources/ds-XA-rac01/JDBCResource/ds-XA-rac01/JDBCDataSourceParams/ds-XA-rac01')
    set('JNDINames',jarray.array([String('jdbc/ds-XA-rac01')], String))
    cd('/JDBCSystemResources/ds-XA-rac01/JDBCResource/ds-XA-rac01/JDBCDriverParams/ds-XA-rac01')
    cmo.setUrl('jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost-rac01)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=dbservice-rac01)(INSTANCE_NAME=instance-rac01)))')
    cmo.setDriverName('oracle.jdbc.xa.client.OracleXADataSource')
    cmo.setPassword('dbpwd');
    cd('/JDBCSystemResources/ds-XA-rac01/JDBCResource/ds-XA-rac01/JDBCConnectionPoolParams/ds-XA-rac01')
    cmo.setTestTableName('SQL SELECT 1 FROM DUAL\r\n')
    cd('/JDBCSystemResources/ds-XA-rac01/JDBCResource/ds-XA-rac01/JDBCDriverParams/ds-XA-rac01/Properties/ds-XA-rac01')
    cmo.createProperty('user')
    cd('/JDBCSystemResources/ds-XA-rac01/JDBCResource/ds-XA-rac01/JDBCDriverParams/ds-XA-rac01/Properties/ds-XA-rac01/Properties/user')
    cmo.setValue('dbuser')
    cd('/JDBCSystemResources/ds-XA-rac01/JDBCResource/ds-XA-rac01/JDBCDataSourceParams/ds-XA-rac01')
    cmo.setGlobalTransactionsProtocol('TwoPhaseCommit')
    cd('/JDBCSystemResources/ds-XA-rac01')
    set('Targets',jarray.array([ObjectName('com.bea:Name=PROD_Cluster,Type=Cluster')], ObjectName))
  4. Run the following WLST commands to create the second data source:
    #create the ds-XA-rac02 data source
    cd('/')
    cmo.createJDBCSystemResource('ds-XA-rac02')
    cd('/JDBCSystemResources/ds-XA-rac02/JDBCResource/ds-XA-rac02')
    cmo.setName('ds-XA-rac02')
    cd('/JDBCSystemResources/ds-XA-rac02/JDBCResource/ds-XA-rac02/JDBCDataSourceParams/ds-XA-rac02')
    set('JNDINames',jarray.array([String('jdbc/ds-XA-rac02')], String))
    cd('/JDBCSystemResources/ds-XA-rac02/JDBCResource/ds-XA-rac02/JDBCDriverParams/ds-XA-rac02')
    cmo.setUrl('jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost-rac02)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=dbservice-rac02)(INSTANCE_NAME=instance-rac02)))')
    cmo.setDriverName('oracle.jdbc.xa.client.OracleXADataSource')
    cmo.setPassword('dbpwd');
    cd('/JDBCSystemResources/ds-XA-rac02/JDBCResource/ds-XA-rac02/JDBCConnectionPoolParams/ds-XA-rac02')
    cmo.setTestTableName('SQL SELECT 1 FROM DUAL\r\n')
    cd('/JDBCSystemResources/ds-XA-rac02/JDBCResource/ds-XA-rac02/JDBCDriverParams/ds-XA-rac02/Properties/ds-XA-rac02')
    cmo.createProperty('user')
    cd('/JDBCSystemResources/ds-XA-rac02/JDBCResource/ds-XA-rac02/JDBCDriverParams/ds-XA-rac02/Properties/ds-XA-rac02/Properties/user')
    cmo.setValue('dbuser')
    cd('/JDBCSystemResources/ds-XA-rac02/JDBCResource/ds-XA-rac02/JDBCDataSourceParams/ds-XA-rac02')
    cmo.setGlobalTransactionsProtocol('TwoPhaseCommit')
    cd('/JDBCSystemResources/ds-XA-rac02')
    set('Targets',jarray.array([ObjectName('com.bea:Name=PROD_Cluster,Type=Cluster')], ObjectName))
  5. Run the following WLST commands to create the multi data source:
    #create the multi data source ds-xa
    cd('/')
    cmo.createJDBCSystemResource('ds-XA')
    cd('/JDBCSystemResources/ds-XA/JDBCResource/ds-XA')
    cmo.setName('ds-XA')
    cd('/JDBCSystemResources/ds-XA/JDBCResource/ds-XA/JDBCDataSourceParams/ds-XA')
    set('JNDINames',jarray.array([String('jdbc/ds-XA')], String))
    cmo.setAlgorithmType('Failover')
    cmo.setDataSourceList('ds-XA-rac01,ds-XA-rac02')
    cd('/JDBCSystemResources/ds-XA')
    set('Targets',jarray.array([ObjectName('com.bea:Name=PROD_Cluster,Type=Cluster')], ObjectName))
    activate()
    exit()

0 Comments