For WebLogic Server releases 9.0 and higher, JMS provides advanced store-and-forward capability for high-performance message forwarding from a local server instance to a remote JMS destination. See "Understanding the Store-and-Forward Service" in Configuring and Managing Store-and-Forward for Oracle WebLogic Server.
The following sections provide information on how to get the best performance from Store-and-Forward (SAF) applications:
Avoid using SAF if remote destinations are already highly available. JMS clients can send directly to remote destinations. Use SAF in situations where remote destinations are not highly available, such as an unreliable network or different maintenance schedules.
Use the better performing JMS SAF feature instead of using a Messaging Bridge when forwarding messages to remote destinations. In general, a JMS SAF agent is significantly faster than a Messaging Bridge. One exception is a configuration when sending messages in a non-persistent exactly-once mode.
Note:A Messaging Bridge is still required to store-and-forward messages to foreign destinations and destinations from releases prior to WebLogic 9.0.
Configure separate SAF Agents for JMS SAF and Web Services Reliable Messaging Agents (WS-RM) to simplify administration and tuning.
Sharing the same WebLogic Store between subsystems provides increased performance for subsystems requiring persistence. For example, transactions that include SAF and JMS operations, transactions that include multiple SAF destinations, and transactions that include SAF and EJBs. See Tuning the WebLogic Persistent Store.
Target imported destinations to multiple SAF agents to load balance message sends among available SAF agents.
Increase the JMS SAF
Window Size for applications that handle small messages. By default, a JMS SAF agent forwards messages in batches that contain up to 10 messages. For small messages size, it is possible to double or triple performance by increasing the number of messages in each batch to be forwarded. A more appropriate initial value for
Window Size for small messages is 100. You can then optimize this value for your environment.
Window Sizefor applications handling large message sizes is not likely to increase performance and is not recommended.
Window Sizealso tunes WS-RM SAF behavior, so it may not be appropriate to tune this parameter for SAF Agents of type
Increase the JMS SAF
Window Interval. By default, a JMS SAF agent has a
Window Interval value of 0 which forwards messages as soon as they arrive. This can lower performance as it can make the effective
Window size much smaller than the configured value. A more appropriate initial value for
Window Interval value is 500 milliseconds. You can then optimize this value for your environment. In this context, small messages are less than a few K, while large messages are on the order of tens of K.
Window Intervalimproves performance only in cases where the forwarder is already able to forward messages as fast as they arrive. In this case, instead of immediately forwarding newly arrived messages, the forwarder pauses to accumulate more messages and forward them as a batch. The resulting larger batch size improves forwarding throughput and reduces overall system disk and CPU usage at the expense of increasing latency.
Non-Persistent QOS value to
At-Least-Once for imported destinations if your application can tolerate duplicate messages.