Foreign JMS Servers vs. Messaging Bridge

          Can anyone tell me what is the difference between setting up an MQ JMS provider
          as a "Foreign JMS Server" or through the "Messaging Bridge"? I currently have
          it setup as a Foreign JMS Server since that was relatively easy, but I can't get
          MQ to participate in a XA transaction. Am I required to set it up through the
          "Messaging Bridge" to obtain this functionality?
          Thank you in advance for your help.
          

The two things are very different. All a "ForeignJMSServer" does is allow
          you to link JMS objects from some other JNDI provider (like the one that MQ
          uses) into the WLS JNDI tree. Once you've done that, you can use the JNDI
          names you created using the "ForeignJMSServer" feature inside an MDB, an
          EJB, a servlet, a messaging bridge, or wherever you want, without having to
          copy the MQ-specific configuration information to every one of those places.
          The messaging bridge, on the other hand, gives you a sort of "store and
          forward" feature, in that it copies messages from one JMS queue or topic to
          another. The two features can be used together, but they dont' have to be.
          What are you trying to do, anyway? What is it inside WLS that you're trying
          to make work with an XA transaction?
          greg
          "Jason Peck" <[email protected]> wrote in message
          news:40630089$[email protected]..
          >
          > Can anyone tell me what is the difference between setting up an MQ JMS
          provider
          > as a "Foreign JMS Server" or through the "Messaging Bridge"? I currently
          have
          > it setup as a Foreign JMS Server since that was relatively easy, but I
          can't get
          > MQ to participate in a XA transaction. Am I required to set it up through
          the
          > "Messaging Bridge" to obtain this functionality?
          >
          > Thank you in advance for your help.
          

Similar Messages

  • Foreign JMS Server vs Messaging bridge

    Could any body tell me which one is the best Whether Foreign JMS Server or Messaging bridge for connecting Weblogic to IBM MQ Series.I am trying to use foreign jms server but i dont know how to post the message to that queue i created in foreign jms server..

    Hi,
              For sending messages non-transactionally, foreign JMS server is sufficient. For sending messages transactionally using standard JTA transactions, the simplest way is to send them on the server and reference the foreign JMS through an EJB resource reference. See the the following FAQ for a walk-through of the various options, including guidance on when to use a bridge:
              http://e-docs.bea.com/wls/docs81/faq/interop.html
              Tom

  • Message Bridge or Foreign JMS

              HI
              We are planning to use MQ with our WebLogic setup we are using WL8.1
              and MQ 5.2.
              Just wanted to find out if setting up MQ as a Foreign JMS is better than Bridging.
              The Foreign JMS provider setup seems to be much easier than the bridge.
              Do we get two phase commits with Foreign setup.
              Previously 6.1 sp5 when you setup a bridge with MQ the setup used to complain
              saying that we cannot use the XA adapter with 6.1 and MQ5.2, in 8.1 when we setup
              the driver and create a bridge it does not complain anymore does it mean that
              2PC works with WL8.1 and MQ5.2
              Thanks in Advance.
              Shekar
              

    And yes, you may not need the bridge
              in 8.1 unless your use case demands it. The bridge
              is useful for store-and-forward type designs
              between vendors - for instance, with the bridge
              a sender can still send to MQ even if MQ is down
              as they are sending to a WL queue which is bridged
              to MQ.
              Tom Barnes wrote:
              > Hi Sheckar,
              >
              > XA with MQ works in 6.1, I do not know why you were
              > getting the bridge error message, perhaps you switched
              > MQ versions.
              >
              > Perhaps you are unaware that:
              >
              > MQ5.N supports XA only if the MQ client is running on the
              > same machine as the MQ server.
              >
              > MQ5.(N+1) contains a feature that allows the MQ client to work
              > transactionally remotely. "MQ extended client" or somesuch.
              >
              > I think N is 2, but I'm not sure.
              >
              > Tom
              >
              > Shekar wrote:
              >
              >> HI
              >> We are planning to use MQ with our WebLogic setup we are
              >> using WL8.1
              >> and MQ 5.2.
              >> Just wanted to find out if setting up MQ as a Foreign JMS is better
              >> than Bridging.
              >> The Foreign JMS provider setup seems to be much easier than the bridge.
              >> Do we get two phase commits with Foreign setup.
              >>
              >> Previously 6.1 sp5 when you setup a bridge with MQ the setup
              >> used to complain
              >> saying that we cannot use the XA adapter with 6.1 and MQ5.2, in 8.1
              >> when we setup
              >> the driver and create a bridge it does not complain anymore does it
              >> mean that
              >> 2PC works with WL8.1 and MQ5.2
              >>
              >> Thanks in Advance.
              >> Shekar
              >>
              >>
              >
              

  • Foreign JMS Connectiing to MQ Series

    Hi All,
              Our client complians that, Everytime Foreign JMS Server is deployed on Server, it open 13 connections to MQ Queue. I believe that single JMSConnection is open and connected to Message producer and that creates JMSSessions. Then what are these 13 connections ?
              Thanks,

    Foreign JMS servers do not in themselves open up connections into MQ - whether or not they are deployed. Nor do they pool connections. They can be viewed simply a convenient name mapping mechanism. EG - when an app calls "foreignFact.createConn" it is exactly the same as if they called "mqFact.createConn" directly without using any WebLogic at all.
              So if the application directly accessed MQ instead of going through the Foreign JMS server mechanism they would still see 13 connections.
              Tom

  • Weblogic Messaging Bridge - T3S Enabling Process

    Dear All,
    I need your help to resolve an issue in Weblogic Messaging Bridge - T3S enabling process.
    I'm doing a POC to forward messages between 2 different domains (from wl 10.3.2 to wl 10.0) using Messaging Bridge with T3S Protocol.
    I enabled SSL Port, Custom Identity and Custom Trust in those domains.
    In my laptop (single JVM), WL Messaging Bridge in 10.3.2 is able to forward messages between domains using T3S.
    My Testing Scenario:
    A Sample web application use the https/t3s protocol to put message(s) in the source jms queue                    
    Weblogic Messaging Bridge use the t3s protocol to get message(s) from source jms queue & forward the message(s) to the destination jms queue                    
    But, When I tried the same POC in sepearate boxes (WL 10.3.2 in one box, WL 10.0 in another box). I got the below exceptiion.
    Any one please throw some lights here to resolve the issue.
    ####<Oct 12, 2011 4:11:49 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1318416109085> <BEA-000000> <Exception:
    javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://172.16.2.25:4936: Destination unreachable; nested exception is:
         javax.net.ssl.SSLKeyException: [Security:090477]Certificate chain received from 172.16.2.25 - 172.16.2.25 was not trusted causing SSL handshake failure.; No available router to destination]
         at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)
         at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:783)
         at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:367)
         at weblogic.jndi.Environment.getContext(Environment.java:315)
         at weblogic.jndi.Environment.getContext(Environment.java:285)
         at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
         at javax.naming.InitialContext.init(InitialContext.java:223)
         at javax.naming.InitialContext.<init>(InitialContext.java:197)
         at weblogic.jms.adapter.JMSBaseConnection.getInitialContext(JMSBaseConnection.java:2253)
         at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:261)
         at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:247)
         at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:190)
         at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:802)
         at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91)
         at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:395)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:332)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:315)
         at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:596)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:309)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:352)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:307)
         at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:115)
         at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseConnectionFactory.java:123)
         at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:860)
         at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1051)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused By: java.net.ConnectException: t3s://172.16.2.25:4936: Destination unreachable; nested exception is:
         javax.net.ssl.SSLKeyException: [Security:090477]Certificate chain received from 172.16.2.25 - 172.16.2.25 was not trusted causing SSL handshake failure.; No available router to destination
         at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:216)
         at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
         at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
         at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:352)
         at weblogic.jndi.Environment.getContext(Environment.java:315)
         at weblogic.jndi.Environment.getContext(Environment.java:285)
         at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
         at javax.naming.InitialContext.init(InitialContext.java:223)
         at javax.naming.InitialContext.<init>(InitialContext.java:197)
         at weblogic.jms.adapter.JMSBaseConnection.getInitialContext(JMSBaseConnection.java:2253)
         at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:261)
         at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:247)
         at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:190)
         at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:802)
         at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91)
         at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:395)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:332)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:315)
         at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:596)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:309)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:352)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:307)
         at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:115)
         at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseConnectionFactory.java:123)
         at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:860)
         at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1051)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused By: java.rmi.ConnectException: Destination unreachable; nested exception is:
         javax.net.ssl.SSLKeyException: [Security:090477]Certificate chain received from 172.16.2.25 - 172.16.2.25 was not trusted causing SSL handshake failure.; No available router to destination
         at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:464)
         at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:315)
         at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:251)
         at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:194)
         at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:238)
         at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:200)
         at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
         at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
         at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:352)
         at weblogic.jndi.Environment.getContext(Environment.java:315)
         at weblogic.jndi.Environment.getContext(Environment.java:285)
         at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
         at javax.naming.InitialContext.init(InitialContext.java:223)
         at javax.naming.InitialContext.<init>(InitialContext.java:197)
         at weblogic.jms.adapter.JMSBaseConnection.getInitialContext(JMSBaseConnection.java:2253)
         at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:261)
         at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:247)
         at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:190)
         at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:802)
         at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91)
         at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:395)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:332)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:315)
         at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:596)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:309)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:352)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:307)
         at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:115)
         at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseConnectionFactory.java:123)
         at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:860)
         at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1051)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    ####<Oct 12, 2011 4:11:49 PM IST> <Warning> <Connector> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416109086> <BEA-190032> << eis/jms/WLSConnectionFactoryJNDINoTX > ResourceAllocationException thrown by resource adapter on call to ManagedConnectionFactory.createManagedConnection(): "javax.resource.ResourceException: ConnectionFactory: failed to get initial context (InitialContextFactory =weblogic.jndi.WLInitialContextFactory, url = t3s://172.16.2.25:4936, user name = null) ">
    ####<Oct 12, 2011 4:11:49 PM IST> <Info> <MessagingBridge> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416109089> <BEA-200043> <Bridge "Bridge-0" failed to connect to the target destination and will try again in 45 seconds. This could be a temporary condition unless the messages repeat several times. (java.lang.Exception: javax.resource.ResourceException: ConnectionFactory: failed to get initial context (InitialContextFactory =weblogic.jndi.WLInitialContextFactory, url = t3s://172.16.2.25:4936, user name = null)
         at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBaseConnection.java:1665)
         at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBaseConnection.java:1645)
         at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:460)
         at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:247)
         at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:190)
         at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:802)
         at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91)
         at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:395)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:332)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:315)
         at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:596)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:309)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:352)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:307)
         at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:115)
         at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseConnectionFactory.java:123)
         at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:860)
         at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1051)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    -------------- Linked Exception ------------
    javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://172.16.2.25:4936: Destination unreachable; nested exception is:
         javax.net.ssl.SSLKeyException: [Security:090477]Certificate chain received from 172.16.2.25 - 172.16.2.25 was not trusted causing SSL handshake failure.; No available router to destination]
         at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)
         at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:783)
         at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:367)
         at weblogic.jndi.Environment.getContext(Environment.java:315)
         at weblogic.jndi.Environment.getContext(Environment.java:285)
         at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
         at javax.naming.InitialContext.init(InitialContext.java:223)
         at javax.naming.InitialContext.<init>(InitialContext.java:197)
         at weblogic.jms.adapter.JMSBaseConnection.getInitialContext(JMSBaseConnection.java:2253)
         at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:261)
         at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:247)
         at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:190)
         at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:802)
         at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91)
         at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1180)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:395)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:332)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:315)
         at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:596)
         at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:309)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:352)
         at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:307)
         at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:115)
         at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseConnectionFactory.java:123)
         at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:860)
         at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1051)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.net.ConnectException: t3s://172.16.2.25:4936: Destination unreachable; nested exception is:
         javax.net.ssl.SSLKeyException: [Security:090477]Certificate chain received from 172.16.2.25 - 172.16.2.25 was not trusted causing SSL handshake failure.; No available router to destination
         at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:216)
         at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
         at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
         at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:352)
         ... 28 more
    Caused by: java.rmi.ConnectException: Destination unreachable; nested exception is:
         javax.net.ssl.SSLKeyException: [Security:090477]Certificate chain received from 172.16.2.25 - 172.16.2.25 was not trusted causing SSL handshake failure.; No available router to destination
         at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:464)
         at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:315)
         at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:251)
         at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:194)
         at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:238)
         at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:200)
         ... 31 more
    )>
    ####<Oct 12, 2011 4:11:49 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416109479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:50 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416110055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:50 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416110479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:51 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416111055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:51 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416111479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:52 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416112055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:52 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416112479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:53 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416113055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:53 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416113479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:54 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416114055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:54 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416114479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:55 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416115051> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:55 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416115479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:56 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416116055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:56 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416116479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:57 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416117055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:57 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416117479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:58 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416118055> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    ####<Oct 12, 2011 4:11:58 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <GLLNX01> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1318416118479> <BEA-000000> <Bridge Bridge-0 doTrigger(): state = 2 stopped = false>
    Thanks in advance.

    Think this can help you on the way - http://blog.eisele.net/2010/06/weblogic-server-ssl-httpst3s-and-java.html

  • Messaging Bridge/Foreign JMS Server

    Can someone clarify what is the difference in using messaging bridge or Foreign JMS Server in listening to a topic from other weblogic server of same version.
    Edited by: user11359157 on 6 Jul, 2009 3:17 PM

    I always thought one has to use remote classes from the foreign JMS server in local the classpath to send or receive messages stored at
    the foreign JMS server / the remote side.
    <Jayesh> that is true of the remote side of the JMS is non-weblogic. </Jayesh>
    Also in the WLS bridge this can be specified. IMHO the bridge has the advantage that I can use the wls classe and the bridge knows
    the classpath and bridges to the foreign jms server, so the application developer doesn't have to use foreign classes, eg. tibco or mq.
    <Jayesh> When you have remote JMS is WebLogic it is obvious considering that both remote and local jms uses same weblogic classes. </Jayesh>
    Now, where does this happen for the foreign jms server (which is kind of alternative to wls bridge, without store and forward)?
    All I can see is a local JNDI lookup being translated to a remote one.
    Is really the local JMS implementation used to talk to the remote JMS server?
    When a JNDI lookup for a queue happens will then be WLS queue implementation returned?
    <Jayesh> No there is not local JMS store is used. Foreign JMS server just provides administrative convenience by moving remote JMS destination JNDI definitions in local JNDI definition. It allows to use this local definition by all EJBs, servlets and messaging bridges. If the remote definitions changes you can change those definition in admin console and does not need change in deployment descriptors of the EJBs and servlets to prevent redeployment. Again this is no administrative convenience and during run time it will behave exactly same as you are sending or receiving message directly from remote JMS destination.
    </Jayesh>
    Hope this clears confusion.
    jayesh@yagna

  • JMS Messaging Bridge WLS8.1

              Hello All,
              I am trying to hook up 2 Queues as source and target destinations for the WLS8.1
              Messaging Bridge[MB] functionality.
              So when I send a message to Q1[source destination], the MB forwards the message
              to Q2[target destination].
              I have 1 MDB deployed and listening on Q2.
              I verify the messages received via the admin console in wls8.1 as well as the
              MDB I have deployed.
              Thus, the MB works.
              However, when I deploy a MDB on Q1 as well, the message is lost(not forwaded to
              Q1 by the MB).
              Assuming that the source destination is of type Queue, and this behaviour is expected,
              I went to test with a Topic as source destination for the MB and a Queue as the
              target destination for the MB.
              However, I failed to receive any messages in the dest[Q2] via the MB.
              This is with / without a MDB listening on the Topic[source destination].
              One MDB is always listening on the Queue[target destination].
              MB does not work.............
              Can anyone help ?
              TIA.
              

    There is no native code specific to this use case, except
              perhaps for IBM code, and I know of no issues.
              Raja wrote:
              > I have tested Messaging Bridge(jms-xa-adp.rar),Foreign JMS provider in WLS8.1-SP1
              > on windows NT m/c.Can any body tell me whether there will any problem while setting
              > up and running the same test on Solaris.
              >
              > Thanks in advance,
              > Raja
              

  • 2 non-clustered weblogic servers, 1 MQ queue. Messaging bridge fairness

    Hey all,
              More of a general question. Has anyone ever had 2 non-clustered
              servers, each with a messaging bridge, pulling from one queue? If so, how is
              the fairness of the machines pulling.
              Assuming same machines / same configurations for the weblogic servers,
              should it be
              approximately fair?
              Just want to verify that if the pulling machine sees more messages after
              pulling it's batch,
              it doesn't keep the channel locked or antyhing, before we pursue this
              option.
              Thanks much,
              Greg
              

    Hi Greg,
              The consumer fairness is up to the JMS provider, which sees the bridge
              as a regular consumer no different from any other client consumer.
              If the queue being pulled from is a WebLogic 6.0 or greater queue then
              fairness will be observed. (I'm not sure about earlier versions.) Of
              course, this "fairness" is proportional to the rates at which the
              consumers consume.
              There is no such guarantee for other providers. And in fact, we (BEA)
              have noticed that some of the other well-known JMS vendors do
              not exhibit fairness.
              Tom, BEA
              Greg Kaestle wrote:
              > Hey all,
              >
              > More of a general question. Has anyone ever had 2 non-clustered
              > servers, each with a messaging bridge, pulling from one queue? If so, how is
              > the fairness of the machines pulling.
              > Assuming same machines / same configurations for the weblogic servers,
              > should it be
              > approximately fair?
              >
              > Just want to verify that if the pulling machine sees more messages after
              > pulling it's batch,
              > it doesn't keep the channel locked or antyhing, before we pursue this
              > option.
              >
              > Thanks much,
              > Greg
              >
              >
              

  • HELP with JMS message bridge to MSMQ

              Can anyone offer suggestions on how to obtain/build a JMS messaging bridge to MSMQ.
              I see that WL has a Messaging Bridge but only for certain foreign messaging systems.
              FioranoMQ have a JMS Implementation with a bridge to MSMQ but a complete JMS implementation
              seems overkill and is costly.
              We already have Weblogic's JMS implementation & just want messages to appear on
              a JMS Queue when they are put in a MSMQ queue. A message driven bean will then
              trigger from the JMS queue.
              

    It is rare to hear of MSMQ when it comes to messaging.
              (I guess MSMQ users typically stay in MS world?)
              I suggest building a minimal subset JMS wrapper. Customers
              have had success with this approach with other queuing products.
              If you can implement asynchronous (onMessage) then the same
              wrapper can be used to plug into MDBs as well as into the bridge.
              You might find that there already is open source
              for these wrappers, search the web.
              Take note that interop is what web-services is supposed
              to be all about. You might want to investigate writing
              an MSMQ app that in turn invokes a WebLogic web-service
              that finally enqueues to a WL queue.
              Another possibility is to write an MSMQ app that invokes
              WebLogic's JMS C client to put messages into a JMS
              queue. The JMS C client is due out
              shortly, perhaps this week, perhaps within the next
              few weeks. It will be posted to dev2dev and work
              with 7.0.
              Tom, BEA
              Pete wrote:
              > Can anyone offer suggestions on how to obtain/build a JMS messaging bridge to MSMQ.
              > I see that WL has a Messaging Bridge but only for certain foreign messaging systems.
              >
              >
              > FioranoMQ have a JMS Implementation with a bridge to MSMQ but a complete JMS implementation
              > seems overkill and is costly.
              >
              > We already have Weblogic's JMS implementation & just want messages to appear on
              > a JMS Queue when they are put in a MSMQ queue. A message driven bean will then
              > trigger from the JMS queue.
              

  • JMS Message Bridge - WLS to MQ

    Hi,
    Subsequent to my last posts on Foreign JMS Server setup (where I had to receive a msg from a remote MQ Queue), now I have a requirement to post messages to an remote MQ Queue for a diff application.
    As a POC, I configured the JMS Message Bridge with bridge source as my local JMS queue and bridge destination as the Remote MQ Queue and it works fine as expected !!
    just have couple of questions on that -
    1. For a long time, I was struggling with this error on server startup
    <BEA-190032> << eis/jms/WLSConnectionFactoryJNDINoTX > ResourceAllocationException thrown by resource adapter on call to ManagedConnectionFactory.createManagedConnection(): "javax.resource.ResourceException: Failed to start the connection ">
    Then I realized from the server log that the actual reason was authentication failure in MQ Queue Manager :
    JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager '' with connection mode 'Client' and host name '77.40.190.130'. Please check if the supplied username and password are correct on the QueueManager you are connecting to AND
    JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
    Since this MQ setup is managed by someone else, when they pass on the .binding file after creating queuemanager, queue, etc, Should I also ask them for the username and password for the QM?? I am not sure if this is a part of the .binding file.
    2. Some doubts around the QOS. As I understood, I am using the No-Transaction Adapter. This means I can use QOS as either "Atmost once" or "Duplicate OK". The latter seems to be ok so that I dont lost messages in any case. But I am yet to find out if the other application is ok to handle duplicates.
    But is there a restriction/limitation to use "Exactly Once" ?? I noticed that there is also an XA-Transaction Adapter in WLS. Is it not possible to use that with MQ?
    Thanks in advance.
    best regards,
    Murali

    In your binding file QCF or XAQCF definition , you will see a Channel field since you are using a client mode to connect to the queue manager. This channel is called a Server Connection Channel [ SVRCONN]. At the queue manager side of things, when this SVRCONN is defined, MQ Admin teams tend to define an attribute called MCAUSER. In this setup the userid used for authorisation at queue manager is the following in the below precedence:
    1. If MCAUSER is defined in the channel, that will be the user id and it overrides any security context sent from client application. This user id should have sufficient permissions to connect to queue manager , get , put. The MQ admin teams on certain platforms will be able to get the exact permission that is missed from the queue manager error logs when a 2035 security exception occurs.
    2. If no MCAUSER is defined then the userid passed in the createConnection JMS call will be the user context used.
    I am not exactly sure of the behaviour when no MCAUSER and no user id in createConnection calls, but i think it takes the user of the MQ Listener process which starts the SVRCONN channel instance when a client initiates the connection.
    So for your situation, it will be worth start checking with how the MQ side configuration is. This issue tends to be a very common issue with client applns connecting to qmgr.

  • Connecting 2 WLS 7 servers via the Messaging Bridge

    Hi,
              I am trying to use the messaging bridge to post messages received on a
              source JMS queue running in one WLS instance to a destination queue running
              on another target WLS instance. I have followed the instructions in the
              admin guide and performed the following:
              - defined in the source WLS instance 2 JMS bridge destinations - one for the
              source queue and one for the target queue
              - defined the bridge between the 2 destination, using the jms-xa-adp.rar
              - deployed the jmx-xa-adp.rar adapter to the source WLS instance
              - enabled the XA connection factory (had to define a new connection factory
              to do this)
              - made sure that both WLS instances have the system user configured with the
              same password
              When the source WLS instance starts up, the following is logged to the
              console:
              weblogic.jms.common.JMSException: Connection not found
              at
              weblogic.jms.dispatcher.InvocableManager.invocableFind(InvocableManager.java
              :134)
              at
              weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:592)
              at
              weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:275)
              at
              weblogic.jms.client.JMSConnection.createSession(JMSConnection.java:368)
              at
              weblogic.jms.client.JMSXAConnection.createXAQueueSession(JMSXAConnection.jav
              a:75)
              at
              weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:
              257)
              at
              weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:215)
              at
              weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMS
              ManagedConnectionFactory.java:1
              at
              weblogic.connector.common.internal.ConnectionPool.makeResources(ConnectionPo
              ol.java:1002)
              at
              weblogic.connector.common.internal.ConnectionPool.getConnection(ConnectionPo
              ol.java:1777)
              at
              weblogic.connector.common.internal.ConnectionPoolManager.getConnection(Conne
              ctionPoolManager.java:190)
              at
              weblogic.connector.common.internal.ConnectionManagerImpl.allocateConnection(
              ConnectionManagerImpl.java:25)
              at
              weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseCon
              nectionFactory.java:126)
              at
              weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.
              java:753)
              at
              weblogic.jms.bridge.internal.MessagingBridge.execute(MessagingBridge.java:91
              9)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              and any messages sent to the source queue just sit there.
              What might I be missing? Am I correct that the configuration of the bridge
              and destinations takes place at the source WLS instance (as this is posting
              the messages to the target WLS) - the documentation seems to me a bit
              ambiguous in this regard.
              Thanks,
              Stanley.
              

    I am afraid that you'll have to enable security interoperability for
              the bridge to work across two domains. Making the password for
              system user is not enough. You have to disable generated credential
              for both domains. For details, please look at the following link:
              http://edocs.bea.com/wls/docs70/adminguide/msgbridge.html#1078380
              Please also note that this requirement has been removed in 8.1 release and
              7.0SP3.
              Thanks
              Dongbo
              Stanley Beamish wrote:
              > "Dongbo Xiao" <[email protected]> wrote in message
              > news:[email protected]...
              > > I suspect that the two WebLogic servers have the same name.
              > > There are some naming restrictions in the WLS configuration.
              > > Please take a look at the following link.
              > > http://e-docs.bea.com/wls/docs70/adminguide/msgbridge.html#1076982
              > >
              > > Dongbo
              >
              > OK, I've changed the name of one of the servers and I can get further. But
              > now I get the following exception on the server that hosts the bridge,
              > relating to permissions. Both servers use the same system password.
              >
              > Thanks,
              > SB
              >
              > java.lang.SecurityException: Invalid Subject: principals=[system,
              > Administrators, Operators, Monitors, Deployers]
              > at
              > weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager
              > .java:993)
              > at
              > weblogic.security.service.RoleManager.getRoles(RoleManager.java:277)
              > at
              > weblogic.security.service.AuthorizationManager.isAccessAllowed(Authorization
              > Manager.java:589)
              > at weblogic.jms.JMSService.checkPermission(JMSService.java:1064)
              > at weblogic.jms.JMSService.checkRecvPermission(JMSService.java:1076)
              > at
              > weblogic.jms.frontend.FESession.consumerCreate(FESession.java:944)
              > at weblogic.jms.frontend.FESession.invoke(FESession.java:2252)
              > at
              > weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:602)
              > at
              > weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:275)
              > at
              > weblogic.jms.client.JMSSession.consumerCreate(JMSSession.java:1592)
              > at
              > weblogic.jms.client.JMSSession.createConsumer(JMSSession.java:1452)
              > at
              > weblogic.jms.client.JMSSession.createReceiver(JMSSession.java:1302)
              > at
              > weblogic.jms.adapter.JMSBaseConnection.setMessageListenerInternal(JMSBaseCon
              > nection.java:931)
              > at
              > weblogic.jms.adapter.JMSBaseConnection.setMessageListener(JMSBaseConnection.
              > java:885)
              > at
              > weblogic.jms.adapter.JMSConnectionHandle.setMessageListener(JMSConnectionHan
              > dle.java:121)
              > at java.lang.reflect.Method.invoke(Native Method)
              > at
              > weblogic.connector.common.internal.ConnectionWrapper.invoke(ConnectionWrappe
              > r.java:101)
              > at $Proxy103.setMessageListener(Unknown Source)
              > at
              > weblogic.jms.bridge.internal.MessagingBridge.beginForwarding(MessagingBridge
              > .java:862)
              > at
              > weblogic.jms.bridge.internal.MessagingBridge.execute(MessagingBridge.java:94
              > 2)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
              >
              > >
              > > Stanley Beamish wrote:
              > >
              > > > Hi,
              > > >
              > > > I am trying to use the messaging bridge to post messages received on a
              > > > source JMS queue running in one WLS instance to a destination queue
              > running
              > > > on another target WLS instance. I have followed the instructions in the
              > > > admin guide and performed the following:
              > > >
              > > > - defined in the source WLS instance 2 JMS bridge destinations - one for
              > the
              > > > source queue and one for the target queue
              > > > - defined the bridge between the 2 destination, using the jms-xa-adp.rar
              > > > - deployed the jmx-xa-adp.rar adapter to the source WLS instance
              > > > - enabled the XA connection factory (had to define a new connection
              > factory
              > > > to do this)
              > > > - made sure that both WLS instances have the system user configured with
              > the
              > > > same password
              > > >
              > > > When the source WLS instance starts up, the following is logged to the
              > > > console:
              > > >
              > > > weblogic.jms.common.JMSException: Connection not found
              > > > at
              > > >
              > weblogic.jms.dispatcher.InvocableManager.invocableFind(InvocableManager.java
              > > > :134)
              > > > at
              > > >
              > weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:592)
              > > > at
              > > >
              > weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:275)
              > > > at
              > > > weblogic.jms.client.JMSConnection.createSession(JMSConnection.java:368)
              > > > at
              > > >
              > weblogic.jms.client.JMSXAConnection.createXAQueueSession(JMSXAConnection.jav
              > > > a:75)
              > > > at
              > > >
              > weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:
              > > > 257)
              > > > at
              > > > weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:215)
              > > > at
              > > >
              > weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMS
              > > > ManagedConnectionFactory.java:1
              > > > )
              > > > at
              > > >
              > weblogic.connector.common.internal.ConnectionPool.makeResources(ConnectionPo
              > > > ol.java:1002)
              > > > at
              > > >
              > weblogic.connector.common.internal.ConnectionPool.getConnection(ConnectionPo
              > > > ol.java:1777)
              > > > at
              > > >
              > weblogic.connector.common.internal.ConnectionPoolManager.getConnection(Conne
              > > > ctionPoolManager.java:190)
              > > > at
              > > >
              > weblogic.connector.common.internal.ConnectionManagerImpl.allocateConnection(
              > > > ConnectionManagerImpl.java:25)
              > > > at
              > > >
              > weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseCon
              > > > nectionFactory.java:126)
              > > > at
              > > >
              > weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.
              > > > java:753)
              > > > at
              > > >
              > weblogic.jms.bridge.internal.MessagingBridge.execute(MessagingBridge.java:91
              > > > 9)
              > > > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              > > >
              > > > and any messages sent to the source queue just sit there.
              > > >
              > > > What might I be missing? Am I correct that the configuration of the
              > bridge
              > > > and destinations takes place at the source WLS instance (as this is
              > posting
              > > > the messages to the target WLS) - the documentation seems to me a bit
              > > > ambiguous in this regard.
              > > >
              > > > Thanks,
              > > > Stanley.
              > >
              [att1.html]
              

  • JMS Messaging Bridge Problems with WLS 8.1 sp2

              Thank you in advance for your help.
              I am trying to configure a JSM Messaging Bridge to connect an MQ Q to a Weblogic
              Q. I have this working wonderfully in an environment without clustering but once
              I try to deploy to a cluster, I am having two major problems.
              1) When the managed servers are restarted, the messaging bridges immediately complain
              about not being able to find the resource adaptor. After I manually un-target
              the messaging bridge from the cluster and re-target them, they find the resource
              adaptor but cannot connect to the source... which leads to my next problem.
              2) The messaging bridges cannot connect to the source destination whether it is
              an MQ Q or a Weblogic JMS Q does not matter. Here are the log entries that I
              see relative:
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging STARTUP! Got Notification:weblogic.management.AttributeAddNotification:
              Deployments from <null> to [Caching Stub]Proxy for eBusDev02:Location=secaServer01,Name=seca_OES_ADV_REPLY
              Messaging Bridge,Type=MessagingBridgeConfig - weblogic.management.AttributeAddNotification[source=eBusDev02:Location=secaServer01,Name=secaServer01,Type=ServerConfig].>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging STARTUP! creating bridge seca_OES_ADV_REPLY Messaging
              Bridge.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge
              is deployed as a migratable.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging RUNTIME! Initializging bridge seca_OES_ADV_REPLY Messaging
              Bridge as a migratable.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge's
              source configurations are:
              AdapterJNDIName=eis.jms.WLSConnectionFactoryJNDIXA
              Classpath=null
              ConnectionURL = file:/e:/private/JNDI/eBusDev02
              DestinationType = Queue
              DestinationJNDIName = jms.oes.MQ-ADV-REPLYQ
              InitialContextFactory = com.sun.jndi.fscontext.RefFSContextFactory
              ConnectionFactoryJNDIName = jms.oes.MQ-QCF
              .>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge's
              target configurations are:
              AdapterJNDIName=eis.jms.WLSConnectionFactoryJNDIXA
              Classpath=null
              ConnectionURL = t3://30.135.10.63:8103,30.135.10.63:8104
              DestinationType = Queue
              DestinationJNDIName = jms/oes/ADV-REPLYQ
              InitialContextFactory = weblogic.jndi.WLInitialContextFactory
              ConnectionFactoryJNDIName = jms/oes/QCF
              .>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging STARTUP! Bridge seca_OES_ADV_REPLY Messaging Bridge
              is successfully initialized.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging RUNTIME! Bridge seca_OES_ADV_REPLY Messaging Bridge
              has been successfully initialized as a migratable.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging RUNTIME! Activating bridge seca_OES_ADV_REPLY Messaging
              Bridge.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '1' for queue: 'weblogic.admin.RMI'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging RUNTIME! Bridge seca_OES_ADV_REPLY Messaging Bridge
              has been successfully activated..>
              ####<Apr 1, 2004 4:38:44 PM EST> <Info> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '22' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-200033>
              <Bridge "seca_OES_ADV_REPLY Messaging Bridge" is obtaining connections to the
              two adapters.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Debug> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '22' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-200006>
              <Messaging bridge debugging RUNTIME! Bridge seca_OES_ADV_REPLY Messaging Bridge
              Getting source connection.>
              ####<Apr 1, 2004 4:38:44 PM EST> <Info> <MessagingBridge> <dv2kwls03> <secaServer01>
              <ExecuteThread: '22' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-200042>
              <Bridge seca_OES_ADV_REPLY Messaging Bridge failed to connect to the source destination
              and will try again in 15 seconds. (java.lang.NullPointerException)>
              I know the queues are up and I am pretty sure my MQ client configuration is correct.
              Is there anyway to get more information about the NullPointerException or the
              error being encountered?
              

    Given that you have ruled out message backlogs, my first suspicion is that the leak has something to do with connection allocation. Does JMS stats reveal an application generated connection leak? Check to see if the current number of connections/sessions stays steady.
              If this doesn't help, you can use a third party tool like OptimizeIt to get periodic snap-shots of memory usage and identify the leaked object (or create a reproducer and have customer support do it). A possible work-around is to modify your app to pool JMS connections/sessions for re-use - greatly reducing the number of connections created per day.
              Tom

  • Unable to create a JMS Message bridge between Weblogic 12c and Weblogic 8.1

    Hi,
    I am unable to successfully create a Message Bridge between Weblogic 12.1.1.0 and Weblogic 8.1. The error message being received is:
    eis/jms/WLSConnectionFactoryJNDINoTX > ResourceAllocationException generated by resource adapter on call to ManagedConnectionFactory.createManagedConnection(): "javax.resource.ResourceException: ConnectionFactory: failed to get initial context (InitialContextFactory =weblogic.jndi.WLInitialContextFactory, url = t3://localhost:8001, user name = System) ">
    The error on the monitoring tab is WARN: failed to connect to target.
    Both domains are deployed on one box for testing purposes. The bridge itself is deployed on Weblogic 12c. The areas of config that may be of interest are:
    <server>
    <name>AdminServer</name>
    <listen-address></listen-address>
    </server>
    <messaging-bridge>
    <name>Bridge</name>
    <target>AdminServer</target>
    <source-destination>JMSBridgeSource12c</source-destination>
    <target-destination>JMSBridgeTarget81</target-destination>
    <selector>Test</selector>
    <quality-of-service>Exactly-once</quality-of-service>
    <qos-degradation-allowed>false</qos-degradation-allowed>
    <durability-enabled>true</durability-enabled>
    <idle-time-maximum>60</idle-time-maximum>
    <async-enabled>true</async-enabled>
    <started>true</started>
    <preserve-msg-property>false</preserve-msg-property>
    </messaging-bridge>
    <app-deployment>
    <name>jms-xa-adp</name>
    <target>AdminServer</target>
    <module-type>rar</module-type>
    <source-path>D:\ORACLE~3\WLSERV~1.1\server\lib\jms-xa-adp.rar</source-path>
    <security-dd-model>DDOnly</security-dd-model>
    </app-deployment>
    <jms-bridge-destination>
    <name>JMSBridgeSource12c</name>
    <adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDIXA</adapter-jndi-name>
    <user-name>System</user-name>
    <user-password-encrypted>{AES}nfFzhs+0J/O2Cenf0g4zDsDyvIKENMF7cZ5sAVUehX0=</user-password-encrypted>
    <classpath></classpath>
    <connection-factory-jndi-name>JMSConnectionFactory12c</connection-factory-jndi-name>
    <connection-url>t3://localhost:7001</connection-url>
    <destination-jndi-name>JMSQueue12c</destination-jndi-name>
    </jms-bridge-destination>
    <jms-bridge-destination>
    <name>JMSBridgeTarget81</name>
    <adapter-jndi-name>eis.jms.WLSConnectionFactoryJNDIXA</adapter-jndi-name>
    <user-name>System</user-name>
    <user-password-encrypted>{AES}eBkO46cHvtrzEraOMIOdXow6WvEAtA4NCUDTQ4mC+9w=</user-password-encrypted>
    <classpath></classpath>
    <connection-factory-jndi-name>JMSConnectionFactory81</connection-factory-jndi-name>
    <connection-url>t3://localhost:8001</connection-url>
    <destination-jndi-name>JMSQueue81</destination-jndi-name>
    </jms-bridge-destination>
    I have enforced global trust between the two domains. I have disabled the guest user on the 8.1 domain but can’t see where to do this on 12c.
    Any suggestions would be much appreciated.
    Regards
    John
    Edited by: 958336 on 13-Sep-2012 03:11

    Thanks for the recommendation. Unfortunately it did not help solve the problem.
    I have managed to get a JMS bridge working between 12c and 8.1 by including the 8.1 weblogic.jar on the classpath. This setup was using eis.jms.WLSConnectionFactoryJNDINoTX.
    After trying to use the adapter that supports transactions, WLSConnectionFactoryJNDIXA I received the following error:
    java.lang.IllegalStateException: can only be called from server
    Is this because the Weblogic 12c server now views the 8.1 server as being foreign?

  • Reading Message from Foreign JMS Queue in SOA Suite 11g.

    Hi,
    I am trying to read a JMS message that has been put into a JMS Queue on a remote weblogic Server.
    The steps that I know is that I need to create a foreign JMS Server and then probably use JMS Adapter to subscribe to the message that is lying in the remote queue.
    Has anybody been able to achieve this kind of scenario working for a remote JMS queue? Also, is this supported by JMS Adapter in SOA11g?
    Any help will be appreciated.
    Regards,
    Varun Maheshwari

    Hi Atheek1,
    Thanks for your reply.
    The confusion that is pondering me is that do I need to create a Foreign JMS Server or should I create a JMS adapter and override the properties.
    I have tried the steps for creating a Foreign Server from the below link
    Unable to access remote JMS Queue through JMS Adapter
    But I am not able to find the Foreign Server created and any connection factories and Destinations related to foreign Server in my JMS Destination while configuring JMS Adapter.
    I am not sure how to do step2 as entailed by you.
    Could you please explain me in little detail on how to do this or redirect me to some blog or forum which will be really helpful.
    Cheers,
    Varun

  • Sync/Async bridge via JMS with FAULT messages

    Hello all,<br><br>
    I set up a sync/async bridge scenario with using of JMS communication channel (SAP - JMSReceiverCC - JMSServer and application - JMSSenderCC - SAP). The normal communication works fine.<br>
    But what we can not solve is the Fault Message handling. If there is a application error behind the JMS, a fault message is generated instead of proper application response and sent back to XI. Without any additional setup of JMS Sender CC the processing of the message ends with "MAPPING - EXCEPTION_DURING_EXECUTE", because normal "response mapping" is executed instead of "fault message mapping". This is correct behavior without any discussion.<br><br>
    [SAPhelp|http://help.sap.com/saphelp_nw70/helpdata/en/45/202845de34072ce10000000a155369/frameset.htm] says that there are 2 module parameters to be set : fault, faultNamespace. The description is rather vague, so let's see, what the "NotifyResponseBean" does, when parameters fault/faultNamespace are filled:<br><br>
    <pre>if(fault != null && faultNamespace != null)
      if(faultNamespace.equals("http://sap.com/xi/XI/System"))
        ((XIMessage)message1).setMessageClass(MessageClass.SYSTEM_ERROR);
        ((XIMessage)message1).setError(fault, "no additional information");
      } else
        ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_ERROR);
        ErrorInfo errorinfo = message1.createErrorInfo();
        errorinfo.setAttribute("ApplicationFaultInterface", fault);
        errorinfo.setAttribute("ApplicationFaultInterfaceNamespace", faultNamespace);
        errorinfo.setAttribute("ErrorCode", fault);
        errorinfo.setAttribute("AdditionalErrorText", "no additional information");
        message1.setErrorInfo(errorinfo);
    } else
      ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_RESPONSE);
    }</pre><br>
    The code is pretty straight forward so one could assume, that it's the name and namespace of inbound synchronnous message interface what is supposed to be filled in the values of each parameter. And from that kind of information SAP XI can evolve how to handle the response, actually the fault.<br>
    Unfortunatelly the real situation is different - every time the fault message is generated and sent back to XI, the response is correctly corelated with the request message, "WaitResponseBean" and "NotifyResponseBean" are finished correctly and the processing crashes in messaging class on following exception:<br><br>
    java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:592) at
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    com.sap.aii.adapter.xi.ms.XIMessage.updateHeaders(XIMessage.java:4244) at
    com.sap.aii.adapter.xi.ms.XIMessage.getTransportHeaders(XIMessage.java:570) at
    com.sap.aii.af.ra.ms.impl.ServerConnectionImpl.request(ServerConnectionImpl.java:212) at
    com.sap.aii.af.ra.ms.impl.core.transport.http.MessagingServlet.doPost(MessagingServlet.java:337) at ...
    <br><br>
    Is there anyone, who can put more light on JMS sync/async bridge fault handling ???
    <br><br>
    Thank you ...<br>
    Regards
    Tomas

    Hello again,
    I proceed in investigation little more, but the main problem has not been solved. I found that the problem is not even in WaitResponseBean (placed in JMCReceiverCC). This bean is woken up properly on base of proper CorrelationID. See the log:
    2009-10-15 11:00:33 Success WRB: entering WaitResponseBean
    2009-10-15 11:00:33 Success WRB: retrieving the message for f1ea1fc0-b96d-11de-9b68-00144f4acd86 ...
    2009-10-15 11:00:46 Success WRB: retrieved the message: ApplicationError
    2009-10-15 11:00:46 Success WRB: leaving WaitResponseBean
    I think, that the problem is somewhere within main messaging functionality. I suppose that on base of exception message:
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    which is generated.
    Any ideas or comments ?
    Thank you in advance.
    Regards
    Tomas

Maybe you are looking for

  • Flash Player and Internet Explorer

    I continual get a message that I cannot view something because I need the latest flash player. I download and upgrade the flash player and it happens again the next day. Does anyone know what I am doing wrong. It has something to do with IE. I can vi

  • Photos in Browser Won't Display in Viewer

    Photos I make adjustments to suddenly disappear in the Viewer (they still show in the Browser). All I see is a black Viewer. In some cases, even if I haven't made an adjustment, a picture clicked in the Browser will show momentarily in the Viewer and

  • Tv episodes downloaded only playing first 30 seconds of my 42 min show. Help

    Only the first 30 sec of my show are appearing in the counter upon playback

  • Query in Selection screen!!!!

    Hi all,         I have a requirement which requires me to validate the data entered in the selection screen when the data entered in the selection screen is saved as a variant. That is, when the save button in the selection screen is clicked, then th

  • Drill Down scenario possible?

    Hello Experts, Please let me know if it is possible to achieve the following scenario. I am using a Pie chart to perform 4-5 drill downs. 1. The Pie Chart has 2 sectors. 2. When Sector 1 is clicked it drills down and spreads into 7-8 sectors. 3. Now