Tuesday, August 17, 2010

WebLogic integration with MQ series using JMS Foreign Server

I am taking some notes just to track:

http://www.ibm.com/developerworks/websphere/library/techarticles/0604_kesavan/0604_kesavan.html

one must configure the MDB to use a foreign JMS connection factory in addition to the foreign JMS
destination.


Error getting JMSServer member info NestedException Message is :javax.naming.Reference

http://ibswings.blogspot.com/2008/02/integrating-mq-broker-6-with-bea.html

If MQ and WLS are NOT on the same box, make sure you choose the transport=MQClient on MQ, this will generate a .bindings file totally different from the previous one; remember to copy this file to WebLogic.



To verify that your MDB is actually registered as a consumer of the MQ queue, "check value of IPProcs attribute in queue. This value gives the current number of threads listening for messages. If this value is 0 then there is no thread listening. " ( I am quoting a OTN thread)


This http://blog.xebia.com/2009/12/02/restricting-the-number-of-jms-mq-connections-made-by-the-osb/ is a very interesting reading on how to configure the number of listeners on the MQ queue.


This script is useful to create the resources:

cd('/')
cmo.createJMSSystemResource('MQIntegrationTest')

cd('/SystemResources/MQIntegrationTest')
set('Targets',jarray.array([ObjectName('com.bea:Name=dev2WlsCBMs1,Type=Server')], ObjectName))

cd('/JMSSystemResources/MQIntegrationTest/JMSResource/MQIntegrationTest')
cmo.createForeignServer('MQTestForeignServer')

cd('/JMSSystemResources/MQIntegrationTest/JMSResource/MQIntegrationTest/ForeignServers/MQTestForeignServer')
cmo.setDefaultTargetingEnabled(true)
cmo.setConnectionURL('file:////acme/domains/dev2WlsCBDomain/mqjndistuff')
cmo.setInitialContextFactory('com.sun.jndi.fscontext.RefFSContextFactory')
cmo.unSet('JNDIPropertiesCredentialEncrypted')
cmo.createForeignDestination('ReceiverDetails')

cd('/JMSSystemResources/MQIntegrationTest/JMSResource/MQIntegrationTest/ForeignServers/MQTestForeignServer/ForeignDestinations/ReceiverDetails')
cmo.setLocalJNDIName('jms/WLReceiverQueue')
cmo.setRemoteJNDIName('MQSenderQueue')

cd('/JMSSystemResources/MQIntegrationTest/JMSResource/MQIntegrationTest/ForeignServers/MQTestForeignServer')
cmo.createForeignConnectionFactory('ReceiverCF')

cd('/JMSSystemResources/MQIntegrationTest/JMSResource/MQIntegrationTest/ForeignServers/MQTestForeignServer/ForeignConnectionFactories/ReceiverCF')
cmo.setLocalJNDIName('jms/WLReceiverQCF')
cmo.setRemoteJNDIName('MQSenderQCF')

activate()

No comments: