This discussion is archived
5 Replies Latest reply: Nov 7, 2012 8:00 AM by 968963 RSS

JMS Adapter with Mediator

968963 Newbie
Currently Being Moderated
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 Guru
    Currently Being Moderated
    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 Newbie
    Currently Being Moderated
    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 Newbie
    Currently Being Moderated
    Marking is as answered. I put the answer myself.
  • 4. Re: JMS Adapter with Mediator
    user4604374 Newbie
    Currently Being Moderated
    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 Newbie
    Currently Being Moderated
    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!

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points