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

Similar Messages

  • 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

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

  • 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

  • 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

  • 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] ?

  • Set dynamic authentication credentials to Partner link - BPEL 11g PS1

    Hi,
    I am working on BPEL SOA 11g PS1. I need to know how i can dynamically set the Authentication details (Username and password) as well as Timeout while invoking a web service reference.
    I have been successful in setting these values using properties of the partner-link which is static.But actually as per my use-case, i need to read these information dynamically from a repository say Database/DVM and set these value while invoking.
    Regards
    Sesha

    Hi Sridhar
    Below is the composite.xml snippet which works for me as static mapping. I have added "wss_username_token_client_policy" to the reference interface.
    <reference name="getNameService" ui:wsdlLocation="getNameService.wsdl">
    <interface.wsdl interface="http://www.amazon.com/css/mmbi/getNameService/#wsdl.interface(getNameServiceSoapPort)"/>
    <binding.ws port="http://www.amazon.com/css/mmbi/getNameService/#wsdl.endpoint(getNameService/getNameServiceSoapPort)"
    location="getNameService.wsdl" soapVersion="1.1">
    *<wsp:PolicyReference URI="oracle/wss_username_token_client_policy"*
    orawsp:category="security" orawsp:status="enable"/>
    <property name="weblogic.wsee.wsat.transaction.flowOption"
    type="xs:string" many="false">WSDLDriven</property>
    *<property name="oracle.webservices.auth.username" type="xs:string"*
    many="false" override="may">username11</property>
    *<property name="oracle.webservices.auth.password" type="xs:string"*
    many="false" override="may">password11</property>
    *<property name="oracle.webservices.httpReadTimeout" type="xs:string"*
    many="false" override="may">30000</property>
    <property name="oracle.soa.ws.outbound.omitWSA" type="xs:string"
    many="false" override="may">true</property>
    </binding.ws>
    </reference>
    Here you can find property value for oracle.webservices.auth.username,oracle.webservices.auth.password & oracle.webservices.httpReadTimeout are static , What i want to make here is to read these from a bpel variable in runtime.
    OR
    Is there any means i can do this same basic authentication in BPEL 11g which would support dynamic credentials.
    Thanks
    Sesha

  • BPEL-Multiple Correlation Sets

    I'm receiving an error when using two different correlation sets. I have two separate partnerlinks, and the invokes for each initiate a distinct correlation set. I know that these correlation sets work because when I launch the process with only ONE correlation set used, it works fine.
    I set the delivery logging level to ALL and can see where the correlation sets are initiated. It looks like when correlation set A is initiated and received, everything is fine. However, when correlation set B is initiated, on the return there seems to be some confusion--it looks like it's trying to evaluate correlation set A's property. I'm not sure why this mix-up is happening...any thoughts?

    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

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

  • 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

  • [HELP] [BPEL 11g] Customized BPEL worklist app could not work on JBoss

    Dear all,
    We are developing the customized Human Worklist app based on BPEL HW API 11g.
    The application (some jsp pages) works fine in JDeveloper 11g. However, after deploy to JBoss, it always prompt with "NoClassDefFoundError" exception, although we have already add following 7 jar files into Classpath:
    ${jdeveloper.home}\Middleware\wlserver_10.3\server\lib\weblogic.jar
    ${jdeveloper.home}\Middleware\jdeveloper\modules\oracle.jrf_11.1.1\jrf.jar
    ${jdeveloper.home}\Middleware\jdeveloper\modules\oracle.webservices_11.1.1\wsclient.jar
    ${bea.home}/AS11gR1SOA/soa/modules/oracle.soa.fabric_11.1.1/bpm-infra.jar
    ${bea.home}/AS11gR1SOA/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar
    xml.jar
    xmlparserv2.jar
    Then we manually copy many other jars (nearly 100) under Weblogic server, but it still prompt lacking of some jar file with "NoClassDefFoundError" exception.
    So, does BPEL 11g support deploy HW app outside weblogic, like JBoss? If so, what we need to set at JBoss side to run our app?
    Thanks a lot.

    Not sure it is available yet as I have not seen any doc for 11g.
    here is the 10g instructions which may provide some pointers.
    http://download-east.oracle.com/docs/cd/B31017_01/web.1013/b25947/deployment_topics012.htm
    cheers
    James

  • Correlation in Asynchronous BPEL process

    I have thoroughly read docs & various blogs for this correlation concept and I am developed the bpel process without any compilation error. But when I execute, all the instances are waiting in receive activity with message *"Waiting for "processResponse" from "AsynchBPELProcess3.AsynchBPELProcess1.PartnerLink1". Asynchronous callback."*
    My scenario goes like this, I have three simple Asynchronous BPEL process with flow A --> B --> C i.e;
    step 1) client invokes process A with initial inputs
    step 2) process A does some assignment and invokes process B and then followed by a receive activity to receive response back directly from process C
    step 3) process B simply invokes process C after some assign activity
    step 4) process C do actual task for computation -- this is from where i am expecting output result at process A
    Done correlation at process A's recieveInput activity & in additionally added a receive activity to get response.
    Flows works as expected....everything if fine. But only at the time of returning the output result back to process A ..this waits for long time and after some time it becomes stale.
    Thanks.

    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.

  • 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

Maybe you are looking for

  • Can't get a problem free Time Machine backup

    I cannot get a clean first time backup to an external hard drive using Time Machine. I have a 2.6 GHz Intel Core i7 Macbook Pro and a 2TB Western Digital external HD. The drive is partitioned to .5/1.5 sizes. The backup is 1.5TB. It is formatted as (

  • BIOS Update for Satellite A300/600

    Hi all, I have a Satellite A300/600 (PSAG4A-02600M), which I have just installed W7 x64 on (I did a clean install). I am upgrading the drivers as per the Toshiba website. I noticed there is a BIOS upgrade to version 1.8 - I am currently running versi

  • Best method for transferring data from one database to another?

    There is an 8i database I have to deal with on a regular basis. Besides being completely outdated and unsupported, in my opinion the database has not been well-maintained--for a table with 25 million records, should ‘select count(*) from table;’ take

  • Help required on JComboBox

    Hi I have 500 customers in the database. I have to display the customer names in a JComboBox so that user will select the customer name. here i have a problem. pulling 500 customers at a time and displaying them in combobox will take time. the custom

  • The problem of Chinese character Mis-coding

    The version of my bea weblogic workshop is 8.1.3(build 2004.0630.115102).When I wrote some Chinese character in the jsp file,the Mis-coding appear.How can I resolve this problem?