Tuesday, February 12, 2013

Configure Weblogic JMS Resources


Before we can configure Weblogic JMS resources such as ConnectionFactory, Queue, Topic, it is better to understand some concepts in Weblogic JMS.  

JMS Server


JMS server is the management container for JMS resources defined in JMS modules targeted to.   A JMS server's main responsibility is to maintain persistent storage for these resources, maintain the state of durable subscriber and etc.
JMS servers are persisted in the domain's config.xml file and multiple JMS servers can be configured on the various WebLogic Server instances in a cluster, as long as they are uniquely named.
One domain can have one or more than one JMS server. 
A JMS server can manage one or more JMS modules.
One cluster node has own JMS server targeted to managed node.
For example there are two managed nodes in a clustered environment: osb_ms1 and osb_ms2.
We create two JMS servers: OSB_JMSServer_01 and OSB_JMSServer_02 which are targeting osb_ms01 and osb_ms02 respectively.

JMS Module


JMS modules group JMS configuration resources (such as queues, topics, and connections factories).  These are outside domain configuration.  
JMS module targets the servers.   If it is clustered environment it will target all servers in the cluster.

Subdeployment


Subdeployment is also known as Advanced Targeting.  
Subdeployment resource is a bridge between the group of JMS resources and JMS Servers.   Without Subdeployment the JMS resources cannot target any JMS server.
When you create a JMS resource you need to choose one Subdeployment.
In clustered environment one Subdeployment targets multiple JMS server for each cluster node.

The below diagram shows the relationship between them.


 

Steps to configure JMS resources


The following is an example which demostrate the configuration steps for JMS resources in Oracle using Oracle Weblogic Console. This example is done with a single node environment. 

 

1. Create JMS Server

The first step is to create a JMS server.  Select the domain in Console.  Then click on YourDomain-->Services-->Messaging-->JMS Servers. In the right panel click on New button. And then type in the name for JMS server to be created and select the Persistence Store.  If Persistemce Store doesn't exist create a new Persistence Store.   Then click on Next button.


Select the Weblogic server node and then click on Finish button.  Then a JMS server called Demo-JMSServer is created.  This Demo-JMSServer is targeted to AdminServer.















2. Create JMS Module

The second step is to create a JMS Module. Select the domain in Console. Then click on YourDomain-->Services-->Messaging-->JMS Modules.   In the right panel click on New button.  And then type in the name for JMS Module.  Then click on Next button.
 
 

 
Then select the target of Weblogic server node.


Then click on Next button.

Then click on Finish button.  DemoJMSModule is created.











3. Create JMS Resource

The third step is to create a JMS resource such as connection factory, queue or topic in above created JMS Module.
Click the JMS Module where a resource is created.


Then click on New button.


Select the resource type to be created.   Here we create a Queue.   Then click on Next button.


Type in the Queue nama and JNDI name for this Queue and then click on Next button.



Select the Subdeployment.  If no existing Subdeployment can be used click on Create a New Subdeployment buttn.





Type in the name for a new Subdeployment and then click on OK button.




Then select the JMSServer and then click on Finish button.


 
 
 


 

2 comments:

  1. On your statement -"In clustered environment one Subdeployment targets multiple JMS server for each cluster node." - it's not possible to target one subdeployment on multiple JMS servers.

    ReplyDelete