Configuring and Managing the WebLogic Messaging Bridge
Use the following information to help you design and configure a WebLogic Messaging Bridge:
The following sections provide information on when to use a messaging bridge:
A messaging bridge provides high availability for remote destinations. Store and forward messaging enables a local client to produce to a local destination and have those messages automatically forwarded to the remote destination when it is available. This allows a local client to continue to produce messages when a remote destination is not available. See Messaging Persistence.
Use the WebLogic Messaging Bridge to provide an administrative solution to store and forward messages between:
A messaging bridge can be used to replicate a topic, similar to using the distributed topics feature available in WebLogic Server releases 7.0 and higher, consequently improving scalability and high availability in some scenarios. Topic replication is accomplished by configuring the bridge to subscribe to one topic and forward the topic's messages to another topic, in essence creating two topics with the same message stream. See Create messaging bridge instances in Administration Console Online Help.
The following sections provide information on when to avoid using messaging bridge:
The following table summarizes information on when to use WebLogic Messaging Bridge or other forwarding technologies:
Table 3-1 Comparing Message Forwarding Technologies
The WebLogic Messaging Bridge supports three different QOS levels:
In some instances, the target destination may not be able to provide the quality of service configured for the bridge. In these cases, configure the bridge instance to allow the quality of service to be degraded by setting the QOSDegradationAllowed flag. See Create messaging bridge instances in Administration Console Online Help.
Store and forward messaging enables a local client to produce to a local destination and have those messages automatically forwarded to the remote destination when it is available. The bridge will forward these messages to the target destination when it is restarted. A messaging bridge will store and forward messages to a target destination under the following conditions:
If an application message is in a transaction, saving the message in the persistent store must be part of the user transaction to preserve exactly-once semantics. In particular, the message is removed from the persistent store as part of the transaction rollback if the application decides to rollback the transaction. However, forwarding is NOT part of the application transaction. The sending agent does not forward a transactional message until the transaction commits. Within a transaction, message ordering is preserved based on when the messages are sent. To ensure message ordering, configure a Unit-of-Order. See Using Message Unit-of-Order in Programming WebLogic JMS.
You may need to modify the capacity of the connection factory associated with each resource adaptor by adjusting the initial-capacity
and max-capacity
attributes the weblogic-ra.xml
descriptor file. In general, the value of the max-capacity
attribute should be at least two times the number of bridge instances. For example:
Use the following steps to modify the weblogic-ra.xml
descriptor file:
Listing 3-1 Example weblogic-ra.xml Descriptor File
.
.
.
<weblogic-connection-factory-dd>
<connection-factory-name>WLSJMSConnectionFactoryLocal</connection-factory-name>
<jndi-name>eis/jms/WLSConnectionFactoryJNDILocal</jndi-name>
<pool-params>
<initial-capacity>
0
</initial-capacity>
<max-capacity>
20
</max-capacity>
</pool-params>
</weblogic-connection-factory-dd>
Set PreserveMsgProperty to preserve message properties in a message header when a message is forwarded by a bridge instance. In previous releases, message properties are inherited from the Default Delivery Mode
attribute on the connection factory used when a message is forwarded to its target destination. If the Default Delivery Mode
is persistent, a non-persistent message is forwarded as a persistent message resulting in a significant performance loss.
When PreserveMsgProperty
is enabled, an incoming non-persistent message is forwarded by the bridge to the target destination as a non-persistent message and an incoming persistent message is forwarded to the target destination as a persistent message. See Configure messaging bridge instances in Administration Console Online Help.
The behavior of a messaging bridge instance is determined according to the following guidelines:
PreserveMsgProperty
is not enabled. This setting provides the same forwarding behavior as previous releases. PreserveMsgProperty
when configuring a messaging bridge instance is not enabled.PreserveMsgProperty
is enabled. Message properties are preserved as described the following table:
The messaging bridge does not disclose a message's JMSXUserID
across messaging bridge boundaries. A JMSXUserID is a system generated property that identifies the user sending the message, see the JMS Specification.
A messaging bridge can send to and receive from distributed destinations. BEA Systems recommends the following configurations: