5 Replies Latest reply: Nov 7, 2012 10:00 AM by 968963 RSS

    JMS Adapter with Mediator

    968963
      Hi,
      I could not find very relevant documentation on this one, so asking the question here.

      I am trying to use a JMS Adapter to read from a queue, and use the same interface(wsdl) for a mediator. In this mediator, I am trying to generate events based on the message payload received.

      Somehow the Mediator does not read from the queue, but if I invoke the mediator as a service, and push the message, it works absolutely fine. Is that something I am missing?

      Thanks in advance,
      Abhi
        • 1. Re: JMS Adapter with Mediator
          vladodias
          Hi,

          Couple of things to check when using JmsAdapter:

          - The location configured in the jca file should match exactly with the outbound connection pool configuration jndi name on JmsAdapter deployment
          - The destination configured in the jca file should match exactly with the jndi name of the queue/topic

          Cheers,
          Vlad
          • 2. Re: JMS Adapter with Mediator
            968963
            Thanks Vlad. This is what I finally figured out.

            The Mediator and the Adapter had to use the same wsdl in order for this to work. Or, at least this is one way to solve. :-)
            • 3. Re: JMS Adapter with Mediator
              968963
              Marking is as answered. I put the answer myself.
              • 4. Re: JMS Adapter with Mediator
                user4604374
                Im actually experiencing the same issue. My task at hand is to read the payload from JMS with the jca adapter so I can insert the payload into a table. Any help would be greatly appreciated!

                In Weblogic Console

                under deployment jmsadapter -> Outbound Connections -> jndi name is eis/jms/faultQueue -> ConnectionFactoryLocation Property is jms/faultCF

                Under JMS Module Connection Factory Name is fautljmsfactory which JNDI name is jms/faultCF
                Under JMS Module Queue Name jmsfaultqueue which JNDI name is jms/faultQueue




                In BPEL jca adapter (consume) destination is set to jms/faultQueue.
                jndi name is set eis/jms/faultQueue



                Here is the jca

                <adapter-config name="BoralFaultMessaging" adapter="JMS Adapter" wsdlLocation="BoralFaultMessaging.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">

                <connection-factory location="eis/jms/faultQueue" UIJmsProvider="WLSJMS" UIConnectionName="IPM-PRD3"/>
                <endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
                <activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
                <property name="PayloadType" value="TextMessage"/>
                <property name="UseMessageListener" value="false"/>
                <property name="DestinationName" value="jms/faultQueue"/>
                </activation-spec>
                </endpoint-activation>

                </adapter-config>
                • 5. Re: JMS Adapter with Mediator
                  968963
                  Trying to give you the counterparts I have in my working example.
                  In my case the queue is on a separate machine, and the BPEL is deployed on a separate machine. Cross-domain security config needs to be done for these machines to be able to talk.

                  In weblogic console: where BPEL is running.
                  under deployment jmsadapter -> Outbound Connections -> jndi name is jms/PRISMQueue -> ConnectionFactoryLocation Property is jms/SoaCF

                  where queue is configured.
                  Under JMS Module Connection Factory Name is SoaConnectionFactory which JNDI name is jms/SoaCF
                  Under JMS Module Queue Name SOAPostActivityStatusQueue which JNDI name is jms.SOAPostActivityStatusQueue

                  Services>Messaging>JMSModules>MyModule>SOAPostActivityStatusQueue>
                  JNDI name - jms.SOAPostActivityStatusQueue

                  Adapter in BPEL/Composite-
                  Destination - jms.SOAPostActivityStatusQueue
                  JNDI - jms/PRISMQueue

                  JCA:

                  <adapter-config name="PostResponseFromPCService" adapter="JMS Adapter" wsdlLocation="PostResponseFromPCService.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">

                  <connection-factory location="jms/PRISMQueue" UIJmsProvider="WLSJMS" UIConnectionName="tacoma"/>
                  <endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
                  <activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
                  <property name="PayloadType" value="TextMessage"/>
                  <property name="UseMessageListener" value="false"/>
                  <property name="DestinationName" value="jms.SOAPostActivityStatusQueue"/>
                  </activation-spec>
                  </endpoint-activation>

                  </adapter-config>

                  HTH.

                  Thanks!