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

Similar Messages

  • 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

  • AQ Native Correlation

    I've tried to used AQ native correlation, but I can't get it to work.
    Using the supplied example "AQOutboundCorrelation", I get the following
    output when receiving a reply (apparently native correlation is failing, but why?):
    <2006-11-15 12:18:41,923> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> [Dequeue_ptt::Dequeue(CO
    RRELATIONREPLY_TYPE)] - Unable to match native inbound correlation/primary key '22491E43B8CE2B89E0440003BA12DF1A' with a
    ny open BPEL conversation ID
    <2006-11-15 12:18:41,923> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> [Dequeue_ptt::Dequeue(CO
    RRELATIONREPLY_TYPE)] - Posting inbound JCA message to BPEL Process 'AQOutboundCorrelation' receive activity:
    <CORRELATIONREPLY_TYPE xmlns="http://xmlns.oracle.com/xdb/AQADM"><PAYLOAD xmlns="">hello</PAYLOAD><RESULT xmlns="">reque
    st received</RESULT></CORRELATIONREPLY_TYPE>
    <2006-11-15 12:18:41,924> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Delivery Thread 'JCA-wor
    k-instance:AQ Adapter-4 performing unsynchronized post() to localhost
    <2006-11-15 12:18:41,932> <DEBUG> <default.collaxa.cube.engine.delivery> <DeliveryService::receiveCallback> Stored callb
    ack message for conversation 22491E43B8CE2B89E0440003BA12DF1A, msgGuid=96ca6859c42e77a9:676437:10eeb3fd2ec:-7f1e
    <2006-11-15 12:18:41,932> <DEBUG> <default.collaxa.cube.engine.delivery> <DeliveryService::receiveCallback> Sent callbac
    k message for convId22491E43B8CE2B89E0440003BA12DF1A to delivery service for resolution.ResolveCallbackMessage msgGuid=9
    6ca6859c42e77a9:676437:10eeb3fd2ec:-7f1e
    <2006-11-15 12:18:41,939> <DEBUG> <default.collaxa.cube.activation> <AQ Adapter::Inbound> AQDequeuer_raise: Committed de
    queue from inbound queue CORRELATION_REPLY
    <2006-11-15 12:18:41,939> <DEBUG> <default.collaxa.cube.activation> <AQ Adapter::Inbound> MessageReader_ commit()
    <2006-11-15 12:18:41,939> <DEBUG> <default.collaxa.cube.activation> <AQ Adapter::Inbound> DBConnection_commit()
    <2006-11-15 12:18:41,969> <DEBUG> <default.collaxa.cube.engine.delivery> <DeliveryService::resolveCallback> Resolving su
    bscribers for convId 22491E43B8CE2B89E0440003BA12DF1A, msgGuid=96ca6859c42e77a9:676437:10eeb3fd2ec:-7f1e
    <2006-11-15 12:18:41,969> <DEBUG> <default.collaxa.cube.engine.delivery> <SOAPProtocolHandler::resolveCallback> trying t
    o find subscribers for convId=22491E43B8CE2B89E0440003BA12DF1A, operation Dequeue, process bpel://localhost/default/AQOu
    tboundCorrelation~1.0/
    <2006-11-15 12:18:41,972> <DEBUG> <default.collaxa.cube.engine.delivery> <SOAPProtocolHandler::resolveCallback> No subsc
    ribers found for convId: 22491E43B8CE2B89E0440003BA12DF1A
    <2006-11-15 12:18:41,972> <DEBUG> <default.collaxa.cube.engine.delivery> <DeliveryService::resolveCallback> No subscribe
    rs found for message 96ca6859c42e77a9:676437:10eeb3fd2ec:-7f1e for conversation 22491E43B8CE2B89E0440003BA12DF1A
    Does anyone knows how to use correlation with AQ?
    Thanks.

    I've restarted the queues and BPEL is pulling the message out of the CORRELATION_REPLY queue, but not matching it up to the original process. If I add the property:
    <property name="rejectUncorrelatedMessages">true</property>
    to bpel.xml I get the following error when I enqueue the reply:
    javax.resource.ResourceException: ORABPEL-12509 Unable to post inbound message to BPEL business process.
    The JCA Activation Agent of the Adapter Framework was unsuccessful in delivering an inbound message from the endpoint [Dequeue_ptt::Dequeue(CORRELATIONREPLY_TYPE)] - due to the following reason: ORABPEL-12563 Unable to match native inbound native correlation id '0513F659503F44ACB82F1C57D9 9B7FDE' with any open BPEL conversation ID.
    Be grateful for any help, even if it's just a confirmation or the same problem or that you have it working.

  • 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

  • Does "native correlation" mean over CorrelationSets? What is non-native-cor

    What exactly means "native correlation"?
    Does it mean the traditional correlation over Correlation Sets ?
    Or in other words: What means the opposite "Non-native" correlation ?
    Is this an auto-correlation in the PL-Adapter?
    Peter

    Cisco uses a proprietary implemetation of "standard" Spanning Tree (802.1d) for EVERY vlan.
    To be interoperable to Non-Cisco switches, on the native vlan BPDUs (the "packets" of STP) are transmitted in regular 802.1d-Format.
    The Non-Cisco switch wouldn't be able to identify the per-vlan-spanning-tree (PVSTP) BPDUs on a trunk - they are different to 802.1d-BPDUs. In order to avoid loops, BPDUs on the native vlan are like those of Non-Cisco switches.
    That's the theory - in practice you often have problems with STP between Cisco and Non-Cisco switches and one solution is to change the native vlan to a dummy-ID.
    If you like to know more, watch sheets 7 and 8 of this presentation: http://iws.ccccd.edu/sbutler/ccnp3ppt/mod4-Intervlan_Routing.ppt
    (very good page for learnig/preparing!!)
    There are also security-issues with native vlan. This is what you find in the link of the post above. If vlan 1 is your management-vlan there are many scenarios how to get unauthorized access to the management.
    I know, this are not really non-book terms but I can't explain better...
    HTH
    Rolf

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

  • 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

  • JMS Correlation Issue

    Hello
    I actually stole some of the text of this question from a previous post. The post hasn't had any activity for over a month, so I thought I would repost as I need a solution. I have modified it to my situation.
    I need to implement following scenario in my BPEL process:
    1. BPEL enqueues using JMS Adapter message to queue 1. (Invoke activity)
    2. BPEL dequeues using JMS Adapter message from queue 2. (Receive activity)
    I need to correlate this two actions. How do I do this? I have tried the following with no success.
    1. BPEL produces messages on queue 1 with JMS corr_id header variable set
    2. Program dequeuing from queue 1 stores corr_id value in database.
    3. Program finishes processing work and produces message on queue 2 specifying corr_id from value stored in database.
    4. BPEL consumes message from queue 2. Here it is not working. The correlation does not seem to be happening.
    Any ideas?
    Thanks
    Kirk

    I think you need to define the correlation/correlation sets in BPEL Invoke and receive activities. The correlation identifier can very well be the JMS corr_id field value. I think what you tried is JMS message correlation as opposed to correlation in BPEL processes.
    I haven't tried this myself. So my suggestion is purely conceptual.
    HTH
    Rajesh

  • JMS Correlation ID problem in Oracle 11g

    Hi All,
    I have created a BPEL for producing message into JMS with correlation ID="SABARI". In my receiving bpel (my second bpel )i also checked 'CreateInstance' in Receive activity, which will finally write the received message into a file.
    I have deployed both the bpels. However I dint find any instance created rather no file is written. Kindly find my JCA files as below.
    ProduceJMS.jca
    <adapter-config name="Produce" adapter="JMS Adapter" wsdlLocation="Produce.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/wls/Topic" UIJmsProvider="WLSJMS" UIConnectionName="localConn"/>
    <endpoint-interaction portType="Produce_Message_ptt" operation="Produce_Message">
    <interaction-spec className="oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec">
    <property name="TimeToLive" value="0"/>
    <property name="PayloadType" value="TextMessage"/>
    <property name="DeliveryMode" value="Persistent"/>
    <property name="DestinationName" value="sabari_topic"/>
    </interaction-spec>
    </endpoint-interaction>
    </adapter-config>
    ReceiveJMS.jca
    <adapter-config name="ReceiveJMS" adapter="JMS Adapter" wsdlLocation="ReceiveJMS.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/wls/Topic" UIJmsProvider="WLSJMS" UIConnectionName="localConn"/>
    <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="MessageSelector" value="JMSCorrelationID=&quot;SABARI&quot;"/>
    <property name="UseMessageListener" value="false"/>
    <property name="DestinationName" value="sabari_topic"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    Kindly help in resolving this issue.
    Thanks,
    Sabarisri. N

    Can you check the logs ? any pointers there ?

  • Content Based Correlation in Oracle 11g

    Dear Veterans!!!
    I am working on the following use-case.
    An order processor accepts order(Mode-Buy/Sell, Price, Quantity) on webservice from various customers, and presents them to DecisionService, after adding the order Id to it. The decision service would check if the price*quantity > 1000, if so the response is sent as (Order ID, OrderStatus="Fail") else, sends (Order ID, OrderStatus="Success").
    What I want to do?
    Now I need to create Order Processor using single JMS Adapter with Interaction type "Asynchronous Request/Reply" using content based.
    What I have been able to do?
    I have been able to do content-based Correlation between Decision Service BPEL and Order Processor BPEL, where Order Processor has two JMS Adapters, One Producer which enqueues the order for Decision Service, setting the orderId as correlation. The another JMS Adapter is set as Consumer and recieve activity is registered with it and picks up the response after correlating the message.
    Also I have been able to do the "native correlation" scenario, using Decision Service as mediation module.
    What is the problem?
    1. I need to have the decision service as BPEL, and be able to do the native correlation, which I wonder how to do, because the Jdeveloper 11g has removed support for Adapter Header variables.
    2. I need to use decision service as BPEL and be able to do the content-based correlation, using a single Asyncronous Request/Reply JMS Adapter instead of two (Producer and consumer).
    Any Pointers shall be useful.
    Many Thanks,
    Regards,
    SwapSawe.
    I am aware of how to set the correlation
    http://swapnil-soa.blogspot.com/2008/01/correlation-this-post-would-effort-to.html
    And how to do it in Oracle 11g
    http://biemond.blogspot.com/2009/10/jms-request-reply-interaction-pattern.html
    Edited by: SwapSawe on Nov 30, 2009 11:01 PM

    Dear Friends,
    If I was not able to make my point clear, I would explain it again. I am posting message from one BPEL process to an Asynchronous Request/Reply JMS Adapter.
    A consumer JMS Adapter, would read the message from Q and would initiate another BPEL process, which would perform some business logic to generate a response and post it to reply queue via JMS Producer.
    Now the reply posted, is picked up by the Async Request/Reply, but the receive activity is unable to correlate the message.
    I was able to do this scenario using native correlation, i.e. JMS Message Id mapped to JMS Correlation Id, through mediation module. But I am looking forward to do this using content based correlation.
    Regards,
    SwapSawe

  • JMS properties supported in the JMS Service?

    Hello,
    We are trying to send some JMS properties using the JMS Service and are not having any luck. Specifically, we need to set a JMSType...it appeared that customHeaders in the JMSMessageType (jms.xsd) should facilitate this, however, the properties we send in the name/value pair part of the customHeader in the jmsMessage is not getting through to the recieving side (neither a bpel jms listener nor a pojo listener). This suggests that perhaps this is not supported in the current version??
    Or am I doing something wrong?
    Thanks for the help.
    Cheers,
    Dustin

    Nope, im using the inbuilt JMS queues that come coupled with the deveopler install of the process manager... I can see the header variables when i dont try to use correlation but when i correlate them the header variables on the receive are empty!
    I've also had a bash at trying to get native correlation to work with the JMS adapter but not having much (any!) luck... Any chance you have some resources for that?
    Cheers
    Ian

  • Problem setting a provider specific property : JMS adapter

    Hi Experts:
    I need to set a provider specific property as required by the third party in a IDoc to JMS scenario.
    The property name starts with JMS_ and is offcourse a property specific to the JMS provider.
    The way I am setting it is I have declared a Additional JMS message property by the same name as desired by the third party say
    JMS_XXX
    and then using the DynamicConfigurationBean I assign a value to this in the reciever channel.
    The problem that we have observed is, all other properties are set as desired, only this one for which the name starts with JMS_ is not set correctly.
    Is it possible to set such a provider specific property using XI or not?

    Hi Amol,
    Adapter-Specific Message Properties
    ·        To store adapter attributes in the message header of the XI message, select Set Adapter-Specific Message Properties.
    ·        To apply the following attributes in XI message headers, set the corresponding indicators:
           Name                                           Technical Name
    JMS Message Correlation ID               DCJMSCorreleationID
    JMS Message Delivery Mode               DCJMSDeliveryMode
    JMS Message Destination                   DCJMSDestination
    JMS Message Expiration                     DCJMSExpiration
    JMS Message ID                                DCJMSMessageID
    JMS Message Priority                         DCJMSPriority
    JMS Message Redelivered Flag            DCJMSRedelivered
    JMS Message ReplyTo Destination      DCJMSReplyTo
    JMS Message Time Stamp                   DCJMSTimestamp
    JMS Message Type                              DCJMSType
    Used JMS Message Selector                 DCJMSMessageSelector
    Used JMS Message Queue                    DCJMSMessageQueue
    JMS User                                                DCJMSUser
            If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (10 Maximum).
    ·        In the table, enter the names of the JMS message properties whose values are to be included in the message header of the XI message.
    The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
    You can enter more than 10 properties in the table, but only the first 10 are taken into account.
    The attribute namespace for the adapter is http://sap.com/xi/XI/System/JMS.
    if found worth pls do the req
    Thanx
    Sampath

  • Setting correlation ID in header (DCJMSCorreleationID) for Tibco

    For communication via JMS we set the correlation ID during message mapping using a field from the outbound message but. The message contains the correlation id:
    <sap:DynamicConfiguration SOAP:mustUnderstand="1">
         <sap:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorrelationID"></sap:Record>ID:EMS-SERVER.7F849230A40AC4:36</sap:Record>
         <sap:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSMessageID">MPR</sap:Record>
    </sap:DynamicConfiguration>
    but we get the following error:
    MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Dynamic header records are missing/incorrect specified in message: 12232949-e46f-767b-e100-00000ad57c64. Erroneous/Unspecified headers are:\[ DCJMSCorreleationID \]

    If the header attribute for the JMS Message Correlation ID shall be set for example in an UDF one must use the string DCJMSCorreleationID . (Note the e after the l DCJMSCorrel e ationID). We accidently used DCJMSCorrelationID . Thanks Stefan for pointing that out!

Maybe you are looking for