This content has been marked as final. Show 7 replies
I have seen it already and FYI above link is file based bindings for that WebSphere MQ Server needs to reside on same physical machine and hence that is not the requirement. I want configuration which shows REMOTE (IP Based) access from WebLogic to WebSphere.
I think I have to confgure myself...Let's see if I can do that.... :)
Were you able to configure the messaging bridge to connect to the remote MQ queue.
I am getting the following error when i apply debug for messaging bridge.
Bridge MQToJMS failed to connect to the source destination and will try again in 25 seconds. This could be a temporary condition unless the messages repeat several times. (java.lang.Exception: javax.resource.ResourceException: Failed to start the connection
-------------- Linked Exception ------------
javax.jms.JMSException: MQJMS1068: failed to obtain XAResource
-------------- Linked Exception 2 ------------
javax.transaction.xa.XAException: client connection not XA enabled
I have the mqetclient.jar and other mq related jars placed in my domain lib folder.
Following are the bridge destination configurations
MQToJMS's source configurations are:
ConnectionURL = file:/E:/42431/MQ-JNDI
DestinationType = Queue
DestinationJNDIName = MQSenderQueue
InitialContextFactory = com.sun.jndi.fscontext.RefFSContextFactory
ConnectionFactoryJNDIName = MQSenderQCF
MQToJMS's target configurations are:
ConnectionURL = t3://172.24.99.246:7038,172.24.99.246:7040
DestinationType = Queue
DestinationJNDIName = mqjmsDQ
InitialContextFactory = weblogic.jndi.WLInitialContextFactory
ConnectionFactoryJNDIName = mqjmscf
Also, while creating the .bindings file, i used the following commands
def xaqcf(MQSenderQCF) transport(CLIENT) qmgr(MQ_JMS) channel(SYSTEM.DEF.SVRCONN) hostname(172.24.45.60) port(2324)
def q(MQSenderQueue) qmgr(MQ_JMS) queue(MQSenderQueue)
In the above commands, the actual qmgr and queue on remote server are: MQ_JMS and MQSenderQueue respectively.
Is there something that I am missing?
To configure WebLogic Application Server with remote WebSphere MQ Server, I have successfully configured as follows (I found a link on web that helped me configure it but completely missed it so following are my own instructions which is copied and paste here from a document with snapshots, so whenever you see as follows which means I am referring to a snapshot but that should not harm your setup)
For Remote WebSphere MQ Server Installation
We will be using simple file-based JNDI context and configure the JMS objects in that JNDI namespace. These JNDI objects are used by applications running in WebLogic Application Server to connect to the WebSphere MQ queue manager. For this integration, WebLogic and WebSphere MQ can be on separate machine.
As we will be using client libraries we have to define a channel of type ‘SVRCONN’. This can be done from runmqsc prompt as follows;
define channel(‘WL_Channel’) CHLTYPE(SVRCONN)
The setting is for file-based JNDI. Please create the directory C:\MQ-JNI on machine where IBM WebSphere MQ Server is installed before continuing with the next step. Under new folder C:\JNDI-Directory create a file MyAdmin.Config with the following contents:
Open MQ explorer on remote machine and navigate to ‘JMS Administered Objects’, right click and select ‘Add Initial Context’, a pop window will open as follows;
Select ‘File System’ as location and navigate to ‘C:\MQ-JNDI’ directory we created earlier and click ‘Finish’, initial context will be added as follows;
Right click on ‘Connection Factories’ and select ‘New Connection Factory’, provide name ‘MQSenderQCF’ and press ‘Next’;
Select ‘Support XA transactions’ and click ‘Next’;
Select ‘MQ Client’ as transport and click ‘Next’;
Accept default values and press ‘Next’;
Select ‘Connections’ and provide information for a ‘Base queue manager’ and ‘Connection list’, under ‘Channles’ menu provide channel name ‘WL_Channel’ and press ‘Finish’ and you will see an entry will be added in ‘Connection Factories’.
Please repeat the above procedure for ‘MQReceiverQCF’ and you will have following bindings for connection factories;
Now we need to bind MQ Queues, right click on ‘Destinations New Destination’ and provide name for it and press ‘Next’;
Accept default values on next screen and click ‘Next’;
Provide information for remote queue with queue manager details and press ‘Finish’ to create the bindings;
Please repeat the above queue mapping procedure for ‘MQReceiverQueue’ and you will have following destination bindings;
After successful execution of above steps ‘.bindings’ file will be created under ‘C:\MQ-JNDI’ directory.
Note: Please open this file with any text editor and verify that values provided for host and port is recorded successfully.Also please replace all ‘localhost’ entries to IP_Address of the machine where WebSphere MQ Server is installed.Also please make sure your queue manager listener is up and running.
Now copy this ‘.bindings’ file onto the machine where Oracle WebLogic Server is installed to any location say (C:\JNDI-Directory)
1. Configurations need to be done at WebLogic
Before starting the Weblogic Server we have to ensure that certain MQ related jar files are in our Weblogic Server’s classpath. Easiest way to do this is to copy all the jars from “(..\Program Files\IBM\WebSphere MQ\Java\lib)” folder to our Weblogic domain’s lib (..<app.Serverhome>\user_projects\domains\base_domain\lib) folder, from where Weblogic loads them up while starting, effectively you can copy only ‘jars’;
Note: If you are using 64-bit system please replace (backup) your original ‘mqjbnd.dll’ under “(..\Program Files\IBM\WebSphere MQ\Java\lib)” directory from ‘mqjbnd.dll’ present under “(..\Program Files\IBM\WebSphere MQ\Java\lib64)” directory.
Hope this helps,