Configure One-Way Sends On a Connection Factory One-Way Send Support In a Cluster With a Single Destination One-Way Send Support In a Cluster With Multiple Destinations

Tuning WebLogic JMS 14-21 ■ Ensure the maximum asynchronous consumer message backlog The MessagesMaximum parameter on the connection factory was set to a value of 1. UOO relaxes these requirements significantly as it allows for multiple consumers and allows for a asynchronous consumer message backlog of any size. To migrate older applications to take advantage of UOO, simply configure a default UOO name on the physical destination. See Configure connection factory unit-of-order parameters in Oracle WebLogic Server Administration Console Help and Ordered Redelivery of Messages in Programming JMS for Oracle WebLogic Server.

14.16 Using One-Way Message Sends

One-way message sends can greatly improve the performance of applications that are bottle-necked by senders, but do so at the risk of introducing a lower QOS quality-of-service. Typical message sends from a JMS producer are termed two-way sends because they include both an internal request and an internal response. When an producer application calls send, the call generates a request that contains the applications message and then waits for a response from the JMS server to confirm its receipt of the message. This call-and-response mechanism regulates the producer, since the producer is forced to wait for the JMS servers response before the application can make another send call. Eliminating the response message eliminates this wait, and yields a one-way send. WebLogic Server supports a configurable one-way send option for non-persistent, non-transactional messaging; no application code changes are required to leverage this feature. By enabling the One-Way Send Mode options, you allow message producers created by a user-defined connection factory to do one-way message sends, when possible. When active, the associated producers can send messages without internally waiting for a response from the target destinations host JMS server. You can choose to allow queue senders and topic publishers to do one-way sends, or to limit this capability to topic publishers only. You must also specify a One-Way Window Size to determine when a two-way message is required to regulate the producer before it can continue making additional one-way sends.

14.16.1 Configure One-Way Sends On a Connection Factory

You configure one-way message send parameters on a connection factory by using the Administration Console, as described in Configure connection factory flow control in the Oracle WebLogic Server Administration Console Help. You can also use the WebLogic Scripting Tool WLST or JMX via the FlowControlParamsBean MBean.

14.16.2 One-Way Send Support In a Cluster With a Single Destination

To ensure one-way send support in a cluster with a single destination, verify that the connection factory and the JMS server hosting the destination are targeted to the same WebLogic server. The connection factory must not be targeted to any other WebLogic Server instances in the cluster. Note: One-way message sends are disabled if your connection factory is configured with XA Enabled. This setting disables one-way sends whether or not the sender actually uses transactions. 14-22 Performance and Tuning for Oracle WebLogic Server

14.16.3 One-Way Send Support In a Cluster With Multiple Destinations

To ensure one-way send support in a cluster with multiple destinations that share the same name, special care is required to ensure the WebLogic Server instance that hosts the client connection also hosts the destination. One solution is the following: 1. Configure the cluster wide RMI load balancing algorithm to Server Affinity. 2. Ensure that no two destinations are hosted on the same WebLogic Server instance. 3. Configure each destination to have the same local-jndi-name. 4. Configure a connection factory that is targeted to only those WebLogic Server instances that host the destinations. 5. Ensure sender clients use the JNDI names configured in Steps 3 and 4 to obtain their destination and connection factory from their JNDI context. 6. Ensure sender clients use URLs limited to only those WebLogic Server instances that host the destinations in Step 3. This solution disables RMI-level load balancing for clustered RMI objects, which includes EJB homes and JMS connection factories. Effectively, the client will obtain a connection and destination based only on the network address used to establish the JNDI context. Load balancing can be achieved by leveraging network load balancing, which occurs for URLs that include a comma-separated list of WebLogic Server addresses, or for URLs that specify a DNS name that resolves to a round-robin set of IP addresses as configured by a network administrator. For more information on Server Affinity for clusters, see Load Balancing for EJBs and RMI Objects in Using Clusters for Oracle WebLogic Server.

14.16.4 When One-Way Sends Are Not Supported