This post is a step-by-step guide to configure JMS resources in Weblogic Server in order to work with JMSAdapter
Working with JMSAdapter in Oracle SOA Suite 11g involves configuration of various JMS resources in WLS
- JMS Module(Optional) : Is a definition that contains various JMS Resources like queues, topics, etc.
- Sub-Deployment(Optional) : used to group target servers
- Connection Factory : is a Weblogic resource that enables JMS clients to create connections to JMS destinations
- Queue / Topic : the actual destination of the message, either a queeu(point to point) or topic(publish-subscribe)
- Connection Pool : Create a pool of connections for the JMSAdapter application
Creating a JMS Module
This step is not mandatory, you can use the default module 'SOAJMSModule'
Weblogic Console --> Services --> Messaging --> JMS Module --> New --> Provide a JMS Module Name --> select the target server(to which you want to deploy this, usually the managed server where SOA is configured) --> Leave the check box(define resources in this module) --> Finish
This step creates a new JMSModule 'MyJMSModule'.
Creating a sub-deployment
Every JMSModule has to be targetted to a Sub-Deployment. A Sub-Deployment is used to group targets
Click on the just created MyJMSModule --> click on Subdeployments tab at the top --> New --> Give name to the subdeployment --> select the target (can either be a server or JMSServer. As this is specific to JMS, I've selected SOAJMSServer(default available JMS Server. You can even create your own JMSServer))
Creating a Connection Factory
A Connection Factory is used to create connections for the JMS Clients to interact with JMS Resources
Click on the just created MyJMSModule --> New --> Connection Factory --> Give name & JNDI name --> soa_server1(selected by default) --> Finish
Creating a Queue
Queue is the actual destination
Click on the just created MyJMSModule --> New --> Queue --> Give name & JNDI name --> select subdeployment --> Finish
This sets up all the JMS Resources.
You are still left with one configuration to be done to use this queue with a JMS Adapter, which is creating an outbound connection pool
For this, go to Deployments --> JMSAdapter --> Configuration --> Outbound Connection Pools --> New --> oracle.tip.adapter.jms.IJmsConnectionFactory --> Next --> Provide JNDI Name for the Connection Pool(This will be used in the JMSAdapter configuration in the Composite)
This will create a Connection Pool, but Connection Factory(the resource used to connect to Queue) is not yet configured, which is done in the next step
Click on the just created connection pool --> enter the ConnectionFactoryLocation as the JNDI name that you've created in Step 2 (which is jms/myConnFactory and hit Enter) --> Save
Update the JMSAdapter deployment
Console --> Deployments --> click on JmsAdapter checkbox --> Update --> select defaults --> Finish
Now, you can use the ConnectionPool name eis/jms/myConnPool in the dbAdapter in your SOA Composite
If you get any error saying the connectionPool not found, restart the SOA Server
Please read the next post on working with JMS Adapter