1) Prepare property file with Domain information , Number of JMS to configure and Each JMS resource .
domain.name=common_domain
domain.adminHost=<AdminServer>
domain.adminPort=7001
domain.adminUserName=
domain.soahome=/oracle/products/fmw/soa
###########################
JMS Configuration #########################################
deploymentPn.jms.location=/oracle/config/clusters/common_domain/soa_cluster/DeploymentPns/JMSAdapter/Pn.xml
totalJmsToConfigure=11
######################################################
# if JNDI is for
'Topic' set jmsTopic value to 'true'.
# if JNDI
Transaction should be set to true set jmsTransaction to true.
#################################################
jms.resource.jmsJNDIName1=eis/jms/Queue
jms.resource.jmsTransaction1=false
jms.resource.jmsTopic1=false
jms.resource.CF1=jms/MigratableSOAQueueCFXA
jms.resource.jmsFactoryProperties1=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName2=eis/jms/Topic
jms.resource.jmsTransaction2=false
jms.resource.jmsTopic2=true
jms.resource.CF2=jms/MigratableSOATopicCFXA
jms.resource.jmsFactoryProperties2=ClientID=;java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName3=eis/jms/GlobalQueue
jms.resource.jmsTransaction3=false
jms.resource.jmsTopic3=false
jms.resource.CF3=jms/MigratableSOAQueueCFXA
jms.resource.jmsFactoryProperties3=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName4=eis/jms/GlobalTopic
jms.resource.jmsTransaction4=false
jms.resource.jmsTopic4=true
jms.resource.CF4=jms/MigratableSOATopicCFXA
jms.resource.jmsFactoryProperties4=ClientID=;java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName5=eis/jms/SSQueue
jms.resource.jmsTransaction5=false
jms.resource.jmsTopic5=false
jms.resource.CF5=jms/MigratableSOAQueueCFXA
jms.resource.jmsFactoryProperties5=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName6=eis/jms/SSQueue_NonXA
jms.resource.jmsTransaction6=false
jms.resource.jmsTopic6=false
jms.resource.CF6=jms/MigratableSOAQueueCF
jms.resource.jmsFactoryProperties6=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName7=eis/jms/PRIQueue
jms.resource.jmsTransaction7=false
jms.resource.jmsTopic7=false
jms.resource.CF7=jms/MigratableSOAQueueCFXA
jms.resource.jmsFactoryProperties7=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName8=eis/jms/DDQueue
jms.resource.jmsTransaction8=
false
jms.resource.jmsTopic8=false
jms.resource.CF8=jms/MigratableSOAQueueCFXA
jms.resource.jmsFactoryProperties8=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName9=eis/jms/CRITopic
jms.resource.jmsTransaction9=false
jms.resource.jmsTopic9=true
jms.resource.CF9=jms/MigratableSOATopicCFXA
jms.resource.jmsFactoryProperties9=ClientID=CRI;java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName10=eis/jms/CRIQueue
jms.resource.jmsTransaction10=false
jms.resource.jmsTopic10=false
jms.resource.CF10=jms/MigratableSOAQueueCFXA
jms.resource.jmsFactoryProperties10=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
###############################################################################################################
##########################################
#set appropriate
host name and port number for foreign JMS provider.
##########################################
jms.resource.jmsJNDIName11=eis/jms/BAPQueue
jms.resource.jmsTransaction11=false
jms.resource.jmsTopic11=false
jms.resource.CF11=jms/auditlog/aggregator_cf
jms.resource.jmsFactoryProperties11=java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory;java.naming.provider.url=t3://Server-osb11.mycompany.com:15201
###############################################################################################################
2) Create a jmsAdapterConfig.py script with below entries :
from java.io import FileInputStream
env=sys.argv[1]
propInputStream = FileInputStream(env + ".properties")
configProps = Properties()
configProps.load(propInputStream)
totjmsToConfigure=configProps.get('totalJmsToConfigure')
domainName=configProps.get("domain.name")
hostName=configProps.get("domain.adminHost")
portNo=configProps.get("domain.adminPort")
adminUserName=configProps.get("domain.adminUserName")
planPathJMS=configProps.get("deploymentPlan.jms.location")
adminURL="t3://" + hostName + ":" + portNo
soahome=configProps.get('domain.soahome')
appPathJMS=soahome+'/soa/connectors/JmsAdapter.rar'
appNameJMS='JmsAdapter'
moduleOverrideNamedb=appNameJMS+'.rar'
moduleDescriptorName='META-INF/weblogic-ra.xml
def makeDeploymentPlanVariable(wlstPlan, name, value, xpath,overrideName, origin='planbased')
print 'inside makeDeploymentPlanVariable'
wlstPlan.destroyVariable(name)
wlstPlan.destroyVariableAssignment(name, overrideName, moduleDescriptorName)
variableAssignment = wlstPlan.createVariableAssignment(name, overrideName, moduleDescriptorName)
variableAssignment.setXpath(xpath)
variableAssignment.setOrigin(origin)
wlstPlan.createVariable(name, value)
print 'moduleDescriptorName=',moduleDescriptorName
i = 1
print 'no of jms adapter jndi to configure...' +totjmsToConfigure
print 'connecting to weblogic domain...' + domainName
print 'configuring adapter ....' + appPathJMS
#connect(adminUserName, passWord, adminURL)
connect()
edit()
startEdit()
try:
myPlanjms=loadApplication(appPathJMS, planPathJMS)
while (i <= int(totjmsToConfigure)):
print 'inside while'
try:
jmsJndi = configProps.get("jms.resource.jmsJNDIName"+str(i))
jmsTransaction=configProps.get('jms.resource.jmsTransaction'+str(i))
jmsTopic=configProps.get('jms.resource.jmsTopic'+str(i))
jmsCF=configProps.get('jms.resource.CF'+str(i))
jmsFactoryProperties= configProps.get('jms.resource.jmsFactoryProperties'+str(i))
print 'jmsJndi............', jmsJndi
makeDeploymentPlanVariable(myPlanjms, "ConnectionInstance_"+jmsJndi, jmsJndi, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="'+jmsJndi+'"]/jndi-name',moduleOverrideNamedb)
makeDeploymentPlanVariable(myPlanjms, "ConfigProperty_ConnectionFactoryLocation_Value_"+jmsJndi, jmsCF, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="'+jmsJndi+'"]/connection-properties/properties/property/[name="ConnectionFactoryLocation"]/value',moduleOverrideNamedb)
if len(jmsTopic) !=0:
makeDeploymentPlanVariable(myPlanjms, "ConfigProperty_IsTopic_Value_"+jmsJndi, jmsTopic, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="'+jmsJndi+'"]/connection-properties/properties/property/[name="IsTopic"]/value',moduleOverrideNamedb)
else:
print 'Not a Topic'
makeDeploymentPlanVariable(myPlanjms, "ConfigProperty_IsTopic_Value_"+jmsJndi, jmsTopic, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="'+jmsJndi+'"]/connection-properties/properties/property/[name="IsTopic"]/value',moduleOverrideNamedb)
if len(jmsTransaction)!=0:
makeDeploymentPlanVariable(myPlanjms, "ConfigProperty_IsTransacted_Value_"+jmsJndi, jmsTransaction, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="'+jmsJndi+'"]/connection-properties/properties/property/[name="IsTransacted"]/value',moduleOverrideNamedb)
if len(jmsFactoryProperties)!=0:
makeDeploymentPlanVariable(myPlanjms, "ConfigProperty_FactoryProperties_Value_"+jmsJndi, jmsFactoryProperties, '/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="'+jmsJndi+'"]/connection-properties/properties/property/[name="FactoryProperties"]/value',moduleOverrideNamedb)
myPlanjms.save();
save();
except:
print 'Exception occured while configuring jms adapter jndi'
print 'error info....', sys.exc_info()[0]
raise
i = i+1
cd('/AppDeployments/JmsAdapter/Targets');
print 'updating configuration............. for ', appNameJMS
print 'updating configuration............. for ', planPathJMS
updateApplication(appNameJMS, planPathJMS);
startApplication(appNameJMS)
activate(block='true');
except java.lang.Exception, ex:
print ex.printStackTrace()
print '!! Creation of JMS Resources was unsuccessful'
except:
print '********************************************'
print 'Exception occured while configuring jms jndi'
print 'error info....', sys.exc_info()[0]
undo('false','y')
exit('y',1001)
print '********************************************'
3) How to execute : in below command env is the property file created in step1.
/oracle/products/fmw/oracle_common/common/bin/wlst.sh jmsAdapterConfig.py env
it prompt for UserName , Password and URL , Provide your login credentials and AdminURL