Friday, 9 September 2016

Configure JMS adapter using WLST

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

No comments:

Post a Comment