Tuning WebLogic JMS 14-23
■
Unit-of-work
■
Distributed destinations
14.16.8 Destination Quota Exceeded
When the specified quota is exceeded on the targeted destination, then standard two-way sends will be used until the quota clears.
One-way messages that exceed quota are silently deleted, without immediately throwing exceptions back to the client. The client will eventually get a quota exception
if the destination is still over quota at the time the next two-way send occurs. Even in one-way mode, clients will send a two-way message every One Way Send Window Size
number of messages configured on the clients connection factory.
A workaround that helps avoid silently-deleted messages during quota conditions is to increase the value of the Blocking Send Timeout configured on the connection
factory, as described in Section 14.11, Compressing Messages
. The one-way messages will not be deleted immediately, but instead will optimistically wait on the JMS server
for the specified time until the quota condition clears presumably due to messages getting consumed or by messages expiring. The client sender will not block until it
sends a two-way message. For each client, no more than One Way Window Size messages will accumulate on the server waiting for quota conditions to clear.
14.16.9 Change In Server Security Policy
A change in the server-side security policy could prevent one-way message sends without notifying the JMS client of the change in security status.
14.16.10 Change In JMS Server or Destination Status
One-way sends can be disabled when a host JMS server or target destination is administratively undeployed, or when message production is paused on either the
JMS server or the target destination using the Production PauseResume feature. See Production Pause and Production Resume in Configuring and Managing JMS for
Oracle WebLogic Server.
14.16.11 Looking Up Logical Distributed Destination Name
One-way message sends work with distributed destinations provided the client looks up the physical distributed destination members directly rather than using the logical
distributed destinations name. See Using Distributed Destinations in Programming JMS for Oracle WebLogic Server.
14.16.12 Hardware Failure
A hardware or network failure will disable one-way sends. In such cases, the JMS producer is notified by an OnException or by the next two-way message send. Even
in one-way mode, clients will send a two-way message every One Way Send Window Size number of messages configured on the clients connection factory. The producer
will be closed. The worst-case scenario is that all messages can be lost up to the last two-way message before the failure occurred.
14.16.13 One-Way Send QOS Guidelines
Use the following QOS-related guidelines when using the one-way send mode for typical non-persistent messaging.
14-24 Performance and Tuning for Oracle WebLogic Server
■
When used in conjunction with the Blocking Sends feature, then using one-way sends on a well-running system should achieve similar QOS as when using the
two-way send mode.
■
One-way send mode for topic publishers falls within the QOS guidelines set by the JMS Specification, but does entail a lower QOS than two-way mode the
WebLogic Server default mode.
■
One-way send mode may not improve performance if JMS consumer applications are a system bottleneck, as described in Asynchronous vs. Synchronous
Consumers in Programming JMS for Oracle WebLogic Server.
■
Consider enlarging the JVMs heap size on the client andor server to account for increased batch size the Window of sends. The potential memory usage is
proportioned to the size of the configured Window and the number of senders.
■
The sending application will not receive all quota exceptions. One-way messages that exceed quota are silently deleted, without throwing exceptions back to the
sending client. See Section 14.16.8, Destination Quota Exceeded
for more information and a possible work around.
■
Configuring one-way sends on a connection factory effectively disables any message flow control parameters configured on the connection factory.
■
By default, the One-way Window Size is set to 1, which effectively disables one-way sends as every one-way message will be upgraded to a two-way send.
Even in one-way mode, clients will send a two-way message every One Way Send Window Size number of messages configured on the clients connection factory.
Therefore, you must set the one-way send window size much higher. It is recommended to try setting the window size to 300 and then adjust it according
to your application requirements.
■
The client application will not immediately receive network or server failure exceptions, some messages may be sent but silently deleted until the failure is
detected by WebLogic Server and the producer is automatically closed. See Section 14.16.12, Hardware Failure
for more information.
14.17 Tuning the Messaging Performance Preference Option