JMS Adapter - Correlation ID

Hi,
I am looking to use the JMS Adapter to put a message on a Queue (ActiveMQ), which is consumed and serviced as a request with a correlating JMS Message being produced as a response.
An  Async Message is created by the client and forwarded to the JMS adapter via an AMF Channel which creates the actual JMS TextMessage and puts it on the queue, in response my clent receives the Acknowledgement (MessageAckEvent) which contains a correlationID in the format:
9D90B26-2006-52C7-FE31-70926243CDBE
Which is attained form the request messageID - A'OK
The poblem is the JMS TextMessage created does not contain the correlationID !  The JMS Adapter code does this:
public Object invoke(Message message)
// named Flex message props become JMS headers
Map msgProps = message.getHeaders();
msgProps.put(JMSConfigConstants.TIME_TO_LIVE, new Long(message.getTimeToLive()));
The correlationID like time to live is not in the AsyncMessage headers - Im thinking this could be an issue, does anyone agree ?
I think the correlationID should be populated in the same way as time to live.
There is also another issue in terms of the flex client creating the original Async Message. This has a property of correlationID which is able to be set, though in terms of the JMS Adapter this is ignored. If I set this property manually and send to the JMS Adapter the correlation ID in the Ack does not contain what I set, and again holds the messageID.  To be fair I think this is not the intended use of the correlationID property, and is for correlation within internal topics, but from the JMS Adapter point of view looks a bit weird.
Can anyone confirm if they think my ramblings are something that could be raised as an issue or whether I have just missed the point completely as Im not very good at reading documentation :-)
Cheers,
Jonathan.

I looked into the wsdl and xsd file which correspond to my JMS Adapter.
There is one line:
<jca:header message="hdr:InboundHeader_msg" part="inboundHeader"/>
Is there a way to add this information to
<message name="JMSCorrelationProcessRequest_msg">
<part name="JMSCorrelationProcessRequest" element="imp1:JMSCorrelationProcessRequest"/>
</message>
If this is possible i can access the header variables in BPEL...

Similar Messages

  • PI 7.1 JMS Adapter Correlation ID problem

    Hi,
    I try to get rid of the Correlation ID generated by the JMS Adapter (receiver).
    In the adapter configuration, processing tab, I choose Set Correlation ID To: NO VALUE.
    But still, in the message's details I can see a Correlation ID like this:
    62656263343530362D633765652D346435652D323166392D
    Any idea how to force a NO VALUE or a specific value? (hardcoded)
    Thanks,
    Martin

    Hi,
    I try to get rid of the Correlation ID generated by the JMS Adapter (receiver).
    In the adapter configuration, processing tab, I choose Set Correlation ID To: NO VALUE.
    But still, in the message's details I can see a Correlation ID like this:
    62656263343530362D633765652D346435652D323166392D
    Any idea how to force a NO VALUE or a specific value? (hardcoded)
    Thanks,
    Martin

  • Correlation issue in JMS adapter - SYNC/ASYNC scenario without BPM

    Hi,
    I am working on a SYNC/ASYNC scenario with JMS adapter without using BPM. My scenario is SOAP<>PI>JMS. I configured the interface as below:
    1. SOAP Sender channel
    2. JMS Receiver Channel writing to Queue A.
         Module used:      a. RequestOneWayBean
                   b. WaitResponseBean
         Correlation Settings:
                   a. Set JMS Correlation ID to "XI Message ID"
                   b. Store JMS CorrelationID of request (Checked)
                   c. Set JMS Property to "JMS Correlation Id"
                   d. Value = "XI MEssage ID"
    3. JMS Sender channel reading from queue B ( I am exporting the message from queue A and importing into queue B)
         Module used:      a. NotifyResponseBean
         Correlation Settings:
                   a. Set XI MEssage Id to "GUID"
                   b. Set XI Conversation ID to "Stored JMS COrrelationID of Request"
    I can see the cid in the message from queue A. But I observed thhat the header format of the message in Queue A is "MQSTR".
    ISSUE:
    1. While writing the message to queue A, below adapter log details(part b) concerned me:
         a. Message '8747a7c2-2b06-11df-8055-005056a70ed6' successfully processed by channel
         b. Could not create acknowledgements for message '8747a7c2-2b06-11df-8055-005056a70ed6'
    I am not sure why I am receiving the message that "  could not create acknowledgements"
    2. While reading the message from the sender channel,I consistently get the error message as below:
         a. XI message ID corresponding to JMS message with ID 'ID:414d51205341504449442e514d202020c67b954b20005602'
              will be created as a new GUID with value '21bca916-424f-41f6-3347-c71090392b58'
         b. Error while processing message '21bca916-424f-41f6-3347-c71090392b58';  detailed error description:
              com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
              found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
    Below are the blogs which I have already gone through:
    1. JMS Synchronous Scenario without BPM - Correlation Settings and Transactional JMS Session
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b028f6f6-7da5-2a10-19bd-cf322cf5ae7b
    2. Note: 1086303
    3. Sync / Async Bridge without BPM
    In the note, they mentioned something about header being "MQRFH2". BUt in our case, the header is "MSSTR". Not sure whether it makes any difference.
    Please help.
    Edited by: GP on Mar 9, 2010 4:24 AM

    Hi,
    detailed error description:
    com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
    found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
    This error would generally arose when there are multiple messages, got stuck in the outbound queue. Try to stop both the sender and receiver JMS comunication channels and clear both the inbound and outbound queues.
    Once all the messages in the queue are cleraed, try posting the message again.
    Regards,
    Swetha.

  • How to set the Correlation ID in Oracle Q from JMS Adapter

    Hi,
    I'm using a JMS Adapter on my BPEL process to push messages to an Oracle instance in another machine.
    While testing, I could see that a message is posted on the Q table, but the Correlation ID is null.
    How is the correlation ID on the Q set from the adapter? IDeally I want this ID dynamic to be unique.
    Is this something st on the Invoke activity to the jms adapter, i.e., the Correlations tab, or is that
    unrelated altogether.
    Thanks,
    Ramon

    Found the solution.
    On the Invoke activity, I set the property jca.jms.JMSCorrelationID to a variable I created.
    I set my variable to string appended with sysdate to make it unique.

  • Correlation and Async/Sync Communication using JMS adapter without BPM

    Hello
    1. Pls explain with simple example docs/links --- Correlation
    2. Async/Sync Communication using JMS adapter without BPM
       If i see blog --- If I go with blog --- /people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-without-bpm-sp-19
    Pls explain --- Correlation Settings, select JMSMessageID for the XI Conversation ID.
    Pls explain --  Correlation Settings, select XI Conversation ID as jMSCorrelationID.
    Can you pls explain me this example with JMSMessageID and JMSCorrelationID context
    Regards

    Hi Henry,
    For Correlation, please go through the below link.
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    Sync / Async Bridge communication using JMS : http://help.sap.com/saphelp_nw04s/helpdata/en/45/20d251c20a0732e10000000a155369/frameset.htm
    Sync / Async communication without BPM in JMS : /people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
    /people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm
    Hope these help
    Regards
    Kiran..

  • Jms settings & correlation settings in jms adapter

    hi experts,
      what is use of jms setting & correlation settings  in jms adapter.

    Hi,
    This link may help you..
    http://help.sap.com/saphelp_nw04/helpdata/en/43/64db4daf9f30b4e10000000a11466f/frameset.htm
    Regards,
    Srinivas

  • Jms settings and correlation settings in jms adapter

    hi expects,
       what is use of jms settings and correlation settings in jms adapter.

    Hi Rohit,
    have a look at thsi article to understand jms correlation:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5059f110-0d01-0010-7c8b-fdc983be70c0
    Regards,
    michal

  • JMS Adapter Native Correlation

    Hello,
    I've been trying to develop a request/reply service using JMS Adapter.
    I Followed the steps in the "Adapter Knowledge Base: Technical Note #006: Correlation of Adapter messages within a BPEL process" document.
    This document explains how to use the native correlation in the JMS Adapter by modifing the wsdl produced by the JMS Adapter Wizzard.
    One of the thing the document says is that the invoke and recive must be sequencial and that the JMSMessageId of the first message should be placed in the JMSCorrelationId of the response.
    I've done all the steps and developed a Message Driven Bean that reads the request and publishes the response accordingly.
    I'm gessing that someone else already have this kind of problems...
    If there is someone that might be able to help please send me an email to [email protected], so i can send the project to you.
    Tks.

    sorry, i forgot the say one thing.....
    There is a table in the orabpel that is named Native_correlation....
    somehow this table is never populated...
    Tks once more

  • How to get the incoming file name using JMS adapter and SOAP adapter

    Hi Everybody,
       In one of my interface i need to get the file name of incoming flat file using JMS adapter at sender side. and then i am using xslt to convert it to IDOC and then posting to  SAP IDOC.
    my incoming filname are in this form price<DateTimestamp>.txt. when i do the tranformation this incoming file name should be part of one element in the IDOC which i am posting.
    EX:
    <IDOC
    <REF>price<DateTimestamp>.txt</REF>
    </IDOC>
    Hope it is clear to everybody. I need your suggestion how i can capture this incoming file name and send it as part of IDOC.
    Thanks
    raj

    If they are passing it in message id or correlation id,
    you can access it using
    <xsl:variable name="dynamic-conf" 
            select="map:get($inputparam, 'DynamicConfiguration')" />
        <xsl:variable name="dynamic-key"  
            select="key:create('http://sap.com/xi/XI/System/JMS', 'DCJMSMessageID/ DCJMSCorrelationID')" />
        <xsl:variable name="dynamic-value"
            select="dyn:get($dynamic-conf, $dynamic-key)" />
    Check this:
    http://help.sap.com/saphelp_nw70/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
    Thanks,
    Beena.

  • JMS adapter: Adapter specific message attributes

    Hi,
    I have a synchronous SOAP to JMS (MQ series) scenario where I’m using sync/async bridge (without BPM).
    I need to correlate the message being put on JMS queue (JMS receiver adapter) and the response (JMS sender adapter).
    The “standard” receiver JMS adapter only allows the JMS correlation ID to be set to one of three different values (excluding NULL). 2 of these (reference and conversation ID) will be empty in my scenario, leaving me with only the XI message ID. This ID however exceeds the length of ie. the JMS correlation ID and thus isn’t suitable for correlating anything using the field JMS Correlation ID.
    NB: it is of no use to try and set the conversation ID at mapping time (using container object) since the changed value only is available during mapping execution.
    Surely one way of setting the conversation ID would be to use an adapter module in SOAP sender, but this is not an option. Also the sender system will not provide one either.
    Now the problem isn’t setting the JMS correlation ID dynamically at runtime (this is achieved without trouble using the dynamic configuration API with the key ‘DCJMSCorreleationID’). The problem is to actually have XI correlate the request with the response.
    Since the JMS collelation ID is smaller than the XI message ID and the conversation and reference ID isn’t available, what I figure is that I need to find a MQ message property to use and then use the ‘Set MSProperty to’ part instead – this property surely needs to be large enough to contain the XI message ID.
    So what I did was I looked in http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.amqwak.doc/js50938.htm
    where a list of fields in the message descriptor is available figuring I can just use one of these. Looking through the list I notice the field MDRQ (‘Name of reply queue’, 48-byte character string) should be able to hold the XI message ID. So I add ‘MDQR’ in the ‘Specify additional JMS message properties’ and set the ‘Java Type’ to String and also enter this field in the Correlation Setting of the receiver JMS adapter.
    Runtime:
    When looking in MDT I see:
    New JMS message will be correlated with the XI message. Correlation rule: XI_MESSAGEID, correlated property: JMS property MDRM, correlation value: 36158680-5a0c-11dc-8c14-000f203cd3c8
    I looks like a success! No data is however set in the field when looking at messages being put on MQ.
    If I increase the trace level of the JMS adapter I can see (in defaultTrace) the following:
    Cannot read the switch setting for property name DCJMSStringProperty0, switch name dynConfigDCJMSStringProperty0. It is switched off.
    What does this error mean?
    I have of course clicked ‘Use adapter Specific Message-Attributes’ and also the ‘Specify additional…’. In other words everything look ok in configuration.
    Since I’ve also put a check mark in ‘Fail if adapter specific message attributes is missing’ I can see that I successfully put a value (using dynamic conf. at mapping time) in the field... but still something isn’t right – the value of the property never reached MQ.
    Now I’ve tried with a couple of fields in the message descriptor from the previous URL. XI complains all the time.
    Anybody got some ideas?
    Best Regards,
    Daniel

    Hi Vijay,
    Thanks for your replay,as per your input i creted dynamic configuration method,
    i taget structure  luks like this
       <Data>
           <Mesage>
                 <gl_update>
                      <header>
                            <ean1>
                            <ean2>
                      </header>
                  <gl_update>
           <Message>
    i written UDF and mapped to header element gl_update,
    but i am getting  below error message in MONI
    SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MM_ ffjms_</SAP:P1>
      <SAP:P2>com.sap.aii.mappingtool.tf7.IllegalInstanceExcepti</SAP:P2>
      <SAP:P3>on: Cannot create target element /ns0:MT_jms_ _a</SAP:P3>
      <SAP:P4>sync_out/Data/Message/ GLUpdate. Values missi~</SAP:P4>
      <SAP:AdditionalText />
      <SAP:Stack>Runtime exception occurred during application mapping com/sap/xi/tf/_MM_ ffjms_; com.sap.aii.mappingtool.tf7.IllegalInstanceException: Cannot create target element /ns0:MT_jms_ asyncout/Data/Message/ GLUpdate. Values missi~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    i want to know i mapped to UDF to GL_Update is is correct, to which element i have to map.
    i think there is no prob with UDF,its executing ,giving warning messages
    help me on this,
    Regaards
    Raj

  • Sync/Async communication in JMS adapter without BPM

    Hi,
    as of SP19 XI's JMS adapter offers this new feature for Sync/Async communication through JMS Adapter modules instead of using a BPE.
    Now I would be interested to know if anybody has already successfully used this feature especially using WebSphere MQ as a JMS Provider (preferredly in the mode JMS Compliant: WebSphere MQ (non-JMS)).
    I experienced some issues with the XI Message ID being used as the JMS Correlation ID which is then mapped to the MQ Correlation ID being truncated after 24 characters. So I don't exactly know whether this is due to wrong setup or some general issues with this messaging system.
    Please let me know if you have any experiences at all with this new feature (please do not just post links to the following blogs, which I have thoroughly studied as well as the How-to Guide concerning this topic)
    /people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
    /people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-without-bpm-sp-19
    thanks & regards,
    Peter

    Hi Peter,
    we working on the same Problem. Using IBM Websphere MQ as JMS Provider for the new feature: sync/async bridge without BPE.
    we switched on a high level trace for the adapter framework and saw a problem in the receiving Object of the JMS correlation id. The notify bean receives the JMS correlationid in hex format. so the beans have two different correlations, which could not find together.
    did you have any solution to get this new feature works with IBM Websphere ?
    thanks
    joachim

  • Configuration for sync/async bridge in Jms adapter

    Can someone give me a hint what I might be doing wrong?
    The scenario is: synchronous proxy to jms.
    Integration repository:
    Created synchronous outbound interface and synchronous inbound interface, message mapping, interface mapping.
    Integration directory:
    Created jms receiver communication channel and jms sender communication channel and configured them according "How to correlate jms messages".
    Created receiver determination, interface determination and receiver agreement.
    No sender agreement necessary for proxy sender.
    So far so good, but...
    Both the receiver and sender jms adapter have its own queue (the receiving system will get the request in one queue and put the response in another).
    <b>How does the waiting jms receiver adapter know where to expect the answer?</b>
    When I test this scenario the (outbound) message get the status "Log version" (abap moni) and "To be delivered" (java moni).
    PS:
    The testing is performed by using the tool rfhutil. With this tool you can read and write directly from/to the MQ queues where the jms adapters are pointing to.
    After receipt of the request in the queue of the reveicer jms communication channel, I manually put a message in the queue of the sender jms communication channel with the XI message ID filled in the correlation ID.

    More information, In the jms adapter the following error appears:
    XI inbound processing failed for message at time 2007-06-11|11:12:48.908+0100. JMS and XI identifiers for the message are ID:414d512052545849444556312020202045f55b6c20d73102 and 4e5bff20-1804-11dc-c2b4-00096b6ed15c respectively. The JMS adapter will rollback the database and JMS session transactions. If the session is transacted, the message is not lost and will be retried later. The exception stack trace is java.lang.Exception: Minimum address data not configured. Field InterfaceNamespace is empty.
         at com.sap.aii.af.service.jms.WorkerJMSReceiver.onMessage(WorkerJMSReceiver.java:1516)
         at com.ibm.mq.jms.MQMessageConsumer.receiveAsyncQ(MQMessageConsumer.java:2538)
         at com.ibm.mq.jms.MQMessageConsumer.receiveAsync(MQMessageConsumer.java:4260)

  • Error status in JMS adapter - sync / async brigde. Message processed ok

    Hi guys
    I'm having som trouble with my scenarion. I'm sending sync message from SAP backend to XI using proxy. From XI onwards to JMS adapter async (and the other way around for the response message).
    This works OK. However i have a status error in my RWB on the JMS adapter. There is er red exclamation mark and a text saying:
    Correlation ID 'XXX' of JMS request message 'ID:yyy' saved that correponds to XI message 'XXX'
    How do I get my adapters in status green?
    Kind regards
    Martin

    Hi Kai
    Oh - OK
    Settings are:
    Receiver JMS channel:
    Set JMSCorrelation to: XI Message ID (MessageID)
    Store JMS CorrelationId of request: Mark
    Sender JMS channel:
    Set XI Message ID (MessageID) to: GUID (Recommended Value)
    Set XI Conversation ID (ConversationID) To: Stored JMS CorrelationId of Request.
    Kind regards
    Martin

  • Sync/Async and Async/Sync Bridge in JMS Adapter

    Hi,
    I have scenarios using both the Sync/Async and the Async/Sync Bridge in the JMS Adapter. In general this works fine. There is just one thing that caught my attention.
    In the Sync/Async Bridge, the correlation in JMS is done
        JMS Message ID of Reqeust --> JMS Correlation ID of Response
    In the Async/Sync Bridge, it is done
        JMS Correlation ID of Request --> JMS Correlation ID of Response
    which seems strange as I would have expected to work the same for both ways...
    I'm following exactly the setup described in the 'How-to correlate JMS' guide.
    Has anybody experienced the same thing or am I missing something important here?
    thanks for your help
    regards,
    Peter

    Hi,
    If I get it right the MQ queue gives a response message back to XI. The message looks okay on MQ queue, but in XI it's empty.
    So I guess the problem must be within the channel that picks it from MQ queue. Did you configure any  modules in it that might screw up the content? Is the the message empty as soon as it arrives in XI adapter engine? Pls. check in RWB Monitoring or End-to-End monitoring.
    Do you have other channels that pick up messages from that or another MQ queue which do not show such an error? Are they configured exactly the same way?
    Regards,
    Kai

  • JMS adapter and BPM

    Hi.,
      I would like to know if it is possible to use SAP XI3.0 BPM and JMS Adapter for synchronous messaging? Scenario is like this: webapplication-->MQ Series --> xi ---> database. And in reponse message we got to have MessageID, Correlation ID and Reply to Queue name and Queue name Manager. If we could do this, can anyone share some informatino on this topic. From my knowledge i would say yes, but i would like to know exact approach(BPM steps, Configuration steps).Thanks for your time.
    Thanx&Regards
    Indra

    Hi,
    Go thru following Weblogs:
    1.Walkthrough with BPM:- /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm 
    2./people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
    3./people/ravikumar.allampallam/blog/2005/02/17/bridging-the-sync-async-bridge-with-fork-xi
    4.https://www.sdn.sap.com/sdn/weblogs.sdn?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    Hope this helps...
    Regards,
    Moorthy

Maybe you are looking for

  • When try send email from within iPhoto says password not recognised

    Hi, Trying to send email from withinn iPhoto always get message saying password not recognised even though set correct password email address within preferences in iPhoto. Believe this started when I upgraded to Lion. Lates Lion and iphoto updates do

  • How do I validate a postal code format?

    I am trying to use actionscript check a string to see if it is in a valid Canadian postal code <b>format</b> (ie. M5R1X2). The format is 6 characters and is always Letter,Number,Letter,Number,Letter,Number. Can anyone help me check each character in

  • Problem starting my iBook G4

    When i start my iBook it gets as far as the blue screen with the loading bar in a small silver window with the apple logo. When its there the bar doesnt move and nothing happens?? i keep restarting it and trying again but still... nothing. Begging fo

  • How to reset SM configuration

    Hallo colleague!  How can I reset Solution Manager configuration without fully reinstalling? Thanks in advance!

  • Photoshop elements 3.9

    can I reload elements 3.0 onto a newcomputer ?