Configuring Advanced JMS System Resources
3. Optionally, identify migratable server targets or clusters for JMS services (JMSServers and Persistent Stores) using the WebLogic Server Administration
4.5 Configuring Distributed Destination Resources
4.5.2 Creating Uniform Distributed Destinations
The WebLogic Server Administration Console enables you to configure, modify, target, and delete UDD resources in JMS system module.
For a road map of the uniform distributed destination tasks, see the following topics in the Oracle WebLogic Server Administration Console Online Help:
■ "Configure uniform distributed queues" ■ "Configure uniform distributed topics"
Some uniform distributed destination options are dynamically configurable. When options are modified at run time, only incoming messages are affected; stored messages are not affected. For more information about the default values for all uniform distributed destination options, see the following entries in the MBean Reference for Oracle WebLogic Server:
Note: Weighted Distributed Destinations are deprecated in WebLogic Server 10.3.4.0. Oracle recommends using Uniform Distributed Destinations.
Note: For information on configuring and deploying JMS application modules in an enterprise application, see Chapter 6, "Configuring JMS Application Modules for Deployment."
Configuring Distributed Destination Resources
■ "UniformDistributedQueueBean" ■ "UniformDistributedTopicBean"
The following sections provide additional uniform distributed destination information:
■ Section 4.5.2.1, "Targeting Uniform Distributed Queues and Topics"
■ Section 4.5.2.2, "Pausing and Resuming Message Operations on UDD Members" ■ Section 4.5.2.3, "Monitoring UDD Members"
■ Section 4.5.2.4, "Configuring Partitioned Distributed Topics"
4.5.2.1 Targeting Uniform Distributed Queues and Topics
Unlike standalone queue and topics resources in a module, which can only be targeted to a specific JMS server in a domain, UDDs can be targeted to one or more JMS servers, one or more WebLogic Server instances, or to a cluster, since the purpose of UDDs is to distribute its members on every JMS server in a domain. For example, targeting a UDD to a cluster ensures that a member is uniformly configured on every JMS server in the cluster.
You can also use subdeployment groups when configuring UDDs to link specific resources with the distributed members. For example, if a system module named jmssysmod-jms.xml, is targeted to three WebLogic Server instances: wlserver1, wlserver2, and wlserver3, each with a configured JMS server, and you want to target a uniform distributed queue and a connection factory to each server instance, you can group the UDQ and connection factory in a subdeployment named servergroup, to ensure that these resources are always linked to the same server instances.
Here's how the servergroup subdeployment resources would look in jmssysmod-jms.xml:
<weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms"> <connection-factory name="connfactory"> <sub-deployment-name>servergroup</sub-deployment-name> <jndi-name>jms.connectionfactory.CF</jndi-name> </connection-factory> <uniform-distributed-queue name="UniformDistributedQueue"> <sub-deployment-name>servergroup</sub-deployment-name> <jndi-name>jms.queue.UDQ</jndi-name> <forward-delay>10</forward-delay> </uniform-distributed-queue> </weblogic-jms>
And here's how the servergroup subdeployment targeting would look in the domain's configuration file: <jms-system-resource> <name>jmssysmod-jms</name> <target>cluster1,</target> <sub-deployment> <name>servergroup</name> <target>wlserver1,wlserver2,wlserver3</target> </sub-deployment> <descriptor-file-name>jms/jmssysmod-jms.xml</descriptor-file-name> </jms-system-resource>
Note: Changing the targets of a UDD can lead to the removal of a member destination and the unintentional loss of messages.
Configuring Distributed Destination Resources
4.5.2.2 Pausing and Resuming Message Operations on UDD Members
You can pause and resume message production, insertion, and/or consumption operations on a uniform distributed destinations, either programmatically (using JMX and the runtime MBean API) or administratively (using the WebLogic Server
Administration Console). In this way, you can control the JMS subsystem behavior in the event of an external resource failure that would otherwise cause the JMS
subsystem to overload the system by continuously accepting and delivering (and redelivering) messages.
For more information on the "pause and resume" feature, see Section 11.5, "Controlling Message Operations on Destinations."
4.5.2.3 Monitoring UDD Members
Runtime statistics for uniform distributed destination members can be monitored via the WebLogic Server Administration Console, as described in Section 9.1, "Monitoring JMS Statistics."
4.5.2.4 Configuring Partitioned Distributed Topics
The uniform distributed topic message Forwarding Policy specifies whether a sent message is forwarded to all members.
The valid values are:
■ Replicated: The default. All physical topic members receive each sent message. If
a message arrives at one of the physical topic members, a copy of this message is forwarded to the other members of that uniform distributed topic. A subscription on any one particular member will get a copy of any message sent to the uniform distributed topic logical name or to any particular uniform distributed topic member.
■ Partitioned: The physical member receiving the message is the only member of
the uniform distributed topic that is aware of the message. When a message is published to the logical name of a Partitioned uniform distributed topic, it will only arrive on one particular physical topic member. Once a message arrives on a physical topic member, the message is not forwarded to the rest of the members of the uniform distributed destination, and subscribers on other physical topic members do not get a copy of that message.
Most new applications will use the Partitioned forwarding policy in combination with a logical subscription topology on a uniform distributed topic that consists of:
■ A same named physical subscription created directly on each physical member. ■ A Client ID Policy of Unrestricted.
■ A Subscription Sharing Policy of Sharable.
For more information on how to create and use the partitioned distributed topic, see:
■ "Create a partitioned uniform distributed topic in a system module" in Oracle
WebLogic Server Administration Console Online Help.
■ Configuring and Deploying MDBs Using Distributed Topics in Developing
Message-Driven Beans for Oracle WebLogic Server
■ Developing Advanced Pub/Sub Applications in Developing JMS Applications for
Oracle WebLogic Server
Configuring Distributed Destination Resources
Partitioned topic publishers have the option of load balancing their messages across multiple members by tuning the connection factory Affinity and Load Balance
attributes. The Unit of Order messages are routed to the correct member based on the UOO routing policy and the subscriber status. See Configure connection factory load balancing parameters in Oracle WebLogic Server Administration Console Online Help.