It took me some time to find out what I need to create a clusted domain, based on my own specification. I wanna share you the information that is needed to create a SOA domain with the correct targets.
Before you begin you have to do some things. I expect you use the out-of-the-box SOA 11g template to create your domain. This will result in a domain, that contains all the applications, libraries, etc. But it also contains a managed server named 'soa_server1' and an machine 'LocalMachine'. These object will not have your settings regarding to logging, naming-convention, memory and many other settings. They are not usefull.
If you remove these objects, you loose the SOA 11g configuration, the targetted libraries/application/classes/jdbc and JMS.
For JMS it is even worse, the default configuration is based on a non-clustered setup. Therefore you need to run a seperate script to migrate these JMS configuration to a clustered aware configuration.
If you do not use the GUI interface, but you only wanna use WLST scripting, this is my approach:
- Create a SOA domain based on the default templates.
- Start the Administration Server.
- Execute the next script.
- Perform the 'soa-createUDD.py' to create the JMS Cluster:
- $WLS_SERVER/common/bin/wlst.sh $ORACLE_HOME/bin/soa-createUDD.py --domain_home /data/user_projects/domains/MyDomain --soacluster My-Cluster --create_jms true
- Apply the Java Object Caching script, configure-joc.py
- Pack and Unpack the domain configuration to the other server
- Start the Managed Servers.
Happy SOA-ing :-)
targetClusters=['My-Cluster'] targetLibraries=[ 'adf.oracle.domain#1.0@11.1.1.2.0' , 'adf.oracle.domain.webapp#1.0@11.1.1.2.0' , 'jsf#1.2@1.2.9.0' , 'jstl#1.2@1.2.0.1' , 'ohw-rcf#5@5.0' , 'ohw-uix#5@5.0' , 'UIX#11@11.1.1.1.0' , 'oracle.adf.dconfigbeans#1.0@11.1.1.2.0' , 'oracle.adf.management#1.0@11.1.1.2.0' , 'oracle.dconfig-infra#11@11.1.1.1.0' , 'oracle.jrf.system.filter' , 'oracle.jsp.next#11.1.1@11.1.1' , 'oracle.pwdgen#11.1.1@11.1.1.2.0' , 'oracle.rules#11.1.1@11.1.1' , 'oracle.sdp.client#11.1.1@11.1.1' , 'oracle.sdp.messaging#11.1.1@11.1.1' , 'oracle.soa.b2b#11.1.1@11.1.1' , 'oracle.soa.bpel#11.1.1@11.1.1' , 'oracle.soa.composer.webapp#11.1.1@11.1.1' , 'oracle.soa.ext#11.1.1@11.1.1' , 'oracle.soa.mediator#11.1.1@11.1.1' , 'oracle.soa.rules_dict_dc.webapp#11.1.1@11.1.1' , 'oracle.soa.rules_editor_dc.webapp#11.1.1@11.1.1' , 'oracle.soa.workflow#11.1.1@11.1.1' , 'oracle.soa.workflow.wc#11.1.1@11.1.1' , 'oracle.soa.worklist#11.1.1@11.1.1' , 'oracle.soa.worklist.webapp#11.1.1@11.1.1' , 'oracle.wsm.seedpolicies#11.1.1@11.1.1' , 'orai18n-adf#11@11.1.1.1.0' ] targetApplications=[ 'AqAdapter' , 'DbAdapter' , 'DefaultToDoTaskFlow' , 'FileAdapter' , 'FtpAdapter' , 'JmsAdapter' , 'MQSeriesAdapter' , 'OracleAppsAdapter' , 'OracleBamAdapter' , 'SocketAdapter' , 'b2bui' , 'composer' , 'soa-infra' , 'usermessagingdriver-email' , 'usermessagingserver' , 'worklistapp' , 'wsil-wls' , 'wsm-pm' , 'DMS Application#11.1.1.1' ] targetJDBC=[ 'EDNDataSource' , 'EDNLocalTxDataSource' , 'mds-owsm' , 'mds-soa' , 'OraSDPMDataSource' , 'SOADataSource' , 'SOALocalTxDataSource' ] targetShutdownClass=[ 'JOC-Shutdown' , 'DMSShutdown' ] targetStartupClass=[ 'JPS Startup Class' , 'JRF Startup Class' , 'ODL-Startup' , 'Audit Loader Startup Class' , 'AWT Application Context Startup Class' , 'JMX Framework Startup Class' , 'JOC-Startup' , 'DMS-Startup' , 'OWSM Startup class' , 'SOAStartupClass' ] targetWorkManagers=[ 'wm/SOAWorkManager' ] targetSystemResources=[ 'Module-FMWDFW' ] undeployApps=['FMW Welcome Page Application#11.1.0.0.0'] def connectToAdminsServer(): connect('weblogic', 'welcome1', 't3://node1.vijfhuizen.com:7001') def undeployApplications(listofobjects): cd ('/AppDeployments') listofcurrentobjects = ls(returnMap='true') for o in listofcurrentobjects: targetit = false for i in listofobjects: if i == o: targetit = true if targetit == true: print 'Undeploy -> ' + o undeploy(o) def setNewTarget(newtarget, newobject, listofobjects): cd('/Clusters/' + newtarget) cl_target = cmo cd(newobject) listofcurrentobjects = ls(returnMap='true') for o in listofcurrentobjects: targetit = false cd(o) curobject = cmo curobjectname = cmo.name for i in listofobjects: if i == curobjectname: targetit = true if targetit == true: print curobjectname + ' -> ' + cl_target.name curobject.addTarget(cl_target) cd('..') def destroyOOTBComponents(): print "@@@ Remove dummy soa_server @@@" cd('/Servers/soa_server1') cmo.setCluster(None) cmo.setMachine(None) cd('/') editService.getConfigurationManager().removeReferencesToBean(getMBean('/Servers/soa_server1')) cmo.destroyServer(getMBean('/Servers/soa_server1')) print "@@@ Remove dummy machine @@@" editService.getConfigurationManager().removeReferencesToBean(getMBean('/Machines/LocalMachine')) cmo.destroyMachine(getMBean('/Machines/LocalMachine')) print "@@@ Remove JMS Stuff @@@" cmo.destroyJMSSystemResource(getMBean('/SystemResources/SOAJMSModule')) cmo.destroyJMSSystemResource(getMBean('/SystemResources/UMSJMSSystemResource')) cmo.destroyJMSServer(getMBean('/Deployments/SOAJMSServer')) cmo.destroyJMSServer(getMBean('/Deployments/UMSJMSServer')) cmo.destroyFileStore(getMBean('/FileStores/SOAJMSFileStore')) cmo.destroyFileStore(getMBean('/FileStores/UMSJMSFileStore')) # # It starts all here # mycluster = 'My-Cluster' connectToAdminsServer() edit() startEdit() destroyOOTBComponents() for lCluster in targetClusters: print "@@@ Remove uneeded applications @@@" undeployApplications(undeployApps) print "@@@ Retarget @@@" setNewTarget(mycluster, '/Libraries', targetLibraries) setNewTarget(mycluster, '/AppDeployments', targetApplications) setNewTarget(mycluster, '/JDBCSystemResources', targetJDBC) setNewTarget(mycluster, '/StartupClasses', targetStartupClass) setNewTarget(mycluster, '/ShutdownClasses', targetShutdownClass) setNewTarget(mycluster, '/SelfTuning/KIMPTC/WorkManagers', targetWorkManagers) setNewTarget(mycluster, '/SystemResources', targetSystemResources) save() activate()
The Linux script to call all the post actions.
#!/bin/bash # # Post SOA Configuration # $WLS_SERVER/common/bin/wlst.sh postsoa.py # # Recreate SOA JMS Queues # $WLS_SERVER/common/bin/wlst.sh $ORACLE_HOME/bin/soa-createUDD.py --domain_home /data/user_projects/domains/MYDOMAIN --soacluster My-Cluster --create_jms true # # Create Java Object Cache (Changes hostnames/ports!) # Using inline input (note the empty lines!) # $ORACLE_HOME/common/bin/wlst.sh <<!EOF connect('weblogic', 'welcome1', 't3://node1.vijfhuizen.com:7001') execfile('/opt/weblogic/Middleware/oracle_common/bin/configure-joc.py') node1.vijfhuizen.com,node2.vijfhuizen.com KIMPTC-Cluster 9991 exit() EOF