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

Similar Messages

  • 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 "Correlation_set" is not initialized. It cannot be used in a receiving activity. Fault is thrown.

    Hello,
    My bpel goes something like this:
    Main processing
    Receive activity (associated correlation set with initiate set to Yes)
    on Event - activity 1
    Receive activity is main. If I keep activity1 correlation set - initiates as Yes. then process will work but onEvent - activity1 will create new instance and will not update existing instance.
    To update the existing instance, I nned to make its instantiate value as "No".
    After changing instantiate value to "No", When the BPEL process is started, with the first message (main receive activity), I get the following error message:
    Correlation set "Correlation_set" is not initialized. It cannot be used in a receiving activity. Fault is thrown.
    Is there something I am missing?
    Thanks,
    Amit Pamecha.

    Hi Amit,
    Please refer the following section in SOA Developer Guide.
    Using Correlation Sets and Message Aggregation - 11g Release 1 (11.1.1.7)
    Also Refer the following sample for use of correlation sets.
    bpel-305-InboundCorrelationShows how to perform message correlation within BPEL
    http://java.net/projects/oraclesoasuite11g/downloads/download/BPEL/bpel-305-InboundCorrelation_1.2.zip

  • 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

  • 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 Problem with Oracle BPM 2.1.2

    I have developed a BPEL process that invokes Axis web services and then wait an asynchronous message from the services, using pick with onMessage tag. Previously, I do my work with Oracle BPM 2.0.10 and designer 0.9.5, it works well. But now, I have used Oracle BPEM 2.1.2 and designer 0.9.10, my Axis web services can not send any asynchronous message to the process. What's the problem? Must I set some configuration with BPM 2.1.2 or change my original BPEL code?
    This is a fragement of my BPEL code.
              <invoke name="invokeSubscriptionProxy" partnerLink="subcriptionProxy" operation="subscribeToProxy" inputVariable="input4SubscriptionProxy" outputVariable="output4SubscriptioProxy" portType="nsxml1:NotificationProxyPortType">
                   <correlations>
                        <correlation set="correlationInteger" initiate="no" pattern="out"/>
                   </correlations>
              </invoke>
              <pick name="pick4Subscribe2">
                   <onMessage partnerLink="client" portType="tns:TestOrchestratingGeneratedGramProxy" operation="deliverNotificationFromProxy" variable="deliveredNotificationMessage">
                        <correlations>
                             <correlation set="correlationInteger" initiate="no"/>
                        </correlations>
                        <sequence>
                             <empty name="empty-2"/>
                        </sequence>
                   </onMessage>
                   <onAlarm for="'PT1H'">
                        <sequence>
                             <empty name="empty-2"/>
                        </sequence>
                   </onAlarm>
              </pick>
    When I edit this code with designer 0.9.10, it shows no error. I test my process by viewing BPEL console.
    Please help me to correct this problem.
    PS. I sure that my Axis Web servies work well.

    Hi,
    "my Axis web services can not send any asynchronous message to the process" --&gt; means when you try to invoke an Axis Web services from a BPEL process, there are no callback message from the web services, right? Did you see any exception from either the console or BPEL server DOS window?
    John

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

  • 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

  • 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

  • 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

  • Correlation set based on correlation from raised ADF event payload

    Hi,
    In a BPEL process, how can we include a Correlation set based on correlation from raised ADF event payload ?
    Thanks

    Hi Charles,
    Thanks for the response.
    Actually, my requirement is : I have a BPEL Process which has a pick activity. The OnMessage branch of the Pick activity is mapped to a service which is invoked by a Mediator. This Mediator is Subscribed to a Create Event.
    I am able to run my BPEL and Mediator instances separately but the problem is even though the Mediator is invoking the webservice, after the Create Event is raised, BPEL 's pick activity is not getting the response from the webservice due to which BPEL continues to be in running state.
    This might be a problem with a Correlation Id seting .
    How can i make by BPEL process know about the Mediator instance ? Any idea ?
    Thanks
    Nutan

  • AQ  and Correlation sets in BPEL

    Hi Gurus,
    can any one share me a working sample of how to work with AQ and Correlation sets in BPEL .
    Thanks in advance ,
    Cheers
    Vamsi

    Sunil,
    Find an explanation here:
    http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_correlate.htm#sthref914
    Arik

  • Confgure correlation set in BPEL

    All,
    I have a scenario where my plsql proc is taking long time to fetch records from DB. I need to use the records fetched from the db in my bpel process. for that I want to use corrleation set with db adaptor so that at the end of the procedure again the same bpel process will get executed. this is to avoid soa/jta timeout issues between bpel and db operation(Proc). now I am looking for the steps to configure correlation set for this requirement, can anybody help me out?
    Thanks

    Hi Satish,
    Thanks for your answers. I have tried the way you explained, but I am still facing the timeout issue. I have created a once bpel process from which I am invoking an aync bpel process which has db adaptor call to sql. I have created correlation set in the first bpel in the invoke activity which invokes second bpel process. The above sql is already tuned and the time out set in the admin is constant and uniform across all intefaces in my project. So I cann not change the time out property in admin.
    Thanks

Maybe you are looking for

  • Problems booting my new computer

    Hello! I have a real newbie problem that I hope someone could help me with. I have just started up my new computer with P4M890M mothercard but all I get is the message "reboot and select proper boot device or insert boot media in selected boot device

  • Port forwarding TO Mac OS X Server

    We just bought a Mac Mini server (10.6), and we're setting it up. Let me admit that I know little about how the server software works, but I have been playing around with it for the past couple of days. I have Mail, iChat, webpage, wiki, screen shari

  • PS CS 3 Download issues

    I am trying to install CS3 to my 64 bit PC disc wont run ( I think its a 32bit CD), download off IE says cert corrupt download off safari says HTTP ERROR: 404 /support/downloads/dlm/main.jsp  RequestURI=/support/downloads/dlm/main.jsp I am at a loss

  • How to use value from Custom Select tag

    Hi, I have made a custom tag for html element select. It is a very basic tag with the selection of one vaule. I am able to populate the list using custom tag in JSP but i am not able to optain the value from that. Kindly see my jsp code. <html> <head

  • How to calculate ponderate totals

    hi, i have a question. Suppose I have the following model: MAT_GROUP  | MAT   | QTY | STD PRICE AAAAAAAAAAA| M1    | 100 | 50 AAAAAAAAAAA| M2    | 200 | 50 Consider that the kf i use in the report (here QTY and STD PRICE) are two restricted key-figur