Configuring and Managing WebLogic JMS
The WebLogic Scripting Tool (WLST) is a command-line scripting interface that you can use to create and manage JMS servers and JMS system resources. See "Using the WebLogic Scripting Tool and WLST Sample Scripts in the WebLogic Scripting Tool.
A module is described by the jms-system-resource
MBean in the config.xml
file. Basic components of a jms-system-resource
MBean are:
name
—Name of the module.target
—Server, cluster, or migratable target the module is targeted to.sub-deployment
—A mechanism by which JMS module resources (such as queues, topics, and connection factories) are grouped and targeted to a server resource (such as a JMS server instance, WebLogic server instance, or cluster). descriptor-file-name
—Path and filename of the system module file.The JMS resources of a module are located in a module descriptor file that conforms to the weblogic-jmsmd.xml schema. In Figure 6-1, the module is named myModule-jms.xml
and it contains JMS resource definitions for a connection factory and a queue. The sub-deployment-name
element is used to group and target JMS resources in the myModule-jms.xml
file to targets
in the config.xml
. You have to provide a value for the sub-deployment-name
element when using WLST. For more information on subdeployments, see "Targeting JMS Modules and Subdeployment Resources". In Figure 6-1, the sub-deployment-name
DeployToJMSServer1is used to group and target the connection factory CConfac
and the queue CQueue
in the myModule-jms
module.
For more information on how to use JMS resources, see "Understanding JMS Resource Configuration in Configuring and Managing WebLogic JMS.
Figure 6-1 Subdeployment Architecture
Basic tasks you need to perform when creating JMS resources with the WLST are:
After you have established an edit session, use the following steps configure JMS servers and system resources:
servermb=getMBean("Servers/examplesServer")
if servermb is None:
print '@@@ No server MBean found'
jmsMySystemResource = create(myJmsSystemResource,"JMSSystemResource")
jmsMySystemResource.addTarget(servermb)
theJMSResource = jmsMySystemResource.getJMSResource()
connfact1 = theJMSResource.createConnectionFactory(factoryName)
jmsqueue1 = theJMSResource.createQueue(queueName)
connfact1.setJNDIName(factoryName)
jmsqueue1.setJNDIName(queueName)
connfact1.setSubDeploymentName('DeployToJMSServer1')
jmsqueue1.setSubDeploymentName('DeployToJMSServer1')
jmsserver1mb = create(jmsServerName,'JMSServer')
jmsserver1mb.addTarget(servermb)
sub-deployment-name
element. This step groups the system resources in module to a sub-deployment
element in the config.xml
. For example:subDep1mb = jmsMySystemResource.createSubDeployment('DeployToJMSServer1')
subDep1mb.addTarget(jmsserver1mb)
Listing 6-1 WLST Script to Create JMS Resources
"""
This script starts an edit session, creates a JMS Server,
targets the jms server to the server WLST is connected to and creates
a JMS System module with a jms queue and connection factory. The
jms queues and topics are targeted using sub-deployments.
"""
import sys
from java.lang import System
print "@@@ Starting the script ..."
myJmsSystemResource = "CapiQueue-jms"
factoryName = "CConFac"
jmsServerName = "myJMSServer"
queueName = "CQueue"
url = sys.argv[1]
usr = sys.argv[2]
password = sys.argv[3]
connect(usr,password, url)
edit()
startEdit()
//Step 1
servermb=getMBean("Servers/examplesServer")
if servermb is None:
print '@@@ No server MBean found'
else:
//Step 2
jmsMySystemResource = create(myJmsSystemResource,"JMSSystemResource")
//Step 3
jmsMySystemResource.addTarget(servermb)
//Step 4
theJMSResource = jmsMySystemResource.getJMSResource()
//Step 5
connfact1 = theJMSResource.createConnectionFactory(factoryName)
jmsqueue1 = theJMSResource.createQueue(queueName)
//Step 6
connfact1.setJNDIName(factoryName)
jmsqueue1.setJNDIName(queueName)
//Step 7
jmsqueue1.setSubDeploymentName('DeployToJMSServer1')
connfact1.setSubDeploymentName('DeployToJMSServer1')
//Step 8
jmsserver1mb = create(jmsServerName,'JMSServer')
//Step 9
jmsserver1mb.addTarget(servermb)
//Step 10
subDep1mb = jmsMySystemResource.createSubDeployment('DeployToJMSServer1')
//Step 11
subDep1mb.addTarget(jmsserver1mb)
.
.
.
You can modify or monitor JMS objects and attributes by using the appropriate method available from the MBean.
For more information, see Navigating and Editing MBeans in the WebLogic Scripting Tool.
Listing 6-2 WLST Script to Modify JMS Objects
.
.
print '@@@ delete system resource'
jmsMySystemResource = delete("CapiQueue-jms","JMSSystemResource")
print '@@@ delete server'
jmsserver1mb = delete(jmsServerName,'JMSServer')
.
.
.
This section provides best practices information when using WLST to configure JMS servers and resources: