Problem:
Messaging Bridge on WebLogic Server 8.1 does not start. Following errors seen in server log:
####<Jan 27, 2010 10:10:13 AM GMT> <Info> <MessagingBridge> <myhost> <managed1> <ExecuteThread: ‘4’ for queue: ‘MessagingBridge’> <<WLS Kernel>>
<> <BEA-200032> <Bridge "MyBridge" is configured to disallow degradation of its quality of service in cases where the configured quality of service is unreachable.>
####<Jan 27, 2010 10:10:13 AM GMT> <Error> <MessagingBridge> <myhost> <managed1> <ExecuteThread: ‘4’ for queue: ‘MessagingBridge’> <<WLS Kernel>> <> <BEA-200025> <Bridge "MyBridge" failed to start, because the quality of service configured (Exactly-once) is unreachable. This is likely due to an invalid configuration or adapter limitations.>
####<Jan 27, 2010 10:10:13 AM GMT> <Info> <MessagingBridge> <myhost> <managed1> <ExecuteThread: ‘4’ for queue: ‘MessagingBridge’> <<WLS Kernel>> <> <BEA-200034> <Bridge "MyBridge" is shut down.>
NOTE: MyBridge connects a WebLogic JMS destination (source) to an MQ destination (target).
Background & Analysis:
In order for Messaging Bridges on WebLogic 8.1 to use Exactly-Once QOS, the following requirements must be met:
-
Messaging Bridge adapter must be jms-xa-adp.rar and its JNDI name is eis.jms.WLSConnectionFactoryJNDIXA.
-
Connection Factories for source Bridge destinations must be XA-enabled.
-
Connection Factories used for target Bridge Destinations must be XA-enabled.
-
Messaging Bridges must be configured with Exactly-Once QOS.
-
The “QOS Degradation Allowed” checkbox must be unchecked.
With the above, it is recommended that the Messaging Bridges be Synchronous for better performance (fewer transaction commits).
From the log snippet above, you can see that the Messaging Bridge MyBridge could not start because the QOS (Exactly-Once) was unreachable and the Bridge was not allowed to degrade its QOS.
The QOS will typically be unreachable due to adapter, bridge configuration or bridge destination configuration issues as referred to in the log snippet.
Solution:
Enabled XA on the ConnectionFactory for the target Bridge Destination on MQ.
In order to satisfy the Exactly-Once QOS, both source and target destination connection factories must be XA-enabled.
Root Cause:
The ConnectionFactory for the target Bridge Destination on MQ was configured as non-XA, thereby preventing the Messaging Bridge from initiating an XA connection from the WebLogic Bridge destination to the MQ Bridge destination. Since the Messaging Bridge was not allowed to lower its QOS to make the connection, it failed to start properly.
NOTE: By allowing QOS degradation, the MessagingBridge will connect to the MQ destination even if the ConnectionFactory for the Bridge Destination on MQ were non-XA. However, the choice of QOS must be driven by business requirements and not by technical workarounds.
Reference: Oracle Documentation
NOTE:
(1) The solution above describes a successful problem-solving experience and may not be applicable to other problems with similar symptoms.
(2) Your rating of this post will be much appreciated. Also, feel free to leave comments.
Thanks for the nice explanation, I had the same issue. I did the work around.
Even though I have XA Connection Factory enabled in both the servers, my bridge doesnt start if I select Exactly-Once. I changed to Atmost-Once and it works fine now.
let me know if you have any idea on what could be the problem.
Br,
Arun