1 Reply Latest reply on Mar 25, 2013 5:11 PM by Dongbo Xiao-Oracle

    Message bridge in Cluster environment fails

      Hi All,

      Need your help in the Message bridge issue.In our project we have a requirement as below.

      1.     There are two versions of weblogic PS2 and PS5, both on the same physical machine, only the port numbers are different. Both the servers have cluster environment.
      2.     We have a Distributed Topic in PS2, a composite built in PS5 should consume the message from this Topic.
      3.     We have implemented this by creating message bridge configuration in PS5. For this we have created below configurations
      •     In PS2, Created a Distributed topic and Connection Factory.
      •     In PS5, Created a Distributed topic, Connection Factory( with the same names as that of PS2 ), Source and Target Bridge destinations and a Message Bridge. Below are the configurations of Message Bridge in PS5.
           Source Bridge Destination Configuration_
      •     Name     : SalesOrderTopicSourceBD
      •     Adapter JNDI Name : eis.jms.WLSConnectionFactoryJNDINoTX
      •     Connection URL: t3://ms1:8001,ms2:8002(PS2 servers host and ports)
      •     Connection Factory JNDI Name : jms/SalesOrder_Topic_CF(Connection Factory JNDI)
      •     Destination JNDI Name : jms/SalesOrder_Topic(Topic JNDI)
      •     DestinationType : Topic
      •     UserName : Administrator username
      •     Password : Administrator password
           Destination Bridge Destination Configuration_
      •     Name     : SalesOrderTopicTargetBD
      •     Adapter JNDI Name : eis.jms.WLSConnectionFactoryJNDINoTX
      •     Connection URL: t3://ms1:5001,ms2:5002(PS2 servers host and ports)
      •     Connection Factory JNDI Name : jms/SalesOrder_Topic_CF(Connection Factory JNDI)
      •     Destination JNDI Name : jms/SalesOrder_Topic(Topic JNDI)
      •     DestinationType : Topic
      •     UserName : Administrator username
      •     Password : Administrator password
      _     Message Bridge Configuration_
      •     Name     : SalesOrderTopicBridge
      •     Quality Of Service: Atmost-Once
      •     Started     : Checked
      •     Select an Existing Source Destination:     SalesOrderTopicSourceBD
      •     Messaging Provider     : Weblogic Server 7.0 or Higher
      •     Select an Existing Target Destination:     SalesOrderTopicTargetBD
      •     Messaging Provider     : Weblogic Server 7.0 or Higher
      •     Target : Admin Server

      4.     After making these configurations, we have restarted both the servers. But the message bridge is in inactive state with an error “WARN: failed to connect to the source.”
      5.     We have also implemented the same configurations by giving only one managed server host and port in Connection URL, Then it works and we are able to send the messages to PS5 topic from PS2 topic.

      It would be of great help, if anyone can help us finding the answers for below queries.

      Are the above configurations correct? Can we implement Message bridge for the clustered environment? Is the Connection URL above syntax correct? Have any one of you implemented message bridge in any project? Do you foresee any disadvantages with this implementation?

      Thanks for all the help.
        • 1. Re: Message bridge in Cluster environment fails
          Dongbo Xiao-Oracle
          A messaging bridge can send to and receive from destination topics. Depends on the type of the DT, the best practice is different.
          •     If the source is a replicate DT, you only need to create one bridge instance to receive from the DT. The bridge is pinned to one of the members when it connects to the destination. It stays connected to that member until an event occurs that breaks the connection. On reconnection, the bridge uses the next available member. Once a bridge is connected, it does not receive messages from other members of the distributed destination. Alternatively you can configure the bridge to receive only from one of the members using the member’s JNDI name.
          •     If the source is a partitioned DT, it is a best practice to configure one bridge for each member of the DT using the member's JNDI Name. See the following link for how to look up a member of a DD. http://docs.oracle.com/cd/E17904_01/web.1111/e13727/lookup.htm#CHDDIFEI
          •     If the target is a distributed destination, the best practice is to send to the distributed destination using the distributed destination's JNDI Name and disable server affinity. This allows the distributed destination to load balance incoming messages.

          I have to th efollowing recommendations based on your configuration.
          1.     If possible, make all resources (WLS servers, JMS servers, JMS stores and etc) unique across your PS2 side and PS5 side.
          2.     Follow the above recommendation/best practice.
          3.     I don’t see any problem in your ConnectionURL syntax. If the problem persists, turn on debugging and you may find a clue of what is going on.

          Edited by: Dongbo on Mar 25, 2013 10:10 AM