AQ Adapter correlation

Hi,
Is there any parameter that gets automatically set at the BPEL process instance level when the process is activated by a AQ partnerlink (such as conversation ID , Instance ID) ?
Is it possible to declaratively indicate one of the parameters to be set as a instance property (say in bpel.xml )?
Thanks,
Ravikiran

Hello. Talking to myself again.
The native AQ correlation ID can only be used if you first send an AQ-message and then recevie a message with the same correlation id. This is handled transparently by the AQ-adapter (same as WS-addressing).
If you need to do correlation in you process you have to wrestle the well documented ”CorrelationSet”. Dig into CorrelatedHelloWorld and forget that JDeveloper will do anything to help you.
It works. Cheers.
Rickard

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

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

  • Database adapter correlation problem

    Hi,
    I have to create process with this scenario:
    Started by db adapter polled table 1 for update.
    Invoke asynchronous webservice
    Waiting for message from db adapter polled table 2 for update.
    How to correlate this.
    I create process started by db adapter and I have problem to correlate it with soap wsdl operation.
    When I replace db adapter operation with soap operation based on adapter xsd correlation works fine.
    Thank you in advance

    I tried to add another adapter which works fine and there was no correlation problem.
    After hours of testing I decide to remove malfunctioned adapter and create it again.
    Fortunately works without problem.

  • MQ Adapter Correlation Set Problem

    Hi,
    I was using BPEL 10g to run a application, but our company is changing to version 11g, so I created the same app, with basically the same configuration, Correlation Sets and another things, but now I dont receive a response from the MQ Series, and when I go to the panel control of my application i see this error message in the rejected messages tab:
    Cannot complete callback since unable to retrieve SourceURI/Wire from Correlation store. Either Instance Tracking is diabled or no corresponding Request succeeded prior to this callback (When i open this message, I can see the payload, and when I open it, it shows my message)
    Someone have a clue what the problem is? I verified, and created a hundred times the correlation sets, but it doesn't work, I don't know if I have to do something more, but I don't think the queue is finding the right instance to return the message, and this is why I'm getting a time out, but the reason I don't know, because it's the same process as 10g, sou it should work fine without problems.

    Solution is:
    JDeveloper using Create property alias wizard doesn't add namespace for query.
    I had to add it manually
    <bpws:propertyAlias propertyName="pns1:orderId_property" messageType="client:activationPushRequestMessage"
    part="payload" query="/ns5:activationPushRequest/processid" xmlns:ns5="http://xmlns.oracle.com/activation/bpel/"/>
    now it works

  • Correlation of AQ messages no longer working in 10.1.3.3

    Does anyone have the same problem as we do in correlating an outbound (enqueued) and an inbound (dequeued) AQ message in BPEL? This is the functionality as demonstrated in example 124.AQAdapter/AQOutboundCorrelation where the request and response wsdl's are combined into a single wsdl and the adapter can correlate the response message to the request message....
    We have a number of BPEL processes where a request is enqueued and the response to that specific request has to be dequeued for further processing.
    This used to work fine in the 10.1.2 version but since version 10.1.3.3 we get this error:
    Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://xmlns.oracle.com/pcbpel/adapter/aq/RequestIn/}Enqueue_ptt" in WSDL definition "{http://xmlns.oracle.com/pcbpel/adapter/aq/inbound/}aqAdapter".
    Please verify that WSDL portType "{http://xmlns.oracle.com/pcbpel/adapter/aq/RequestIn/}Enqueue_ptt" is supported by a service in WSDL file.
    it looks like the request port type is to be available in the inbound (ie response) AQ adapter wsdl?!
    does anyone have a clue?

    i don't have any ideas abt load condition and threads etc.
    but i have found the answer to the question i posed above where i wanted help regarding AQ correaltion to work with correlation headers.
    for native adapter correlation to work the send and receive should point tot he same aprtner link also the header values are mapped in such a way that outbound header of messageId should be smae as the correlation header of incoming message. IF such is the case adapter framework correlates the 2 messages.
    the exampls 124 works fine in 10.1.3.1 alonwith use of sql scripts.
    we can also model another BPEL process whihc shall do the job being done by sql script in the example above.
    in the exampls bpel\samples\tutorials\124.AQAdapter\AQOutboundCorrelation
    The AQOutboundCorrelation is the sender process where the native adapter correlation works. This project also contains the sql scripts to create the AQ queues and to transfer data from out queue to in queue.
    The receiver BPEL is designed pick from “out” queue process the message and put it in “in” queue also it extracts message id from in message and copies it to correlation of out message.

  • JMS Native Correlation

    Has anyone here had any experience with JMS adapter native correlation. It seems that in order to use BPEL correlation you can only correlate on sections of the message payload which isnt ideal for my scenerio.
    I've started looking at native adapter correlation but cant seem to get it to work. If anyone has a bit of a heads up about this it would be great.
    Cheers
    Ian Harrigan

    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

  • AQOutbound Correlation

    Has anyone had the AQOutboundCorrelation sample working? I've tried native adapter correlation using jms and aq and can't get either working.
    In this example, the request message is added to the CORRELATION_REQUEST queue and when I run enqueue_reply.sql a reply message is added to the CORRELATION_REPLY queue with the correct correlation id, but it is never picked up by BPEL.
    Any suggestions would be greatly appreciated.
    Cheers

    I know this problem. I never got a dequeue from a queue to work...
    124.AQAdapter - AQOutboundCorrelation
    ESB: AQ Adapter dequeue
    I think the dequeue does not work for starting BPEL.

  • JMS and CorrelationId

    Hi,
    I try to connect BPEL to MQ via the JMS Adapter. Eveything is ok but...
    I would like to know how I can set the correlation id of the outgoing message???
    I tried with Native Adapter Correlation and BPEL Correlation Sets and the result is always the same: the correlation id is set to bpel://localhost/default !!! I probably missed something...
    Thanks

    I forgot to post another question:
    when I use the Correlation Set method (not the native one), the correlation id in the jms header is always of type
    <Cid>bpel://localhost/default/BPELProcess5~1.0/9209-BpInv0-BpSeq0.3-4</Cid>
    I thought the correlation id was identical to the one I specified in the correlation set and not the one generated by bpel.
    Any ideas?
    I have the impression I am alone here...

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

  • JMS Correlation ID in JMS Receiver Adapter

    Hi ,
    I am working in PI7.1 on IDOC to JMS interface,
    I want set IDOC number as Correlation ID in JMS queue ,
    I did following Correlation steps ,
    1. Set JMSCorrelation ID to PI Conversation ID
    2. Checked JMS CorrelationID of request
    3.Value to PI Conversation ID
    In Adavanced Tab
    Checked Use Adapter specific Message attributes
    Checked Fial if Adapter specific Message attributes missing
    Checked JMS Message Correlation ID
    Additional Parameter
    DCJMSCorreleationID String
    I have created user defined function , Not using BPM , i don't have correlation ID in target field data type
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
    return conf.put(key, idoc_number); 
    I tested UDF with mapping to target field, UDF is working .
    But in JMS Correlation ID value is null
    I am getting error in Communication Channel  monitor if ticked check box of fail If adapter-specific message attributes
    Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Dynamic header records are missing/incorrect specified in message: 000c2901-fc48-1def-82f9-4b126dff2151. Erroneous/Unspecified headers are: DCJMSCorreleationID
    1/27/10 11:02:36 PM 000c2901-fc48-1def-82f9-4b126dff2151 Dynamic record/records: DCJMSCorreleationID, that correspond to the JMS property/properties: JMSCorrelationID, respectively is/are either missing from the message: 000c2901-fc48-1def-82f9-4b126dff2151, or have invalid types specified in the channel configuration

    Hi Swetha ,
    Thanks for your response ,
    I created user defined function with one parameter , no input parmeter .
    My root node of IDOC as Structure type ,
    In UDF , i have not mapped the IDOC number
    public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
    return conf.put(key, messageId);
    messageId  I need map in additonal parameter .
    Thanks ,
    Laxman.
    DCJMSCorreleationID     messageId

  • Set IDOC number as Correlation ID in JMS Receiver Adapter

    Hi ,
    I am working in PI7.1  on IDOC to JMS interface,
    I want set  IDOC number as Correlation ID in JMS queue ,
    I did following Correlation steps ,
    1. Set JMSCorrelation ID to PI Conversation ID
    2. Checked JMS CorrelationID of request
    3.Value to PI Conversation ID
    In Adavanced Tab
    Checked Use Adapter specific Message attributes
    Checked  Fial if  Adapter specific Message attributes missing
    Checked JMS Message Correlation ID
    Additional Parameter
    DCJMSCorreleationID     String
    I have created user defined function ,  Not using BPM , i don't have correlation ID in target field data type
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
    return conf.put(key, messageId);
    please help to how to use UDF in mapping for mapping which field .
    Thanks ,
    Laxman.

    Hi Swetha ,
    Thanks for your response ,
    I created user defined function with one parameter , no input parmeter .
    My root node of IDOC as Structure type ,
    In UDF , i have not mapped the IDOC number
    public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
    return conf.put(key, messageId);
    messageId  I need map in additonal parameter .
    Thanks ,
    Laxman.
    DCJMSCorreleationID     messageId

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

  • AQ-adapter and correlation

    Hi!
    I have a problem with the AQ-adapter and correlation when I try to dequeue a message in mid-process.
    Then main purpose of my process is to insert a record in a table (db-adapter) and then wait for an AQ-message to magically come back.
    What ID should I insert into the database record in order be able to correlate the AQ-message when it comes back? I have tried orcl:generate-guid() and ora:getInstanceId() without luck.
    When I run the AQOutboundCorrelation tutorial I can see that it generates a correlation id with the following format:
    AQ.message_properties.correlation = ‘036930B9C8F17479E0440003BA625AAD’
    Is this correlation id only generated when a message is sent? Can it be read from an xpath expression? My guess is that this is an internal correlation id that is only used by AQ-adapter.
    Thank you in advance for any feedback.
    Rickard Nilsson

    Hello. Talking to myself again.
    The native AQ correlation ID can only be used if you first send an AQ-message and then recevie a message with the same correlation id. This is handled transparently by the AQ-adapter (same as WS-addressing).
    If you need to do correlation in you process you have to wrestle the well documented ”CorrelationSet”. Dig into CorrelatedHelloWorld and forget that JDeveloper will do anything to help you.
    It works. Cheers.
    Rickard

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

Maybe you are looking for