Simple (I hope) Correlation Set question

Hi,
I have three composites A, B and C
Composite A calls Composite B
Composite B may call direct back to A, or it may call C
Composite C will always call back to A
I need to use Correlation Sets to make this work.
Composite A has a wsdl (a.wsdl) which includes a Response Message (which B or C will use)
Composite B has a wsdl (b.wsdl) which includes a Request Message. (A will call it’s request message)
Composite C has a wsdl (c.wsdl) which includes a Request Message. (B will cal it’s request message)
This is my first attempt at using Correlation Sets, so my logic may have some mistakes.
My first goal is to get composites A and B working in the test case where B calls A back directly.
I am using the ID of the original message as a single correlation property.
I think I need to add the following lines somewhere amoung these three wsdl’s:
<bpws:property name="COR_ABMID" type="xsd:string"/>
<bpws:propertyAlias
propertyName="tns:COR_ABMID "
messageType="tns:requestMessage"
part="part1"
query="/inpl:message/inpl:header/icabmcommon:ABMID"
xmlns:icabmcommon="http://ic.ac.uk/AIAMetaData/AIAComponents/ApplicationObjectLibrary/IC/V1/IC_ABM_COMMON"
/>
<bpws:propertyAlias
propertyName="ebmabcs:COR_ABMID "
messageType="ebmabcs:ProcessTransactionRequestResponseMsg"
part="part1"
query="/abm:messageResponse/abm:body/abm:P_CORRELATION_ID"
/>
The problem is that the above code references both the request message in b.wsdl and the response message in a.wsdl.
Do I need to add them all to a.wsdl, add them to b.wsdl or add them to a combination of both a.wsdl and b.wsdl?
Thanks in advance for your advice
Robert

I have adventually got this working by leavign my MDS wsdl's completly alone and allowing JDeveloper to make lots of reference wsdl's and other changes.
Using source control and backing up every single JDeveloper interaction is essential to get this stuff working

Similar Messages

  • Question about Correlation set

    There is a process: a proposer submit a claim, then it needs all the proposer's supervisors to approve, if any of them reject the request, the
    claim will return to proposer and process terminates. If all the supervisors approve, the process can continue. I know after the correlation set is added to every receive node in the process, every node can receive only once a message and the process will move on to the next receive node after the last one has received one message,
    what I should do if I want one node to receive messages multiple times(actually a loop including the node) util a required condition is true?
    Thank you.

    I am not sure if you are talking in reference to the original question or not.
    I will assume not,
    yes you can use multiple correlation sets that you define on the same message. And that message can be reused in different operations there is no issue with it.
    I also assumed you didn't mean that both the receive activities use the same partner, porttype and operation. Because that is a different thing again.
    -Kiran Bhumana.

  • Correlation Set in BPEL (11G)

    I was trying to learn the concept of correlation set and did a simple POC. built 3 simple service A,B,C. A -> B -> C -> A. Services A and C are asynchronous and B is one way. Service A has Invoke to B and a Receive from C. Defined Correlation set with appropriate property and Aliases (one with service B's Request Message type and another with service C's Response Message Type). Initiated the correlation set in Invoke from A -> B and set patter as 'IN' as the request is sent. Used the same correlation set for receive from A <- C with initiate set to 'NO'. When I tested this flow, I got an error "Correlation set no initialized.It cannot be used in receiving activity". Blindly going by the error message, initiated the correlation set at the first receive of service A. Now got no error but the process A is running for long time, pending receive response from C. I know this is not conceptually correct solution to overcome the initiate error in receive of A <- C. Can someone explain me what's the mistake am making here and a solution to complete this POC successfully?
    Thanking in advance
    Ranjani

    Hello,
    Sorry for late response.
    I have 1 more question before that.
    When C is replying then how does service 'C' knows that it is replying to service 'A'?
    I'm asking this because B is 1 way service, but it is invoking service C which is asynchronous so at some point of time B is expecting a response from service C. On other hand if you have used both receive and reply activity in the flow of service C using same partner link then what it does is that it sends response back to service B. There is ReplyTo http header which comes in input request and based on URL present inside it, reply activity knows where to send response back. This case will require 2 partner links in service C. receive will be based on input from B and reply(A is not waiting for response since it did 1 way invocation to service B hence I think we should use Invoke activity here instead of reply activity to send response back to service A, will have to findout using POC) will be based on partner link for service A (Callback port).
    Just try to explore on this direction once since I am currently away from my system. As soon as I get back, I will implement this POC in my system if it doesn't work. Meanwhile see if above direction works.
    Regards,
    Ankit

  • Correlation set was not defined in the process

    Hi All,
    I deplyoed a synchronous CustomerProviderABCS on SAO 11g server.
    This process is invoking the Adapter service(mediator) which internally calls the SAP Adapter.
    I didn't define any correaltion sets and I am not using pick activity.
    After deploying the Provider I am getting the follwing issue:
    java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: Correlation definition not registered. The correlation set definition for operation SyncCustomerParty, process default/SyncCustomerPartySAPProvABCSImpl!2.2*soa_33303a8b-c115-4a93-b338-094e4a4c4078/SyncCustomerPartySAPProvABCSImplProcess, is not registered with the server. The correlation set was not defined in the process. Redeploy the process to the container. at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:575)
    I tried by redeploying the process multiple times.
    any workaround please........
    Thanks in adavance.
    Edited by: user6402392 on Jan 12, 2011 10:26 PM

    I don't know what happened to my server but now I am getting same issue with all my BPEL processes and earlier same process were working fine and I tired to use SOA-DIRECT and then this issue came but I removed it but still same issue and then I created new simple synch process but same issue is coming ......looks like need to change some config or some setting somewhere....please help if anybody have any idea?
    Thanks a lot in advance...
    Regards,
    Bijendra

  • Correlation sets not working

    I have a requirement as below :
    I am working on Jdev 1.5 version and BPEL 2.0 specification. I have an if-else condition in my BPEL. In the if condition I have a while loop with 2 correlation sets, Correlation_1 and Correlation_2. Now in the else condition, I have again created 2 more correlation sets Correlation_3 and Correlation_4. The Property Aliases of these correlation sets, Correlation_1 and Correlation_3 are same, but I have created them separately. Same is the case with Correlation_2 and Correlation_4. Now when I use the correlation set only in the if loop it works fine, but when I use in both the if and else condition, the correlation does not work.
    I have even tried creating a scope for the else condition, which is not in any while loop, but that scope is not visible.
    Can someone please suggest something for this?

    +... post moved from the Database General Questions forum,+
    to the BPEL forum...
    (Why you chose a database forum for your BPEL question is confusing, particularly after resurrecting a 2007 thread in that BPEL forum and trying to hijack it away -- the hijack post has been deleted, by the way.)

  • Correlation set in bpel

    Hi,
    EveryOne,
    Good day to all of you..
    I am new to Oracle BPEL technology and during my course of study and understanding period, i thought of creating a process and i have a query regarding correlation in Oracle BPEL.
    I have a asynchronous process, which accepts 2n different kinds of requests and two differnt kind of responses which i have integrated using JMS.
    Ex: Process -------------- REQ ------ JMS1
    --------------- RESP_ACK------
    --------------- REQ_ACK----- JMS2
    --------------- RESP -------------
    My problem is i can send multiple requests at a shot into the JMS and the system which talks to JMS sends me back a Acknowledgment (REQ_ACK)...
    Now i wait at the JMS2 for the response which can be coming for any of those requests that i had already posted.
    I would like to know is there any way i would be able to find out the response for that particular request that i had sent. I am using Order Number as corrleation.
    kindly let me know if there are any solutions for this problem. I am quite stuck at this point.
    Thanks a lot in advance.
    - deepak

    Yes you can achieve this. There are many ways to get this, it depends on your design. I didn't try the correlation sets.
    If i were you I would like to use the message header properties of the JMS queue. Set an MsgID for the request message and use the same MsgId to listen the response. You have to ask the partner to listen to your request message and store the KsgID and set the same MsgID to the header properties in response message.
    Let me know if you have any questions.
    Thanks
    Ramana.

  • AQ and correlation sets

    I'm using SOA 10.1.3.3 and trying to use the correlation sets for AQ to manage long running PL/SQL.
    Once the PL/SQL has finished I wan the process to continue processing. To do this i want to use correlations. I enqueue the AQ with the correlation set. In the BPEL process I set the header to the corresponding correlation set but the AQ is never dequeued.
    anyone successfully done this.
    cheers
    James

    Thank you James for your reply. I have follow up questions on the same topic.
    - I believe the internal BPEL queue would be persistent though I looked into OraBPEL schema and did not see any queues. Do you know where those queues are?
    - How would the recommendation of using one queue work when there are two different processes i.e. one for enqueueing and one for dequeueing?
    Thanks,
    Dipal

  • Correlation Set With externals partners

    Hello,
    I have a question regarding correlation set and there usage.
    I'm currently making a samll poc on "correlation set" for testing the feature to determine if we could use it for our use case.
    I'm hitting some problems that I can't overcome for the moment, maybe someone could help me.
    First, here is my "test" use case :
    I have 1 BPEL exposing two webservices interface
    - 1 interface for creating the BPEL instance
    - 1 interface for consulting the status (or other thing) of the BPEL using a functionnal ID
    The BPEL logic goes like this :
    Receive > validate the request > generate a unique ID > reply to the consumer (attach the unique ID) > loop on the second receive (waiting for consumer calls)
    The consumer calls the second interface with the unique ID > The right instance is correlated using the unique ID > some treatment(is the response ready ? for example) > reply to the consumer (with the response if ready, otherwise "false")
    The two problems I encounter are the following :
    1 - I can't seem to be able to initialize the correlation set value anywhere in the BPEL except for the "Receive activity that create the instance". But that would assume that the consummer supply a unique ID (which is not likely in our case). Is it not possible to initialize the correlation set in the first reply ? or in any other activity in the BPEL ? The documentation doesn't say if you can or can't initialize the correlation set else where.
    2 - Whenever a consumer try to "consult" a BPEL status using an unknown ID, the call timeout after 45 seconds with a technical exception. It is not possible to handle such a case in order to supply a "functionnal fault" without waiting the 45 seconds ?
    remark :
    This is working totaly fine when I initialize the correlation set with the first request of the consummer but as stated above, my externals partners (several) will not be able to provide me unique ID.
    regards,
    mathieu
    Edited by: mathieu.d on Mar 12, 2013 5:58 AM

    Hi,
    I'm facing the same issue in 10.1.3.3 when trying to use a correlation set on an attribute of a regular xml message.
    Have you been able to figure out what the problem was in your case?
    Kind regards,
    Nathalie

  • Build up correlation set problem

    Hi everyone,
    I follow "Using Correlation Sets Example" in Developer's Guide as a model to build my own simple process.
    But got a compiling error said:"Error:null", that's all.
    Does anyone know what's going on here??? Do I miss something??
    Any document else?
    I would be happy on any reply..
    Thanks,
    Elvis.

    Check your wsdl!
    When I have this problem - I see 2 problems with wsdl (BPEL Desinger damage it, I don't touch it!):
    1) missed xml header string (1-st string):
    <?xml version="1.0" encoding="UTF-8"?>
    2) added import of itself:
    <import namespace="http://xmlns.oracle.com/<BPEL_ProcessName>" location="<BPEL_ProcessName>.wsdl"/>
    If it is you case, remove this import and add xml header string.
    Error must gone now.
    Sometimes it happens with BPEL Designer - this may be a bug...
    ORACLE - do you here??!!
    Check it please ;-)
    P.S. By the way. In my case this happens in 10.1.2.0.2
    Message was edited by:
    occ2000

  • Using the same correlation set to multiple instances of the same process

    Hi all,
    Assuming that I have a Purchase Order with multiple items and I have a BPEL process that is triggered for each item.
    When the Purchase Order is cancelled by the customer, I want to cancel all BPEL process that is still running. I'm using SOA Suite 11.1.1.2.
    My first attempt was to use an event handler associated to a cancellation operation, but I couldn't do this because when the second BPEL instance was started, a conflictingReceive BPEL Fault is triggered. This occurs because BPEL can't have more than one active receive/on message using the same correlation set.
    Another way to do this is using a different correlation set for each instance (somethig like a composite key - Purchase Order ID + Item ID, i.e), but in this way I need to know all composite key in advance and send one message to each instance specifically.
    Anyone have any suggestion of how to cancel more then one instance of the same BPEL process using Event or a generic way that does not need to send one message for each instance?
    Events work very well to start more then one BPEL process but does not work well to receive an intermediate message during process execution because in this case we need correlation set to associate the event with the correct instance and BPEL does not support more then one instance of the same BPEL process waiting for the same correlation set.
    Any suggestion will be very welcome.
    Thanks in advance,
    Rafael

    Never mind. I got it.
    I put the iisforward.dll and .ini is a seperate folder, and edited the iisproxy.ini's to include the portnumber like this. And I changed the hostheaders in IIS to Site1, Site2 etc
    vhost1=Site1:80
    Site1:80=C:\Sites\Site1\iisproxy.ini
    vhost2=Site2:80
    Site2:80=C:\Sites\Site2\iisproxy.ini
    vhost3=Site3:80
    Site3:80=C:\Sites\Site3\iisproxy.ini

  • Correlation set problem with different messages

    Hi.
    I have process with two receive activity correlated by correlation set. But second receive wait for different message as initiation receive.
    I created correlation set
    <correlationSets>
    <correlationSet name="OrderCorrelationSet"
    properties="ns1:orderId_property"/>
    </correlationSets>
    with property
    <bpws:property name="orderId_property" type="xsd:long"/>
    and two aliases
    <bpws:propertyAlias propertyName="pns1:orderId_property" messageType="client:activationRequestMessage"
    part="payload" query="/ns5:orderElement/orderRecord/ns2:orderId/ns2:orderId" xmlns:ns5="http://xmlns.oracle.com/activation/bpel/"
    xmlns:ns2="http://b2b.web.sk/orders/"/>
    <bpws:propertyAlias propertyName="pns1:orderId_property" messageType="client:activationPushRequestMessage"
    part="payload" query="/ns5:activationPushRequest/processid"/>
    now when I send correlated message to second receive I get get error
    ORABPEL-03813
    Failed to evaluate correlation query.
    Failed to evaluate the correlationAlias query "/ns5:activationPostpaidPushRequest/processid" on the element "oracle.xml.parser.v2.XMLElement@1e44d8f"
    Please check your BPEL/WSDL source to make sure that property alias is defined correctly.
    what is wrong (I know failed evaluate query "/ns5:activationPostpaidPushRequest/processid" but why, I create it with property wizard) where I have to start?

    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

  • 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

  • How to use Correlation set to persist record in BPEL for multiple request

    Hi ,
    I need to persist record in BPEL as it a stateful.I am using soa suite 11.1.1.5 v.The purpose is to persist multiple messages from single service/partnerLink(JMSAdapter)and aggregated to form a group message using BPEL correlation set concept
    There are 5 message in a JMS queue like 1st message ->one,2nd message->two,3rd message->three,4th message->four,5th message->empty
    All are text messages.Last message/string is an empty message.
    IS it possible in bpel to fetch all the 5 message(using JMS adapter) under one single instance and append all messsage until empty string is not coming?
    My final output would be one single message:*onetwothreefour*

    Can you contact me offline @ [email protected] ?

  • Property Chooser dialog from Add Correlation Set dialog Doesn't Expand

    We are using Windows XP with NetBeans IDE 6.0 Preview (M9, build 070502).
    We are creating a BPEL workflow. We want to create a correlation set.
    1. In the Navigator, we right clicked on Correlation Sets, and and chose "Add Correlation Set ..." from the menu
    2. The Correlation Set dialog opened. It was empty.
    3. We chose Add ...
    4. The property chooser comes up.
    5. We have some WSDL files in the property chooser
    6. However, we cannot expand the WSDL files to see any parameters. (The plus sign is there, but we can't expland it)
    Aside from correlation, the process works perfectly.

    My workflow "HelloWorldProcess" has two Receive activities, they receive the same message, one receive has CorrelationSet with"initiate=yes" and another one has CorrelationSet with"initiate=no".
    After the projet gets deployed, I sent the first message to "http://localhost:18181/HelloWorldProcessWSDLService/HelloWorldProcessWSDLPort", to instantiate a instance of workflow, the instance of workflow received message, then waited on the second Receive (ReceiveUserName2), then I sent a second message (the same as first one) to "http://localhost:18181/HelloWorldProcessWSDLService/HelloWorldProcessWSDLPort", I thought this message should be received by the ReceiveUserName2, but it is not, instead a new instance of workflow gets instantiated (the secons message was receieved by the first Receive activity of new instance of workflow). Why?
    I am currently using ActiveBPEL workflow too and I am using correlation sending the same message to a existing instance of workflow. The second message was received by the second Receive activity in the workflow, I think, Correlation Set should work like this way.
    Please advise.
    Thanks
    kebin

  • BPEL orchestration, correlation sets.

    Hi,
    i'm a beginner, i have to coordinate those three projects:
    is it possible with bpel 2.0?
    i tried using correlation sets but bpel engine stop during the invoke in "proc.bpel".
    i think it happens because "proc.bpel" doesn't know where to redirect its message (Auth first receive or Auth second receive?)
    Thanks.

    I have three bpel processes: Portal.bpel , Auth.bpel , Proc.bpel
    the full orchestrated sequence of calls is the following:
    -Portal invokes first Auth
    -Auth receives the call and then reply to Portal
    -Portal then calls Proc waiting for a Reply.
    -Proc, before replying to Portal, has to invoke Auth.
    in this exaple, Auth has two Receive in its process: the first from Portal, the second from Proc.
    When Proc calls Auth is not able to distinguish which Receve to point, so Auth.bpel process fails.
    I've tryied to map the two different variables received by Auth (one from Portal, the other from Proc) into two different correlation sets, but it doesen't work.
    sorry for my bad english.
    thank you very much

Maybe you are looking for

  • ERP6.0 EHP7 Upgrade error in phase PARCONV_TRANS

    Hello, If you have any idea or information , I hope your help!! I'm upgrading ERP6.0 to ERP6.0 EHP7. I have encountered the error in MAIN_TRANSEXEC/PARCONV_TRANS. The error mesaages is like this: Detected the following errors: # Y:\SUM\SUM\abap\log\N

  • Unable to Reinstall iTunes - error message: "Apple Application Support was not found"

    When attempting to update my iPhone today, my iTunes would not open.  I followed the instructions to completely uninstall iTunes, Apple Software Update, Apple Mobile Device Support, Bonjour, and Apple Applications Support.  I then attempted to reinst

  • How to configure JDBC connection in oracle BI publisher with teradata datab

    Hi, I am going to use Oracle BI publisher to create report. Our database is Teradata. How to create database connection for Teradata in BI publisher. How to create JDBC connection. What should be the Database Driver Class? What should be the connecti

  • Illustrator 15.0.2 extremely slow on Windows 7 Home Premium 64-bit

    Illustrator has been working nicely on my computer up until the 15.0.2 upgrade.  Now it chugs along at a snails pace and locks up/hangs frequently when switch between tools or windows. My system specs are: Windows 7 Home Premium 64-bit Intel i7 Q720

  • How to do mapping based on value.

    Dear Experts,    I am working on a file-bapi -r/3 synchronous  scenario. From SAP R/3, if error response is coming then we are supposed to write in a file and keep on to some location. If response is successful then need not write to the files, only