JMS: foreign servers vs. bridge

hello,
any suggestions when to use wls jms bridge e.g. for talking to Sonic or MQ or when to use a foreign jms server definitions? all informations that clarify the conceptual differences between the two solutions are appreciated.
since what version a foreign jms server is available?
thanks.
b.

For help choosing among the various JMS integration options, I recommend starting with the "Integrating Remote JMS Providers FAQ" at [http://edocs.bea.com/wls/docs103/jms/interop.html].
In addition, specifically for MQ integration, you might want to check out this blog post "Integrating WebSphere MQ 6 with BEA Weblogic Server 10 using Weblogic Server's Foreign (JMS) Server feature:" at [http://ibswings.blogspot.com/2008/02/integrating-mq-broker-6-with-bea.html].
As for Sonic integration, I recall that their docs used to provide step-by-step directions for integrating with WebLogic -- I don't know if they still do that with the latest versions.
MDBs and bridges have been around since 6.1, foreign Servers since 8.1, and SAF (for WL to WL interop) since 9.0.
Hope this helps,
Tom

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

  • JMS Foreign Provider using XAConnectionFactory for Container Managed Trans

    Hello, we've been running some proof of concepts using Weblogic 10.3 with a JMS Foreign Provider attached to MQSeries 7.
    We created a very simple MDB to read a message and output it's content.
    We created a bindings file with a Connection Factory (without XA)
    The question I have is that when I set the Transaction Management to Container and Transaction Attribute to "Required" , does Weblogic automatically look for a XAQueueConnectionFactory? We get the error below:
    [EJB:011013]The Message-Driven EJB attempted to connect to the JMS connection factory with the JNDI name: OP_CF. However, the object with the JNDI name: OP_CF is not a JMS connection factory. NestedException Message is :com.ibm.mq.jms.MQQueueConnectionFactory cannot be cast to javax.jms.XAConnectionFactory>
    When we set the transacation to Bean Managed or we set to Container Managed but set the attribute to "NotSupported" it works fine.
    My goal is to have a MDB that has Container Managed Transactions and "Requires" Attribute, but only particpates in a local transaction and does not need the overhead of XA. It will read from a Foreign MQ manager Queue, process and then write back to the same Foreign MQ manager(different queue), so only one resource (MQ) is used.
    If we set the above settings, it seems that a XAConnectionFactory is required. Is that true?

    -- If you do not enable the container transaction, then the MDB connection factory does not need to be an XA connection factory.
    -- If the application is performing messaging operations, and wants to use locally managed transactions, then you have a variety of options. These are all standard JMS:
    * Use an XA connection and XA session. Begin JTA transactions before performing JMS operations, and call commit or rollback on the JTA transaction after performing the JMS operations. For foreign vendors, you must take extra steps to ensure that the vendor enlists with the WebLogic transaction -- typically by using WebLogic resource reference wrappers.
    * Use the standard JMS API "transacted session" on a non-XA session -- the transaction will be local to the session (this is extremely similar to JDBC local transactions).
    * Use a non-transacted session. Sends will occur immediately. Receive messages will be acknowledged immediately for auto-ack sessions, or will not for non-ack.
    -- Note that if a transaction only includes a single operation, there's no need for XA or non-transacted sessions.
    -- For more information on transactions and integration, I highly recommend reading our [ Integrating Remote JMS Providers | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13727/interop.htm#JMSPG553 ] FAQ. I also very highly recommend purchasing a copy of [ Professional Oracle WebLogic Server | http://www.amazon.com/Professional-Oracle-WebLogic-Server-Patrick/dp/0470484306/ref=sr_1_1?ie=UTF8&s=books&qid=1252088885&sr=8-1 ], and of course reviewing our [ JMS Information Roadmap | http://download.oracle.com/docs/cd/E15523_01/web.1111/e14529/messaging.htm#sthref23 ].
    -- Finally, you may also want to consider replacing some MQ usage with WebLogic JMS. WL JMS is a heavily adopted messaging vendor, and for obvious reasons, tends to integrate especially well with the WebLogic app server.
    Hope this helps,
    Tom

  • Lync clients upon start opening up connections to foreign servers

    We are seeing a weird behavior on all of our Lync clients. I am wondering why it would open connections to foreign servers while it starts, and then those connections end just as mysteriously as they started. We are using Lync 2010 and along with the
    June 2013 updates. We discovered this by accident while reviewing TCPView. If you need any more information just ask.

    You're right, it's not your picture, but if there's a contact in your list that has a web url published for their picture for other users to see, communicator.exe will make an http connection upon startup to go fetch it.  These can be all over
    the place on whatever server the person chose.  Whatever it is, Fiddler or Wireshark will tell you what the full URL it's asking for is and give you a clue as to what it is.
    Edit: You figured it out as I was writing this.  That was an interesting one...  Thanks for marking my reply!
    Please remember, if you see a post that helped you please click "Vote As Helpful" and if it answered your question please click "Mark As Answer".
    SWC Unified Communications

  • MDB - JMS foreign provider

              Using WLS8.1:
              I'm currently trying to set up a MDB listening directly on a JMS queue, provided
              by Sonic.
              I registered my queue through the Sonic JMS console in the WLS JNDI repository,
              and can browse to the object successfully in the JNDI browser.
              However, when I deploy my MDB, I get an exception:
              <Feb 28, 2004 3:27:09 PM MET> <Warning> <EJB> <BEA-010061> <The Message-Driven
              EJB: SomeMDB is unable to connect to the JMS destination: myforeigndestination.
              The Error was:
              weblogic.jms.common.InvalidDestinationException: Foreign destination, q_external
              weblogic.jms.common.InvalidDestinationException: Foreign destination, q_external
              at weblogic.jms.common.Destination.checkDestinationType(Destination.java:106)
              at weblogic.jms.client.JMSSession.createConsumer(JMSSession.java:1580)
              at weblogic.jms.client.JMSSession.createReceiver(JMSSession.java:1484)
              at weblogic.ejb20.internal.JMSConnectionPoller.setUpQueueSessions(JMSConnectionPoller.java:1609)
              at weblogic.ejb20.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:1844)
              at weblogic.ejb20.internal.JMSConnectionPoller.connectToJMS(JMSConnectionPoller.java:1087)
              at weblogic.ejb20.internal.JMSConnectionPoller.trigger(JMSConnectionPoller.java:970)
              at weblogic.time.common.internal.ScheduledTrigger.run(ScheduledTrigger.java:243)
              at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
              at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
              at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:229)
              at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:223)
              at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:50)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              The only way to get it working is setting up an additional internal WL queue,
              connected by a Messaging Bridge, but that's not what I want.
              It seems like weblogic JMS implemenation only accepts weblogic Queue's as valid
              Queue objects.
              Thanks for any pointers.
              Rgrds,
              Klaas van der Ploeg
              

              Klaas van der Ploeg wrote:
              > Using WLS8.1:
              >
              > I'm currently trying to set up a MDB listening directly on a JMS queue, provided
              > by Sonic.
              >
              > I registered my queue through the Sonic JMS console in the WLS JNDI repository,
              > and can browse to the object successfully in the JNDI browser.
              > However, when I deploy my MDB, I get an exception:
              > <Feb 28, 2004 3:27:09 PM MET> <Warning> <EJB> <BEA-010061> <The Message-Driven
              > EJB: SomeMDB is unable to connect to the JMS destination: myforeigndestination.
              > The Error was:
              > weblogic.jms.common.InvalidDestinationException: Foreign destination, q_external
              > weblogic.jms.common.InvalidDestinationException: Foreign destination, q_external
              > at weblogic.jms.common.Destination.checkDestinationType(Destination.java:106)
              > at weblogic.jms.client.JMSSession.createConsumer(JMSSession.java:1580)
              > at weblogic.jms.client.JMSSession.createReceiver(JMSSession.java:1484)
              > at weblogic.ejb20.internal.JMSConnectionPoller.setUpQueueSessions(JMSConnectionPoller.java:1609)
              > at weblogic.ejb20.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:1844)
              > at weblogic.ejb20.internal.JMSConnectionPoller.connectToJMS(JMSConnectionPoller.java:1087)
              > at weblogic.ejb20.internal.JMSConnectionPoller.trigger(JMSConnectionPoller.java:970)
              > at weblogic.time.common.internal.ScheduledTrigger.run(ScheduledTrigger.java:243)
              > at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
              > at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
              > at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:229)
              > at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:223)
              > at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:50)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              >
              >
              > The only way to get it working is setting up an additional internal WL queue,
              > connected by a Messaging Bridge, but that's not what I want.
              >
              >
              > It seems like weblogic JMS implemenation only accepts weblogic Queue's as valid
              > Queue objects.
              Emphatically not true. In pointed fact, WebLogic has gone through
              great pains over the years to ensure integration works with multiple
              JMS vendors - sending out fix requests to them as needed (including
              Sonic).
              Anyhow, you are trying to use a non-WebLogic destination with a
              WebLogic JMS session. No vendor supports this. Instead, you
              must make sure that the MDB creates a Sonic JMS session. So
              configure a foreign connection factory, and configure the
              MDB to refer to this connection factory. You can find
              this information in WebLogic's JMS developer guide.
              This is the first time I've gotten a Sonic question in quite a
              while, but I know that they have step-by-step doc on how to
              integrate their product with WebLogic. You might want to try
              looking there for more help. I don't know if their doc
              leverages 8.1 foreign destination wrapper feature.
              Tom Barnes, BEA
              >
              > Thanks for any pointers.
              >
              > Rgrds,
              > Klaas van der Ploeg
              

  • Weblogic: problem with JMS foreign server and Transaction

    Hello everyone,
    I am working with an enterprise application with Web Application Server Logic 10.3. L 'application uses the following components:
    1) MDB 2.0
    2) FOREIGN JMS SERVER -> WebSpereMQ
    3) EJB SESSION
    L 'MDB calls the session bean which uses in its ejb-jar.xml using a Wrapper for JMS QueueConnectionFactory with res-ref:
    <resource- ref>
    <res-ref-name> jms / iss / QCFIXP </ res-ref-name>
    <res-auth> Container </ res-auth>
    <res-sharing -scope> Shareable </ res-sharing-scope>
    <resource- ref>
    The MDB is CMT
    <transaction-type> Container </ transaction-type>
    while the session bean is BMT
    <transaction-type> Bean </ transaction-type>
    to call the QCFIXP in its transaction.
    The QCFIXP ii an XA resource
    When there is a rollback operation in SessionBean also in 'MDB
    There 'an operation setRollbackOnly:
    getMessageDrivenContext (). setRollbackOnly ();
    After this operation on the MDB I do a JNDI look up the QueueConnectionFactory but sending the message on a queue I get the following exception:
    javax.jms.JMSException: [JMSPool: 169809] An error occurred while registering the JMS connection with JTA:
    But if not using the "wrapper jms" in the session bean I did not take any exception and the application don' t have any error.
    My doubt is :
    Why if I use the JMS wrapper I get an error javax.jms.JMSException: [JMSPool: 169809] An error occurred while registering the JMS connection with JTA?
    Thanks in advance.
    Michele
    Edited by: user3501731 on 11-mag-2011 3.16

    Hi Tom,
    Thanks very much for your responses and careful analysis you've done.
    Following the source code of the MDB where error occurs.
    Marked In bold the line where the exception is thrown.
         public void onMessage(Message msg) {
    //          Utility.logger(AP.DEBUG, "Partito MDB 2");
              processa(msg);
              protected void processa(Message msg) {
              Utility.logger(
                   AP.DEBUG,
                   "IXPReceiverMDB7.processa(Message msg) partito");
              try {
                   long start = System.currentTimeMillis();
    /*               Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB.processa(Message msg) effettuo lookup");*/
                   ejb = myEjbLocalHome.create();
                   // individuo l'identificativo del messaggio in ricezione
                   String msgid = msg.getJMSMessageID();
                   Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB7.processa(Message msg) elaboro messaggio:"
                             + msgid);
                   String charset = msg.getStringProperty("JMS_IBM_Character_Set");
                   Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB7.processa Charset:" + charset );
                   // invoco il processo di ricezione
                   boolean commitRequested = ejb.processa(ctlReq, encoding, msg);
                   // il valore di ritorno del processo di ricezione identifica o meno
                   // la necessita' di effettuare il rollback dell'intero processo
                   if (!commitRequested) {
                        getMessageDrivenContext().setRollbackOnly();
                   if (ctlReq) {
                        Utility.logger(
                             AP.INFO,
                             "IXPReceiverMDB7.processa(Message msg) spedisco il messaggio pilota del 'cleaning' con JMSCorrelationID = '"
                                  + msgid
                                  + "'");
                        msg.setJMSCorrelationID(msgid);
                        // Viene creata la QueueConnection
                        QueueConnectionFactory factory =
                             JmsFactoryDispenser.getSingleton().getFactory();
                        QueueConnection connection = factory.createQueueConnection();
                        // Viene ottenuta la 'session'
                        QueueSession session =
                             connection.createQueueSession(
                                  false,
                                  Session.AUTO_ACKNOWLEDGE);
                        // spedisco il messaggio sulla coda abbinata al processo di 'cleaning'
                        // della coda di controllo
                        IXPMessageManager msgManager = new IXPMessageManager(session);
                        msgManager.spedisci(msg, AP.PILOTQUEUE, "J", AP.STD_MESSAGE);                    session.close();
                        connection.close();
                   long end = System.currentTimeMillis();
                   Long durata = new Long (end - start);
                   Utility.logger(
                        AP.INFO,
                        "IXPReceiverMDB7 Tempo totale elaborazione messaggio: " +
                        msgid + " " +
                        durata.toString() + " mill" );
                   Utility.logger(
                        AP.DEBUG,
                        "IXPReceiverMDB7.processa(Message msg) terminato");
              } catch (Throwable e) {
                   getMessageDrivenContext().setRollbackOnly();
                   try {
                        Utility.myExceptionHandler(
                             "E",
                             "1",
                             "4028",
                             "IXPReceiverMDB.onMessage()",
                             e);
                   } catch (Throwable ex) {
                        ex.printStackTrace();
    Thanks in advance.
    Edited by: serpichetto on 16-mag-2011 1.24

  • SOAP to JMS using Sync/Async bridge - configuration confirmation needed

    Hi group,
    Since I'm experincing error in a scenario using sync/async bridge in jms adapter I really would like a confirmation on my configuration.
    For a simple SOAP to JMS scenario is it then correct that all I need is;
    1) 2 synchronous message interfaces, 1 inbound and 1 outbound
    2) 1 Receiver determination
    3) 1 Interface determination
    4) 1 Receiver agreement (JMS adapter with module configuration)
    5) 2 Sender agreements (in my case 1 soap and 1 JMS adapter - the later with module configuration).
    6) The sender and receiver JMS adapters point to different MQ queues (request and response queues)
    7) The sender agreement for the JMS adapter uses my synchronous, inbound message interface (isn't this really just a "dummy" to actually fetch data from response queue - meaning that the actual utilized business system/service, MI and namespace are unimportant, since the module will make the adapter notify the listening module in the receiver JMS adapter?)
    Best Regards,
    Daniel

    Hi, thanks for your reply.
    I'm familiar with the links provided. I believe everything is configured as it should be, but since I get error I would like to have my configuration confirmed. Neither the weblog (or SAP guide) are detailed enough to convince me 100% that my configuration is correct. Surely the problem could be on the MQ side, but before going into that, I want to be sure that its not on XI-side.
    So I really would like confirmation on the steps/question that I wrote:-)
    Best Regards,
    Daniel

  • Monitor JMS Foreign Server

    Hi,
              I have configured the IBM MQ server as a foreign server in one of the JMS Module of WLS9.1. I am able to identify it using JMX (MBeans).(I thought this was a good approach if u have any other approach for it? reply me).
              Now i want to monitor the Foreign Server i.e. capture the Foreign Server status whether the server is active or not and accordingly deploy/undeploy the Foreign Server.
              Can anyone go through this and reply me with the solution? PLzzzzzzzzzz its very urgent

    A "foreign server" is stateless configuration code that simply maps an application's JNDI lookup request into another vendor's JNDI context. It provides no monitoring.
              If you want to determine the status of the server that a foreign server references, you need to either (A) monitor the foreign server directly or (B) monitor the status of an application or service that depends on the foreign server.
              Tom

  • OSB: JMS Foreign Server

    Hi!
    I have problem with configure BusinesService for HornetQ JMS Server.
    Connection cannot instantiate:
    <Error> <WliSbTransports> <BEA-381502> <Exception in JmsInboundMessageContext.close : javax.jms.JMSException: [JMSPool:169803]JNDI lookup of the JMS connection factory jms.WLReceiverCF failed: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    javax.jms.JMSException: [JMSPool:169803]JNDI lookup of the JMS connection factory jms.WLReceiverCF failed: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
         at weblogic.deployment.jms.JMSExceptions.getJMSException(JMSExceptions.java:29)
         at weblogic.deployment.jms.JMSConnectionHelper.lookupConnectionFactory(JMSConnectionHelper.java:485)
         at weblogic.deployment.jms.JMSConnectionHelper.openConnection(JMSConnectionHelper.java:268)
         at weblogic.deployment.jms.JMSConnectionHelper.<init>(JMSConnectionHelper.java:144)
         at weblogic.deployment.jms.JMSSessionPool.getConnectionHelper(JMSSessionPool.java:517)
         at weblogic.deployment.jms.PooledConnectionFactory.createConnectionInternal(PooledConnectionFactory.java:355)
         at weblogic.deployment.jms.PooledConnectionFactory.createQueueConnection(PooledConnectionFactory.java:188)ProxyService for this foreign server work fine.
    Help please!
    Best Regards,
    lam
    Edited by: laaam on Nov 25, 2010 1:02 PM
    Edited by: laaam on Nov 25, 2010 7:52 PM

    Hi Lam,
    I have a successful configuration to JBoss JMS . My foreign server configuration is like this:
    <foreign-server name=”ForeignServer”>
    <default-targeting-enabled>true</default-targeting-enabled>
    <foreign-destination name=”A”>
    <local-jndi-name>A</local-jndi-name>
    <remote-jndi-name>queue/A</remote-jndi-name>
    </foreign-destination>
    <foreign-connection-factory name=”FConf”>
    <local-jndi-name>FConf</local-jndi-name>
    <remote-jndi-name>ConnectionFactory</remote-jndi-name>
    <username>esbuser</username>
    <password-encrypted>{3DES}90sIZwo6Llr9r73p+VXkvQ==</password-encrypted>
    </foreign-connection-factory>
    <initial-context-factory>org.jnp.interfaces.NamingContextFactory</initial-context-factory>
    <connection-url>jnp://localhost:1099</connection-url>
    </foreign-server>
    The difference I can see is the extra jndi property java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces. Can you try removing that ?
    Another try if the above doesn't work is to specify the full jms business service URI if your JBoss destination is not a secured one (if no user name/password is required to access it).
    jms://<WLSHostname>:<wls port>/jms.WLReceiverCF/jms.queue.RegisterDocumentResponse

  • Paging in JMS deactivated servers...help

    hi
    I am working on WLS 8.1. I have 2 servers with 4 JMS servers ( 2 JMS servers targeted on each). Everything was working fine but after I configured Paging and distributed destinations on 2 of the JMS servers , i am not able see them active on the instances they are targeted on. I wrote a script to get statistics for all the servers which was working fine until this time.I am not able to see these JMS servers targeted on any server.Can anybody explain me the reason?
    thanks in advance

    You may want to ask in the weblogic.developer.interest.jms newsgroup.
    Preet bea wrote:
    hi
    I am working on WLS 8.1. I have 2 servers with 4 JMS servers ( 2 JMS servers targeted on each). Everything was working fine but after I configured Paging and distributed destinations on 2 of the JMS servers , i am not able see them active on the instances they are targeted on. I wrote a script to get statistics for all the servers which was working fine until this time.I am not able to see these JMS servers targeted on any server.Can anybody explain me the reason?
    thanks in advance

  • Bridge JMS on SSL Mutual authenticathed Servers

    Hi all,
              I'm facing a problem on bridging JMS message with WLS bridge on SSL Mutual authenticathed Servers
              I configured two WLS (8.1 SP6), say "ALICE" and "BOB", with SSL listen port and I enabled "Two Way Client Cert Behavior" with "Client Certs Requested and Enforced" for both servers.
              I configured a WLS bridge on ALICE with source destination on ALICE itself and target destination on BOB.
              When I start this bridge it cannot connect to BOB. I enabled SSL debug and I found that ALICE didn't send CLIENT certificate to BOB.
              Here is BOB's log:
              <22-mag-2008 14.56.10 CEST> <Debug> <TLS> <000000> <Filtering JSSE SSLSocket>
              <22-mag-2008 14.56.10 CEST> <Debug> <TLS> <000000> <SSLIOContextTable.addContext(ctx): 32975481>
              <22-mag-2008 14.56.10 CEST> <Debug> <TLS> <000000> <SSLSocket will be Muxing>
              <22-mag-2008 14.56.10 CEST> <Debug> <TLS> <000000> <SSLFilter.isActivated: false>
              <22-mag-2008 14.56.10 CEST> <Debug> <TLS> <000000> <isMuxerActivated: false>
              <22-mag-2008 14.56.10 CEST> <Debug> <TLS> <000000> <SSLFilter.isActivated: false>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <7192496 SSL Version 2 with no padding>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <21231495 SSL3/TLS MAC>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <21231495 received SSL_20_RECORD>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <HANDSHAKEMESSAGE: ClientHelloV2>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <write HANDSHAKE, offset = 0, length = 58>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <write HANDSHAKE, offset = 0, length = 566>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <write HANDSHAKE, offset = 0, length = 260>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <write HANDSHAKE, offset = 0, length = 4>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <SSLFilter.isActivated: false>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <isMuxerActivated: false>
              <22-mag-2008 14.56.12 CEST> <Debug> <TLS> <000000> <SSLFilter.isActivated: false>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <21231495 SSL3/TLS MAC>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <21231495 received HANDSHAKE>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <HANDSHAKEMESSAGE: Certificate>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <validationCallback: validateErr = 0>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <Required peer certificates not supplied by peer>
              <22-mag-2008 14.56.13 CEST> <Warning> <Security> <BEA-090508> <Certificate chain received from localhost - 127.0.0.1 was incomplete.>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <Validation error = 4>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <Certificate chain is incomplete>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <User defined JSSE trustmanagers not allowed to override>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <SSLTrustValidator returns: 68>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <Trust failure (68): CERT_CHAIN_INCOMPLETE>
              <22-mag-2008 14.56.13 CEST> <Debug> <TLS> <000000> <NEW ALERT with Severity: FATAL, Type: 40
              and here is ALICE's log:
              <22-mag-2008 15.28.01 CEST> <Warning> <Connector> <BEA-190032> << Weblogic Messaging Bridge Adapter (XA)_eis/jms/WLSConnectionFactoryJNDIXA > ResourceAllocationException of javax.resource.ResourceException: ConnectionFactory: failed to get
              initial context (InitialContextFactory =weblogic.jndi.WLInitialContextFactory, url = t3s://localhost:7002, user name = jmsbob) on createManagedConnection.>
              <22-mag-2008 15.28.01 CEST> <Info> <MessagingBridge> <BEA-200043> <Bridge "AliceToBobMessagingBridge" failed to connect to the target destination and will try again in 25 seconds. (java.lang.Exception: javax.resource.ResourceException: Conn
              ectionFactory: failed to get initial context (InitialContextFactory =weblogic.jndi.WLInitialContextFactory, url = t3s://localhost:7002, user name = jmsbob)
              at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBaseConnection.java:1386)
              at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBaseConnection.java:1366)
              at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:345)
              at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:219)
              at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:188)
              at weblogic.connector.common.internal.ConnectionFactory.createResource(ConnectionFactory.java:127)
              at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1193)
              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:345)
              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:286)
              at weblogic.connector.common.internal.ConnectionPool.reserveResource(ConnectionPool.java:567)
              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:280)
              at weblogic.connector.common.internal.ConnectionPoolManager.getConnection(ConnectionPoolManager.java:650)
              at weblogic.connector.common.internal.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:106)
              at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseConnectionFactory.java:120)
              at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:809)
              at weblogic.jms.bridge.internal.MessagingBridge.execute(MessagingBridge.java:991)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
              -------------- Linked Exception ------------
              javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://localhost:7002: Destination unreachable; nested exception is:
                      javax.net.ssl.SSLHandshakeException: [Security:090497]HANDSHAKE_FAILURE alert received from localhost - 127.0.0.1. Check both sides of the SSL configuration for mismatches in supported ciphers, supported protocol versions, trusted C
              As, and hostname verification settings.; No available router to destination]
              at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:47)
              at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:651)
              at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:320)
              at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:253)
              at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:135)
              at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
              at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
              at javax.naming.InitialContext.init(InitialContext.java:219)
              at javax.naming.InitialContext.<init>(InitialContext.java:195)
              at weblogic.jms.adapter.JMSBaseConnection.getInitialContext(JMSBaseConnection.java:1967)
              at weblogic.jms.adapter.JMSBaseConnection.startInternal(JMSBaseConnection.java:233)
              at weblogic.jms.adapter.JMSBaseConnection.start(JMSBaseConnection.java:219)
              at weblogic.jms.adapter.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:188)
              at weblogic.connector.common.internal.ConnectionFactory.createResource(ConnectionFactory.java:127)
              at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1193)
              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:345)
              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:286)
              at weblogic.connector.common.internal.ConnectionPool.reserveResource(ConnectionPool.java:567)
              at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:280)
              at weblogic.connector.common.internal.ConnectionPoolManager.getConnection(ConnectionPoolManager.java:650)
              at weblogic.connector.common.internal.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:106)
              at weblogic.jms.adapter.JMSBaseConnectionFactory.getTargetConnection(JMSBaseConnectionFactory.java:120)
              at weblogic.jms.bridge.internal.MessagingBridge.getConnections(MessagingBridge.java:809)
              at weblogic.jms.bridge.internal.MessagingBridge.execute(MessagingBridge.java:991)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
              Caused by: java.net.ConnectException: t3s://localhost:7002: Destination unreachable; nested exception is:
              javax.net.ssl.SSLHandshakeException: [Security:090497]HANDSHAKE_FAILURE alert received from localhost - 127.0.0.1. Check both sides of the SSL configuration for mismatches in supported ciphers, supported protocol versions, trusted C
              As, and hostname verification settings.; No available router to destination
              at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:200)
              at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:125)
              at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:310)
              ... 23 more
              )>
              <22-mag-2008 15.28.09 CEST> <Info> <MessagingBridge> <BEA-200036> <The Started attribute of Bridge "AliceToBobMessagingBridge" has been changed from "true" to "false".>
              What I need to do to avoid this problem?
              Nathan65

    I checked my configuration. ALICE's keystores are
              IDENTITY
              Tipo keystore: jks
              Provider keystore: SUN
              Il keystore contiene 2 entry
              Nome alias: certgenca
              Data di creazione: 21-mag-2008
              Tipo entry: trustedCertEntry
              Proprietario: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Organismo di emissione: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Numero di serie: 234b5559d1fa0f3ff5c82bdfed032a87
              Valido da Thu Oct 24 17:54:45 CEST 2002 a Tue Oct 25 17:54:45 CEST 2022
              Impronte digitali certificato:
              MD5: A2:18:4C:E0:1C:AB:82:A7:65:86:86:03:D0:B3:D8:FE
              SHA1: F8:5D:49:A4:12:54:78:C7:BA:42:A7:14:3E:06:F5:1E:A0:D4:C6:59
              Nome alias: alicecert
              Data di creazione: 21-mag-2008
              Tipo entry: keyEntry
              Lunghezza catena certificati: 1
              Certificato[1]:
              Proprietario: [email protected], OU=CompetenceCenter, O=ValueTeam, L=Rome, ST=IT, C=IT
              Organismo di emissione: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Numero di serie: -1dbb65eaa595141fa1e44ba5856d65e4
              Valido da Tue May 20 09:39:25 CEST 2008 a Sun May 21 09:39:25 CEST 2023
              Impronte digitali certificato:
              MD5: BA:01:C2:E3:CC:92:C4:99:F7:8C:28:FF:C1:16:88:D9
              SHA1: C0:D8:E8:B6:C2:62:03:90:3F:23:3C:FA:A8:C8:0A:00:FA:96:5A:4E
              TRUST
              Tipo keystore: jks
              Provider keystore: SUN
              Il keystore contiene 1 entry
              Nome alias: certgenca
              Data di creazione: 21-mag-2008
              Tipo entry: trustedCertEntry
              Proprietario: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Organismo di emissione: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Numero di serie: 234b5559d1fa0f3ff5c82bdfed032a87
              Valido da Thu Oct 24 17:54:45 CEST 2002 a Tue Oct 25 17:54:45 CEST 2022
              Impronte digitali certificato:
              MD5: A2:18:4C:E0:1C:AB:82:A7:65:86:86:03:D0:B3:D8:FE
              SHA1: F8:5D:49:A4:12:54:78:C7:BA:42:A7:14:3E:06:F5:1E:A0:D4:C6:59
              BOB's keystores are:
              IDENTITY
              Tipo keystore: jks
              Provider keystore: SUN
              Il keystore contiene 2 entry
              Nome alias: certgenca
              Data di creazione: 21-mag-2008
              Tipo entry: trustedCertEntry
              Proprietario: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Organismo di emissione: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Numero di serie: 234b5559d1fa0f3ff5c82bdfed032a87
              Valido da Thu Oct 24 17:54:45 CEST 2002 a Tue Oct 25 17:54:45 CEST 2022
              Impronte digitali certificato:
              MD5: A2:18:4C:E0:1C:AB:82:A7:65:86:86:03:D0:B3:D8:FE
              SHA1: F8:5D:49:A4:12:54:78:C7:BA:42:A7:14:3E:06:F5:1E:A0:D4:C6:59
              Nome alias: bobcert
              Data di creazione: 21-mag-2008
              Tipo entry: keyEntry
              Lunghezza catena certificati: 1
              Certificato[1]:
              Proprietario: [email protected], OU=CompetenceCenter, O=ValueTeam, L=Rome, ST=IT, C=IT
              Organismo di emissione: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Numero di serie: 26ccb8983c1cd0dc2eb6b0c7019eddb2
              Valido da Tue May 20 09:53:38 CEST 2008 a Sun May 21 09:53:38 CEST 2023
              Impronte digitali certificato:
              MD5: 6C:B3:9D:02:6E:CD:F4:04:C2:76:F2:92:97:39:66:7E
              SHA1: D1:07:5A:64:79:2F:FE:35:4D:D4:FD:7E:42:FC:D3:9C:68:6B:EE:B8
              TRUST (same as ALICE's TRUST)
              Tipo keystore: jks
              Provider keystore: SUN
              Il keystore contiene 1 entry
              Nome alias: certgenca
              Data di creazione: 21-mag-2008
              Tipo entry: trustedCertEntry
              Proprietario: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Organismo di emissione: CN=CertGenCAB, OU=FOR TESTING ONLY, O=MyOrganization, L=MyTown, ST=MyState, C=US
              Numero di serie: 234b5559d1fa0f3ff5c82bdfed032a87
              Valido da Thu Oct 24 17:54:45 CEST 2002 a Tue Oct 25 17:54:45 CEST 2022
              Impronte digitali certificato:
              MD5: A2:18:4C:E0:1C:AB:82:A7:65:86:86:03:D0:B3:D8:FE
              SHA1: F8:5D:49:A4:12:54:78:C7:BA:42:A7:14:3E:06:F5:1E:A0:D4:C6:59
              Here is a FRAGMENT of ALICE's "config.xml" (I use custom identity and custom trust)
              <Server
              CustomIdentityKeyStoreFileName="C:\bea\wlp81sp6\user_projects\domains\ALICE\CERTIFICATI\alice.jks"
              CustomIdentityKeyStorePassPhraseEncrypted="{3DES}/q7+XXkrvz0zncx18PjDug=="
              CustomIdentityKeyStoreType="JKS"
              CustomTrustKeyStoreFileName="C:\bea\wlp81sp6\user_projects\domains\ALICE\CERTIFICATI\certgenca.jks"
              CustomTrustKeyStorePassPhraseEncrypted="{3DES}/q7+XXkrvz0zncx18PjDug=="
              CustomTrustKeyStoreType="JKS" ExpectedToRun="false"
              JavaStandardTrustKeyStorePassPhraseEncrypted="{3DES}CVtHlHaDky1XKC1QZVz2Kw=="
              KeyStores="CustomIdentityAndCustomTrust" ListenAddress=""
              ListenPort="7011" Name="alice" NativeIOEnabled="true"
              ReliableDeliveryPolicy="RMDefaultPolicy" ServerVersion="8.1.6.0"
              StdoutDebugEnabled="true" StdoutSeverityLevel="64">
              <SSL ClientCertificateEnforced="true" Enabled="true"
              HostnameVerificationIgnored="true"
              IdentityAndTrustLocations="KeyStores" ListenPort="7012"
              Name="alice" ServerPrivateKeyAlias="alicecert"
              ServerPrivateKeyPassPhraseEncrypted="{3DES}/q7+XXkrvz0zncx18PjDug==" TwoWaySSLEnabled="true"/>
              <Log FileCount="2" FileMinSize="5000" Name="alice" NumberOfFilesLimited="true"/>
              </Server>
              and also here is a fragment of BOB's "config.xml" (same of ALICE's keystores configuration)
              <Server
              CustomIdentityKeyStoreFileName="C:\bea\wlp81sp6\user_projects\domains\BOB\CERTIFICATI\bob.jks"
              CustomIdentityKeyStorePassPhraseEncrypted="{3DES}PJMoAH+j5jeVWzQfY8Gf2w=="
              CustomIdentityKeyStoreType="JKS"
              CustomTrustKeyStoreFileName="C:\bea\wlp81sp6\user_projects\domains\BOB\CERTIFICATI\certgenca.jks"
              CustomTrustKeyStorePassPhraseEncrypted="{3DES}PJMoAH+j5jeVWzQfY8Gf2w=="
              CustomTrustKeyStoreType="JKS" ExpectedToRun="false"
              JavaStandardTrustKeyStorePassPhraseEncrypted="{3DES}TXgi1bpazzUgtLpwMy9q9Q=="
              KeyStores="CustomIdentityAndCustomTrust" ListenAddress=""
              ListenPort="7001" Name="bob" NativeIOEnabled="true"
              ReliableDeliveryPolicy="RMDefaultPolicy" ServerVersion="8.1.6.0"
              StdoutDebugEnabled="true" StdoutSeverityLevel="64">
              <SSL ClientCertificateEnforced="true" Enabled="true"
              HostnameVerificationIgnored="true"
              IdentityAndTrustLocations="KeyStores" ListenPort="7002"
              Name="bob" ServerPrivateKeyAlias="bobcert"
              ServerPrivateKeyPassPhraseEncrypted="{3DES}PJMoAH+j5jeVWzQfY8Gf2w==" TwoWaySSLEnabled="true"/>
              <Log FileCount="2" FileMinSize="5000" Name="bob" NumberOfFilesLimited="true"/>
              </Server>
              PS: I used a JNDI Client to access to BOB configured with ALICE's keystores and I got a success.
              Nat.

  • 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
              >>
              >>
              >
              

  • JMS bridge communication not working

    Hi,
    I am working on an application, Ap1, which uses Toplink as an ORM layer and also makes use of Toplink cache. The problem is that the database that this application uses
    is also used by another app, Ap2. So I need somehow to refresh Toplink cache of Ap1 when a database update is triggered by Ap2, otherwhise Ap1 will work with out of date data.
    The solution that I found is to use JMS for the communication between the 2 aps and it should work like this:
    - when Ap2 make a database update, it will add a message in a JMS topic that a MDB deployed on Ap1 listens to. And so the MDB will remove the entity from the cache.
    The thing is that A1 and A2 are deployed on different Weblogic servers so I need to have a remote JMS communication between the 2 servers.
    Ap1 is deployed on WLS1 (Weblogic 12C).
    Ap2 is deployed on WLS2 (Weblogic 11C).
    As solutions I tried to use a JMS bridge.
    on the WLS1 side I have created:
    - a JMS server, JmsServer-0
    - a JMS module, JmsModule
    - a local topic included in JmsModule and targeted to JmsServer-0
    - a ConnectionFactory included in JmsModule and targeted to JmsServer-0 (not sure if it is needed)
    - a JMS bridge with source and target configured OK (Bridge is in Active state)
    The outcome is that when Ap2 updates the database, I can see the message in Ap2 JMS server, but I can't see it in Ap1 JMS server even if the JMS bridge appears to be created OK, has state Active.
    I don't know why the message doesn't reach A1 JMS server and I don't know how to debug this problem. I am looking in the Jms Server, monitorring tab. Is there any other place Where I can get some useful info?
    I also tried using a JMS foreign server, but I had the same problem.
    Thanks for any suggestion!

    First of all, you can configure the MDB on WLS server1 to receive messages from a JMS destination that is running on WLS server2. You just need to provide the URL of the remote server.
    If you prefer using the messaging bridge, you can debug your bridge by turning on the bridge debugging flags.
    -Dweblogic.Debug.DebugMessagingBridgeStartup=true
    -Dweblogic.Debug.DebugMessagingBridgeRuntime=true
    -Dweblogic.Debug.DebugMessagingBridgeRuntimeVerbose=true
    Hope this helps.
    Dongbo

  • 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 bridge and MQSeries. looking for statistics

              Hi !
              I have to use Weblogic 7 SP4 in cluster with a distant MQSeries queue manager.
              I know I can't have a "exactly once" quality of service. I use a MDB (deplyed
              on each instance of the server).
              I'm looking for statistics about how often a message can be treated 2 (or more)
              times.
              Thanks a lot for any help !
              Florent
              

    Hi Florent,
              Since these are MQ messages, it might be possible to find
              such statistics in MQ. Also, I think that MQ stores a
              redelivery count in their messages - so you can likely
              instrument your application code to get at the count.
              Note that 7.0 actually does support exactly once with WL MDBs driven
              by MQ. If you use transactions you can infer some stats on redeliveries
              by checking the relevant transaction statistics for rollback counts.
              I'm attaching some notes on JMS integration for your
              convenience.
              Tom
              florent wrote:
              > Hi !
              >
              > I have to use Weblogic 7 SP4 in cluster with a distant MQSeries queue manager.
              > I know I can't have a "exactly once" quality of service. I use a MDB (deplyed
              > on each instance of the server).
              >
              > I'm looking for statistics about how often a message can be treated 2 (or more)
              > times.
              >
              > Thanks a lot for any help !
              >
              > Florent
              JMS Integration of Foreign Vendors with BEA WebLogic Server
              The following notes are derived mostly from "http://dev2dev.bea.com/technologies/jms/index.jsp".
              For additional questions, a good forum for WebLogic questions in general is "newsgroups.bea.com". These can be mined for information by using Google's newsgroup search function.
              JMS Integration Overview
              - For integration with "non-Java" and/or "non-JMS" platforms, see "Non-Java Integration Options" below.
              - For a foreign JMS vendor to participate in a WL transaction it must support XA. Specifically, it must support the javax.jms.XA* interfaces.
              - In WL versions 6.0 and up it is possible to make synchronous calls to foreign JMS vendors participate in a WL transaction as long as the foreign vendor supports XA.
              - WL 6.0 and 6.1 MDBs can be driven by foreign vendors non-transactionally. They can be driven transactionally by a select few foreign vendors (MQ is not part of the select few)
              - WL 7.0 and later, MDBs can be driven by foreign vendors transactionally and non-transationally.
              - WL 6.1 and later WL provides a messaging bridge feature. Messaging bridges forward messages between any two JMS destinations, including foreign destinations, and can transfer messages transactionally or non-transactionally.
              - WL 8.1 JMS provides additional features that simplify transactional and JNDI integration of foreign vendors. See http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features
              Integration with 8.1 Details
              A good overview of 8.1 JMS interop capability is the presentation "Integrating Foreign JMS Providers with BEA WebLogic Server" here:
              http://www.bea.com/content/files/eworld/presentations/Wed_03_05_03/Application_Servers/1097-Foreign_JMS_Providers_WLS.pdf
              This document refers to helpful new 8.1 features, which simplify integration. These include:
              http://edocs.bea.com/wls/docs81/ConsoleHelp/jms_config.html#accessing_foreign_providers
              http://edocs.bea.com/wls/docs81/jms/j2ee_components.html#1033768
              And are also summarized here (under interoperability):
              http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features
              Also read the extensive MDB documentation, which extensively covers integrating foreign vendors:
              http://edocs.bea.com/wls/docs81/ejb/message_beans.html
              The 8.1 features are likely sufficient for most 8.1 integration needs, and you may not need to refer "Using Foreign JMS Providers With WLS" white-paper mentioned below.
              Integration with 6.1 and 7.0 Details
              Read the "Using Foreign JMS Providers With WLS" white-paper:
              http://dev2dev.bea.com/products/wlserver/whitepapers/jmsproviders.jsp
              Note that this white-paper does not take into account 8.1 features.
              For 7.0 read the extensive 8.1 MDB documentation, which largely also applies to 7.0:
              http://edocs.bea.com/wls/docs81/ejb/message_beans.html
              Non-Java Integration Options
              - WL JMS has a JNI based C client which is available for Windows and some UNIX platforms. This C client supports 7.0 and up, and will be officially packaged with WLS in 9.0 (virtually unchanged). The C API is currently only supported through the jms newsgroup. See "JMS C API", here:
              http://dev2dev.bea.com/technologies/jms/index.jsp
              - WL supports direct Windows COM access through its "JCOM" feature. This doesn't include the JMS API, but one can invoke EJBs which in turn invoke JMS. See
              http://e-docs.bea.com/wls/docs61/jcom.html
              http://e-docs.bea.com/wls/docs70/jcom/
              http://e-docs.bea.com/wls/docs81/jcom/
              - Similar to JCOM, but more advanced, WL supports IIOP standard based access on multiple platforms. You can use the BEA Tuxedo C client for this purpose (no license fee). This doesn't include the JMS API, but one can invoke EJBs which in turn invoke JMS. See
              http://e-docs.bea.com/wls/docs81/rmi_iiop/
              http://e-docs.bea.com/wls/docs70/rmi_iiop/
              http://e-docs.bea.com/wls/docs61/rmi_iiop/
              Unlike most other approaches, the IIOP client approach also allows the client to begin and commit user (JTA) transactions (not configured).
              - If you already have a BEA Tuxedo license, one option is communicate through BEA Tuxedo (which has various APIs on Windows) and configure a WebLogic Server to respond to these requests via the WTC bridge. Search for "WTC" in the BEA docs. Unlike most other approaches, the Tuxedo API approach also allows the client to begin and commit user (JTA) transactions.
              - Another approach is to interop via web-service standards. Or even to simply to invoke a servlet on the WL server using a basic HTTP call from Windows. These in turn can invoke the JMS API. There is a white-paper on "Interoperability Study of BEA WebLogic Workshop 8.1 and Microsoft .NET 1.1 Web Services", that demonstrates web-services here:
              http://ftpna2.bea.com/pub/downloads/WebLogic-DotNet-Interop.pdf
              - Yet another approach is to use a third party product that is designed to wrap any JMS vendor. There are even open source versions. In no particular order, here are some examples: Open3 WinJMS, CodeMesh, Active JMS, SpiritSoft
              - Finally, there are .NET/C/C++ integration libraries that not specific to JMS, some examples are JNBridge, Jace, and CodeMesh.
              Notes on MQ Remote Capable XA Clients
              Until recently, IBM MQ JMS clients could not work transactionally unless they were running on the same host as their MQ server. This is a limitation unique to MQ that was relaxed with the introduction of IBM's new "WebSphere MQ Extended Transactional Client". See:
              http://publibfp.boulder.ibm.com/epubs/pdf/csqzar00.pdf
              The product is new, and for some reason, configuration of this client seems to be tricky, even when WebLogic is not involved at all. Oddly, the main sticking point seems to be simply making sure that class paths refer to the required IBM jars:
              - Required on WLS where MQ objects are bound into JNDI:
              com.ibm.mq.jar, com.ibm.mqjms.jar
              - Required only if MQ objects are bound into JNDI on a different server:
              com.ibm.mq.jar
              If there are problems when using this client, first get it to work using a pure IBM client without any BEA classes involved. Once that is working, search the WL JMS newsgroup for answers and/or contact BEA customer support.
              Notes on Oracle AQ Integration
              If problems are encountered integrating Oracle's built-in queuing (Oracle AQ) JMS client, there is publicly available wrapper code that can aid integrating AQ directly into MDBs, JMS, or the messaging bridge. The solution is titled "Startup class to bind AQ/Referenceable objects to WLS JNDI", is not supported by BEA, and is posted to:
              http://dev2dev.bea.com/codelibrary/code/startupclass.jsp
              Caveats:
              The solution doesn't directly support concurrent consumers. Perhaps Oracle requires that concurrent consumers each have a unique JMS connection? As a work-around, parallel message processing can be achieved indirectly by forwarding AQ messages into a WL JMS destination - which do support concurrent processing.
              Up-to-date versions of Oracle may be required. For more information, google search the weblogic.developer.interest.jms newsgroup for "Oracle" and "AQ".
              The solution doesn't seem to support transactions, it may be possible to extend it to do so.
              MDB Thread Pool Notes
              WL7.0SP? and WL8.1 and later support the "dispatch-policy" field to specify which thread pool an MDB uses to run its instances. In most cases this field should be configured to help address potential performance issues and/or dead-locks:
              http://edocs.bea.com/wls/docs81/ejb/DDreference-ejb-jar.html#dispatch-policy
              (Note that "dispatch-policy" is ignored for non-transactional foreign vendors; in this case, the MDB "onMessage" callback runs in the foreign vendor's thread.)
              MDB Concurrency Notes
              Queue MDBs driven by foreign providers can run multiple instances concurrently. Topic MDBs driven by foreign providers are limited to one instance (not sure, but transactional foreign driven topic MDBs may not have this limitation). The size of the thread pool that the MDB runs in and the "max-beans-in-free-pool" descriptor limit how many instances run concurrently.
              Design Guide-Lines and Performance Tuning Notes
              The "WebLogic JMS Performance Guide" white-paper contains detailed design, performance, and tuning information for Clustering, Messaging Bridge, JMS, and MDBs.
              http://dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp
              

Maybe you are looking for

  • Multiple devices, one iTunes, how to transer and sync properly

    I have a complicated question. I recently purchase a new iphone and ipad.  I now have 3 devices, personal iphone, work iphone and an ipad 2 (which has not been synched yet). My personal iphone is connected to my personal computer, a PC.  My PC has my

  • How the get most from SapScript for Adobe Printforms ?

    Hi there, I would like to know your Ideas and opinion ... about what / how can I reuse Sapscript printing report or/and layout for Adobe Printforms ... In particular my requirement is to design new PM Forms (PM_COMMON) in adobe, and Im thinking about

  • Webutil error with linux fedora 7

    i have developed forms in 10g in windows. server is also windows. http://aaf00022:8889/forms/frmservlet if i run this link in windows(client) it is working fine. but in fedora 7(client) i got the error like: Java Plug-in 1.6.0_10 Using JRE version 1.

  • PS3 Internet Connecting but streaming services not working

    Simple one, possibly, last week all my streaming services through the PS3 were working, including the likes of Netflix, Amazon Instant and so forth. This week they're not. It's connected directly via an ethernet cable, the router is working, the Wi-f

  • The printer and computer are connected to different routers?? But they're certainly not

    Failed connecting my printer to the network. I keep power cycling, re-installing. This is where I get stuck. My IP: 192.168.1.5Printer: 192.168.1.6 (status connected) Router network test settings look good (attached). It's connected to the internet v