Conflicting receive in BPEL

Im having two BPEL process.The first BPEL process will check the dehydration store for the second BPEL process intstance.If the second BPEL process instance is already available then the first BPEL process will call the initiate operation of the second BPEL process(for initiating the second instance) else it will call the update of the second BPEL process(Correlated using correlation ID). The correlation pattern used is OUT.
This is working fine if i post one or two messages but if i post 100 or 500 messages, Im getting "Conflicting receive" exception and my first BPEL process is invoking initiate process instead of update process. Im not sure of whether this is due to time lag happening in the dehydaration store or any other stuff.

Hi Venkat,
Just a thought....When you initiate process 1 twice, depending on the adapter polling frequency instances are created. Considering there are only 2 instances created, the process 2 should ideally call the initate operation and complete successfully. But, when you have 100 to 500 instances created for the same process with different instance ids, since the message is the same..its getting confused as to on whom to perform the initiate operation. So, what I feel is to check the dehydration store for the process name (instead of the number of instances or its instance id/name). In this way, once the process is deployed on the BPEL Server, its suitcase gets created and then you can fetch its metadata only once irrespective of its number of instances.
Hope that helps!
Cheers
A

Similar Messages

  • Conflicting Receive Issue

    Hi ;
    I have to process. Ans that's use send and receive activity for their communication. I've call 2 sub-process from main process. But i have receive this error:
    ORABPEL-03810 Conflicting receive. A similar receive activity is being declared in the same process. Another receive activity or equivalent (currently, onMessage branch in a pick activity) has already been enabled with the partnerLink "CallSubProcess.reference", operation name "sendInfoToCallerProcess" and correlation set "" (or conversation ID). Appendix A - Standard Faults in the BPEL 1.1 specification specifies a fault should be thrown under these conditions. Redeploy the process after removing the conflicting receive activities.
    I haven't overcome that this issue yet. Are there anyone that facing this problem before? And, what's the solution way?
    Regards..

    Hi,
    What product/version are you running when encountering this issue ?
    As you can see from the error message you "correlation set" is empty. Normally BPEL should be able to handle correlation by itself but when this goes wrong you can force it by setting up custom correlations.
    You can find more info on Antony's blog https://blogs.oracle.com/reynolds/entry/bpel_correlation
    I've encountered this problem many times before on 10g. Just forcing correlation solved this.
    Good luck,
    Kind Regards,
    Nils

  • Conflicting receive. Another receive...

    Hi,
    I am Samir.
    I have a business process with three parallel flows (used flow activity). Each flow has one invoke and one receive activity. There are three different partnerlinks with Invokes and all three receive activities use the same partnerlink, "client".
    There are saperate correlation Ids set with the invokes. The same correlation Ids are used in respective receive activities as well.
    I am getting the error +"*Conflicting receive. Another receive activity or equivalent (currently, onMessage branch in a pick activity) has already been enabled with the partnerLink...*"+ at the receive activity.
    Can anyone advise the possible resolution?
    Thanks in advance.

    Hi Sam,
    when you have pick Activity ( with multiple OnMessage brances with diff. operations having correlationSets) and not using the unique CorrelationID, you will be getting this error .
    Hope this holds true for you.
    Thanks & Regards,
    anvv sharma

  • Receive choice (BPEL) in BPMN

    Hello Experts,
    I`m converting a process from non-SAP integration system which is using BPEL for process description into SAP PO (which is using BPMN of course).
    I`m wondering how can I convert BPEL activity RECEIVE CHOICE into SAP BPMN.
    Receive choice is something like CASE ... WHEN statement in ABAP. You set the sender Service Interface with multiple operations into it and it will choose which branch is the right one, according to which operation was called by sender system.
    I found that SAP implementation of BPMN has big restriction according to standard BPMN or BPEL - you can set only one operation of only one service interface as input point of BPMN process.
    Is there some design pattern or work around how to convert that BPEL activity into SAP BPMN?
    Thank you
    VB

    I read that excellent article of Volker before, and it is possible solution for that problem, but only in a case that I need to aggregate few messages of not so different message types.
    But it is not my case - I need to trigger my process for almost twenty message types (almost twenty operations on my service interface), and if I would make super message type (combined message type of all message types) it would have hundreds of fields and such a message would be so huge to work with and really unflexible to future changes.
    So - simple aggregator pattern is not suitable for me, because it consumes multiple messages of one message type (one operation) and that upgraded aggregator pattern (after some changes) can be a solution, but due to high number of operations (message types) - it is somewhat unpractical.
    Neverthless, that I dont need to aggregate these messages, but I need some kind of DISPATCHER pattern.
    I have one service interface with multiple operations and want to dispatch right process for actual operation of that SI. I cannot believe that BPMN doesnt have such a trivial functionality.
    vb

  • Correlation Conflict inside BPEL

    Hi ,
    I am getting correlation conflict inside the BPEL process.
    Can any body suggest some solution to it.
    Conflicting receive.
    A similar receive activity is being declared in the same process. Another receive activity or equivalent (currently, onMessage branch in a pick activity)
    has already been enabled with the partnerLink "CreateOrUpdateRWOService", operation name "AcknowledgeRWO" and correlation set "{{http://xmlns.oracle.com/RWOProcessApp/RWOProcess/CreateOrUpdateRWOProcess/correlationset}RWOReference=
    {http://xmlns.oracle.com/RWOProcessApp/RWOProcess/CreateOrUpdateRWOProcess/correlationset}RWOReference=}" (or conversation ID). Appendix A -
    Standard Faults in the BPEL 1.1 specification specifies a fault should be thrown under these conditions. Redeploy the process after removing the conflicting receive activities.
    Regards
    Manish
    Edited by: 858026 on Sep 14, 2011 5:28 PM

    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.

  • BPEL instance recreation for used correlation set.

    Hi,
    In our project we have deployed two composites in the first one we have used a fileadapter,mediator,webservice the flow is like from Fileadapter-->mediator-->webservice(1^st^ Composite) .
    In the second composite bpel interface is web service and wrting to an outbound location using a file adapter. The flow is like webservice-->BPEL-->Fileadapter(2^nd^ Composite).
    To achieve message aggregation,In the BPEL we have used co-relation set on ID.When we put file in inbound location having same unique ID it will be processed within the same BPEL instance and files having different ID will have different bpel instance.
    So it's working as expected after deployment only once.The message are aggregated.But when we are putting some new files in the inbound location having same ID(i:e new instance to be created)there is no files are aggregated at outbound location.In console we can see the flow from fileadapter-mediator-webservice invocation but it's invoking the bpel component..
    I am using BPEL instance corelation set to aggregate multiple message segment from same caller for 5 mins.It works fine no issues.
    For the same corelation ser if I repeat the same requests after 10 mins it won't instantiate BPEL also does not give any error .
    To make it work we have to redeploy the 2^nd^ composite everytime.
    So can anybody please help us out on this how to resolve this issue.
    Thanks In Advance!:)

    Hi,
    Even I am getting the same exception. Even tough my Process doesn't contain any conflicting Receive there is a pick activity that receives the Incoming call with two different messages. And logically it should not generate a conflicting receive.
    Did anyone get the root cause of this problem. If someone can update this . It will be really helpful. I am trying to create the PL for the particular branch instead of the global PL as suggested in one of he blogs. I will also update if i get any new clues.
    Thanks in advance.
    Yogesh

  • How to use Bpel output as input in stored procedure

    I am a SOA beginner. The scenario is to use the output from a BPEL process in a stored procedure as input and validate it against the data in the database. The data received from BPEL is compared with fields from different tables.
    It is basically a business process data validation.
    Will the output of BPEL be a Xml file and how it can b used in query of a procedure?
    Edited by: 869091 on Jun 29, 2011 12:14 AM

    The output from the BPEL process will be in XML format.
    Your requirement is not clear, please state it properly what are you trying to do.
    -Yatan

  • Add a Human Task in BPEL but it shows as an Auto Task in BPA

    Hi, all,
    I create a BPMN flow in BPA and mapping to BPEL. And I add a Human Task in jDeveloper, and saved back to BPA server. But the problem is the updated BPMN flow shows that I added a Auto Task in BPA. Could you help me on that? Thanks in advance.
    Best Regards,
    Bill

    Hi Bill,
    Prefatory a quick intro on the basic idea of the BPA concept and a few personal recommendations. In general all changes on the control flow should be initiated top-down from the business process, which means your requirement becomes relevant only in certain cases. If the refinement of the BPEL process is going beyond the technical implementation, then the BPMN diagram itself needs to be corrected. That being said, in certain cases it may be sensible to make use of the improvement proposal feature (e.g. the IT developer recognizes the need of an additional service invocation, so that the control flow of the business process has to be refined).
    Referring to your issue these changes are displayed as Automated Activities (abstract) in the superior business process (in BPA). For this reason some activities require a different approach when it comes to accepting or rejecting by the business users. The description below provides an overview about how-to add activities in BPEL subsequently (as improvement proposals) and how they will be represented in the superior business process after synchronization (personal recommendations).
    Control flow
    Email, Fax, Pager, Pager, SMS, Voice+
    BPEL process (JDeveloper)+
    Encapsulate within a separate Abstract activity - choose a name, which helps to identify that this should be a Notification activity (define naming conventions in the conventions handbook).
    Business process (BP Architect)+
    By default represented as Automated Activity (abstract).
    Open the improvement proposal model and select the new activity. Go to Format/Representation and select 'Notification' in the Symbol-dropdown list - the object appearance changes.
    Important: double-click the new activity and specify all the required parameters. Share the blueprint with IT.
    Note: The attributes of the abstract Automated Activity still appear in the attributes view.
    Invoke+
    BPEL process (JDeveloper)+
    Encapsulate within Abstract activities.
    Business process (BP Architect)+
    If encapsulated within an existing scope in BPEL - not visible in the superior process.
    If encapsulated within an Abstract activity in BPEL - represented as Automated Activity (abstract).
    Human Task+
    BPEL process (JDeveloper)+
    Encapsulate with an a separate Abstract activity - choose a name, which helps to identify that this should be a Human Task activity (define naming conventions in the conventions handbook). Ignore the Switch activity that will be added below the Human Task.
    Business process (BP Architect)+
    By default represented as Automated Activity (abstract).
    Open the improvement proposal model and select the new activity. Go to Format/Representation and select 'Human Task' in the Symbol-dropdown list - the object appearance changes.
    Important: double-click the new activity and specify all the required parameters. Share the blueprint with IT.
    Note: The attributes of the abstract Automated Activity still appear in the attributes view.
    Receive, Reply+
    BPEL process (JDeveloper)+
    Encapsulate within Abstract activities.
    Business process (BP Architect)+
    If encapsulated within an existing scope in BPEL - not visible in the superior process.
    If encapsulated within an Abstract activity in BPEL - represented as Automated Activity (abstract).
    Decide+
    BPEL process (JDeveloper)+
    Add a new Abstract scope - choose a name, which helps to identify that this should be a Business Rule activity (define naming conventions in the conventions handbook). Place an Empty activity inside the scope.
    Business process (BP Architect)+
    By default represented as Automated Activity (abstract).
    Open the improvement proposal model and select the new activity. Go to Format/Representation and select 'Business rule function' in the Symbol-dropdown list - the object appearance does change.
    Important: double-click the new activity and specify all the required parameters. Share the blueprint with IT.
    Note: The attributes of the abstract Automated Activity still appear in the attributes view.
    Flow, Switch, Pick+
    BPEL process (JDeveloper)+
    Only new branches within existing activities can be added subsequently. Each branch should contain at least one Abstract activity.
    Business process (BP Architect)+
    New activities should be defined in the superior business process.
    Displayed as gateways (AND, XOR <event-based>, XOR <data-type>, OR) - the definition of these activities should be initiated in the business process.
    While+
    BPEL process (JDeveloper)+
    Only within existing scopes. Loops should be defined in the superior business process.
    Business process (BP Architect)+
    If not encapsulated within a scope in BPEL - will be represented as Automated Activity (abstract).
    If encapsulated within an existing scope in BPEL - not visible in the superior process after synchronization.
    If encapsulated within an Abstract in BPEL - will be represented as Automated Activity (abstract).
    Implementation
    Assign, Transform, Throw+
    BPEL process (JDeveloper)+
    Only within existing scopes.
    Business process (BP Architect)+
    Not visible.
    Wait, Terminate+
    BPEL process (JDeveloper)+
    Not recommended to add them subsequently - should be defined in the superior business process via Intermediate events (BPMN).
    Business process (BP Architect)+
    Displayed as intermediate event - the definition of these activities should be initiated in the business process.
    Kind regards,
    Danilo

  • JPublisher and BPEL strange behaviour

    I use code generated by JPublisher for BPEL process with endpoint http://bbm.local.com/orabpel/default/activation/1.0/activation?wsdl to call BPEL process from DB Oracle 10g.
    There are more than one versions of BPEL process (more than one endpoints) on server.
    When I call PL/SQL procedure with correlation parameter for running instance of BPEL process, it receives message even when the instance is running on another endpoint.
    For example there is running 3 instances of process activation
    1. instance with version 1.0 and correlation parameter 1000
    2. instance with version 1.1 and correlation parameter 1001
    3. instance with version 1.2 and correlation parameter 1002
    Default version is 1.2.
    Code was generated with endpoint of version 1.0.
    I call procedure with correlation parameter 1001 and message is normally received by BPEL process.
    Is this normal behaviour? What is the matter of endpoint in generation process?
    Many Thanks.

    I'm experiencing the exact same issue than Corin. I don't know what's making the problem appear, but I usually need to restart to fix the problem. Also when I tried to drag something from iTunes I couldn't use the escape method as Corin mentioned before.
    I already re-installed Mac OS X and after a couple of hours the problem came back again. It doesn't seem like a hardware problem because once I tried to restart my MAC and a program stopped it from doing it... and then I noticed that my mouse was fixed again.
    I don't know what can be the issue, but does this mean I need to make a clean install of Mac OS X?

  • Help in forming SOAP message for Bpel process

    Hi,
    I have a following schema file - UnpackMessage.xsd
    <?xml version="1.0" encoding="windows-1252"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3.org/2001/XMLSchema/UnpackMessage"
    xmlns:tns="http://www.w3.org/2001/XMLSchema/UnpackMessage"
    elementFormDefault="qualified">
    <complexType name="PackHandlerProcessRequestType">
    <sequence>
    <element name="instanceId" type="string"/>
    <element name="activityName" type="string"/>
    <element name="result" type="string"/>
    </sequence>
    </complexType>
    <element name="PackHandlerProcessRequest" type="tns:PackHandlerProcessRequestType"/>
    </schema>
    and the following wsdl file for a bpel process
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <definitions name="PackManagerWSDL"
    targetNamespace="http://xmlns.oracle.com/PackManager"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:client="http://xmlns.oracle.com/PackManager"
    xmlns:tns="http://xmlns.oracle.com/PackManager"
    xmlns:ns2="urn:UnpackHandler"
    xmlns:ns3="http://www.w3.org/2001/XMLSchema/UnpackMessage">
    <types>
    <schema attributeFormDefault="qualified" elementFormDefault="qualified"
    targetNamespace="http://xmlns.oracle.com/PackManager"
    xmlns="http://www.w3.org/2001/XMLSchema"
    >
    <import namespace="http://www.w3.org/2001/XMLSchema/UnpackMessage" schemaLocation="UnpackMessage.xsd"/>
    <element name="PackManagerProcessResponse">
    <complexType>
    <sequence>
    <element name="result" type="string"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    </types>
    <message name="PackManagerRequestMessage">
    <part name="payload" type="ns3:PackHandlerProcessRequestType"/>
    </message>
    <message name="PackManagerResponseMessage">
    <part name="payload" element="client:PackManagerProcessResponse"/>
    </message>
    <portType name="PackManager">
    <operation name="initiate">
    <input message="client:PackManagerRequestMessage"/>
    </operation>
    </portType>
    <portType name="PackManagerCallback">
    <operation name="onResult">
    <input message="client:PackManagerResponseMessage"/>
    </operation>
    </portType>
    <plnk:partnerLinkType name="PackManager">
    <plnk:role name="PackManagerProvider">
    <plnk:portType name="client:PackManager"/>
    </plnk:role>
    <plnk:role name="PackManagerRequester">
    <plnk:portType name="client:PackManagerCallback"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </definitions>
    The receive activity in bpel process expects input message "PackManagerRequestMessage" of type "PackHandlerProcessRequestType"
    Now on invoking the Bpel process directly by using the console ... the default input to the process looks like this -
    <payload xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema/UnpackMessage"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:type="def:PackHandlerProcessRequestType">
    <instanceId xmlns="http://www.w3.org/2001/XMLSchema/UnpackMessage">600</instanceId>
    <activityName xmlns="http://www.w3.org/2001/XMLSchema/UnpackMessage">receive</activityName>
    <result xmlns="http://www.w3.org/2001/XMLSchema/UnpackMessage">ok</result>
    </payload>
    and the receive activity gets the following as input (as taken from Flow in bpel console)
    <ReceiveInput_initiate_InputVariable>
         <part name="payload" >
              <payload xsi:type="def:PackHandlerProcessRequestType" >
                   <instanceId>800</instanceId>
                   <activityName>receive</activityName>
                   <result/>
              </payload>
         </part>
    </ReceiveInput_initiate_InputVariable>
    But when i invoke the same process using a SOAP message which looks like
    <?xml version = "1.0" encoding = "UTF-8"?>
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://www.w3.org/2001/XMLSchema/UnpackMessage" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    <SOAP:Body>
    <payload xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="def:PackHandlerProcessRequestType">
    <ns2:instanceId>600</ns2:instanceId>
    <ns2:activityName>receive</ns2:activityName>
    <ns2:result>OK</ns2:result>
    </payload>
    </SOAP:Body>
    </SOAP:Envelope>
    the receive activity now gets the following as input (taken from Flow in bpel console)
    <ReceiveInput_initiate_InputVariable>
    <part name="payload">
    <ns1:instanceId>600</ns1:instanceId>
    </part>
    </ReceiveInput_initiate_InputVariable>
    So i am losing input data. Can someone help me form appropriate SOAP message for this ?
    Thanks,
    Srini

    Thanks Marc,
    The SoapUI is really useful. The SOAP request as generated by the SoapUI for above case is
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:pack="http://xmlns.oracle.com/PackManager" xmlns:unp="http://www.w3.org/2001/XMLSchema/UnpackMessage">
    <soapenv:Body>
    <pack:initiate>
    <payload>
    <unp:instanceId>800</unp:instanceId>
    <unp:activityName>receive</unp:activityName>
    <unp:result/>
    </payload>
    </pack:initiate>
    </soapenv:Body>
    </soapenv:Envelope>
    and the input received at BPEL was as expected.
    Thanks a lot.
    Srini.

  • IKE Conflict message

    Hello,
    I have two ASA5510 configured as vpn concentrator for network extension with some pix501, they are located in different buildings.
    I have connections and the tunnel gets up in any side with no problem, but in one of them I have no traffic. I have checked my ACL and basically I copied it from the one wich is working well to the other.
    After checking the real time log viewer the only difference I found is the following message :
    5 Mar 18 2009 10:13:54 713904 Group = Testgroup, Username = pixtest, IP = PublicIPAddress, IKE: Filter conflict: received filter-ID (filter name=Testgroup) along with an AV-PAIR dynamic ACL filter
    (filter name = DAP-ip-user-1025B206).AV-PAIR dynamic filter will be applied.
    Even when the tunnel is up, there is no traffic.
    Please help me
    Regards
    HUGO

    Anyone?

  • BPEL hanging when using HeaderHandlers for stateful webservice

    We are having problems calling a partnerlink using the responseHeaderHandlers and requestHeaderHandlers properties.
    The problem seems to be that the response from the webservice of the partnerlink is never received by BPEL, resulting in a timeout.
    From the BPEL logs, I can see that the outbound header handler class has modified the request:
    06/09/06 10:00:03 Started alive handler for statefull support -> out
    06/09/06 10:00:03 [Request] to RetrieveServiceContent operation
    06/09/06 10:00:03 Modified props
    06/09/06 10:00:03 Outgoing call props: {is-initial-call=true, input-header-variables={}, parentId=1902, completionPersistPolicy=null, process-id=bpel://localhost/default/VMTest~1.0/, rootId=1902, conversationId=bpel://localhost/default/VMTest~1.0/1902-BpInv0-BpSeq1.6-2, location=http://wxp03666/sdk/vimService, priority=3, httpRequestHeaders={Connection=Keep-Alive}, work-item-key=1902-BpInv0-BpSeq1.6-2}
    And in obtunnel, I can see the reqest being sent to the remote web service:
    POST /sdk/vimService HTTP/1.0
    Via: 1.0 LON-MEM-APP-11
    Content-Length: 342
    Content-Type: text/xml; charset=utf-8
    User-Agent: orabpel
    Host: lon-mem-tsg-06.lon.domroot.com:80
    Accept: application/soap+xml, application/dime, multipart/related, text/*
    Cache-Control: no-cache
    Pragma: no-cache
    SOAPAction: ""
    Connection: Keep-Alive
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <RetrieveServiceContent xmlns="urn:vim2">
    <_this type="ServiceInstance">ServiceInstance</_this>
    </RetrieveServiceContent>
    </soapenv:Body></soapenv:Envelope>
    The remote webservice receives this request, and in obtunnel I can see it's response:
    HTTP/1.1 200 OK
    Date: Wed, 6 Sep 2006 09:00:03 GMT
    Set-Cookie: vmware_soap_session="19D82F52-CC94-4E52-9A2A-54AB10A31E3C"; Path=/;
    Cache-Control: no-cache
    Content-Type: text/xml; charset=utf-8
    Content-Length: 2106
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <RetrieveServiceContentResponse xmlns="urn:vim2">
    <returnval>
    <rootFolder type="Folder">group-d1</rootFolder>
    <propertyCollector type="PropertyCollector">propertyCollector</propertyCollector>
    <about>
    <name>VMware VirtualCenter</name>
    <fullName>VMware VirtualCenter 2.0.0 build-27704</fullName>
    <vendor>VMware, Inc.</vendor>
    <version>2.0.0</version>
    <build>27704</build>
    <localeVersion>INTL</localeVersion>
    <localeBuild>000</localeBuild>
    <osType>win32-x86</osType>
    <productLineId>vpx</productLineId>
    <apiType>VirtualCenter</apiType>
    <apiVersion>2.0.0</apiVersion>
    </about>
    <setting type="OptionManager">VpxSettings</setting>
    <userDirectory type="UserDirectory">UserDirectory</userDirectory>
    <sessionManager type="SessionManager">SessionManager</sessionManager>
    <authorizationManager type="AuthorizationManager">AuthorizationManager</authorizationManager>
    <perfManager type="PerformanceManager">PerfMgr</perfManager>
    <scheduledTaskManager type="ScheduledTaskManager">ScheduledTaskManager</scheduledTaskManager>
    <alarmManager type="AlarmManager">AlarmManager</alarmManager>
    <eventManager type="EventManager">EventManager</eventManager>
    <taskManager type="TaskManager">TaskManager</taskManager>
    <customizationSpecManager type="CustomizationSpecManager">CustomizationSpecManager</customizationSpecManager>
    <customFieldsManager type="CustomFieldsManager">CustomFieldsManager</customFieldsManager>
    <diagnosticManager type="DiagnosticManager">DiagMgr</diagnosticManager>
    <licenseManager type="LicenseManager">LicenseManager</licenseManager>
    <searchIndex type="SearchIndex">SearchIndex</searchIndex>
    </returnval>
    </RetrieveServiceContentResponse>
    </soapenv:Body>
    </soapenv:Envelope>
    However, the BPEL logs don't show any trace of BPEL receiving the response. The only thing that happens is the timeout.
    If I remove the HeaderHandler properties from the partnerlink, BPEL receives the response from the remote web service ok, and continues with further invocations of operations. However, we do need to maintain state accross invocations, so need to use header handlers.
    I have managed to get this code working on bpel 10.1.2.0.2 dev install, and thought the problem was due to setting the pl property httpKeepAlive to true, which appeared to modify the request to use http 1.1, from http 1.0. I set httpKeepAlive to false and it started working.
    Now that I've deployed to BPEL on 10g apps server (10.1.2.0.2) the problem has come back again.
    I have tried to ensure that everything is identical (classes being used etc), but cannot resolve the problem.
    Can anyone help?
    Toby

    We have resolved this problem now, and a couple of things were creating the problem.
    1st, httpKeepAlive property of true on the partnerlink resulted in a request being sent to the webservice, but no response being received. We set it to false as the outbound header class modifies the header to include a http keepalive of true.
    2nd, requests were going through a proxy server, and this was affecting things. Once we disabled the proxy server for the apps server where the requests were originating, the process worked.
    Thank.
    Toby

  • Correlation in parallel flow

    Hi,
    I have a problem with the following scenario:
    My BPEL process contains a flow. Within this flow there are two parallel asynchronous calls to a subprocess (another BPEL process). Each of the two Invokes is followed by a Receive to get the asynchronous callback from the subprocess. The two parallel calls use exactly the same PartnerLink and operation.
    I added correlation sets to each of the asynchronous calls to address the problem with a “Conflicting Receive”. I create unique correlation id’s by calling a web service.
    The problem I meet now is that the process containing the parallel calls does not continue after the subprocess instances finished and “called back”. The Receives continue waiting for a callback.
    Can someone tell me if the scenario I created is possible in BPEL or what might cause the problem?

    The BPEL Specification version 1.1 says the following:
    "If during the execution of a business process instance, two or more receive activities for the same partner link, portType, operation and correlation set(s) are in fact simultaneously enabled, then the standard fault bpws:conflictingReceive MUST be thrown by a compliant implementation."
    Therefore it should be correct to use correlation in the scenario described above.
    Unfortunately the scenario cannot be run even with Correlation Sets. One of the Receives in the BPEL process calling the subprocesses is canceled and the whole process fails at runtime.
    Any ideas? Thanks in advance.

  • Behaviour of EDN in RC3

    Having worked with RC3 of SOA Suite 11g, particularly the new EDN features, I have come across the following issues:
    The use case I am trying to model is that I have, for example, three orders. The first is for the physical installation of a telephone line, and the other two are for services. These orders were all raised at different times and are only connected by virtue of the fact that they are for the same customer using the same telephone number. The dependency between the orders is relevant only at a certain point, i.e. the service orders can only be tested end-to-end when the line has been installed. I therefore have three ongoing order processes, where the line order will at some stage raise the Line Installed event, with the other two order processes waiting. The correlation id is, for argument's sake, the telephone number.
    When subscribing to specific events in a BPEL process I cannot use the correlation set mechanism to have multiple instances of the same process waiting for the same event with the same correlation id, in this instance the telephone number. I get the following error:
    +Conflicting receive. A similar receive activity is being declared in the same process. Another receive activity or equivalent (currently, onMessage branch in a pick activity) has already been enabled with the partnerLink "", operation name "" and correlation set "{{http://xmlns.oracle.com/TestApp/EventListen/ProcessRequest/correlationset}TelephoneNumber={http://xmlns.oracle.com/TestApp/EventListen/ProcessRequest/correlationset}TelephoneNumber=115}" (or conversation ID). Appendix A - Standard Faults in the BPEL 1.1 specification specifies a fault should be thrown under these conditions. Redeploy the process after removing the conflicting receive activities.+
    This means I cannot have any master/detail coordination events where the key is, for example, the common order id. While this is understandable from the point of view of correlations - which are designed to support bilateral conversations - it is no good for the more generic event processing where multiple identical subscribers exist for a single event.
    A further downside of using the existing correlation functionality is that I need to initiate the correlation set with an invoke before I can subscribe to the event in a receive. This underlines the conversational nature of the design, whereas an event subscription, even for a specific key, can be entirely disconnected.
    My question now is: am I missing something or should this functionality be amended (I understand that EDN for BPEL will not actually make it to the first GA release)?
    Further to that, for a mediator component, which subscribes to an event, I can only define a filter based on the event payload. What I am looking for is a way where the event subscription takes an additional variable carrying values which can be used to construct the filter statement, e.g. an order number. It may be possible to do this, but I haven't seen any way how to.

    This is an interesting post from a design pattern perspective. I'm not sure what Oracle will say, although I think the nature of an event and event payload should remain disconnected from a particular component implementation requirement (such as BPEL correlation); however, I think there should be utilities and pattern support in the Mediator component (see below).
    Here's a couple thoughts:
    1. One potential workaround would be to have the three orders (in your example), write the telephone number and say the unique ID of the process instance to a custom database table (before the async Receive activity that is). Base the correlation set on the multi-part key (telephone number + process unique ID). Write the Mediator component that is fired by the LineInstalled event so that it looks up all the process instances that relate to the telephone number (from the event payload) and calls each of the three (i.e. correlated with the appropriate process ID). Each re-hydrated process should then delete the respective row from the lookup table...
    2. Oracle should make a fan-out pattern of #1 easy by providing a seeded lookup service or embedded function (that can be called by a mediator or other component) that returns from the BPEL store, all -ACTIVE- instances that match a partial-correlation key, etc.
    (Maybe this pattern and utility function exists already -- I am far from a Mediator expert...)
    -Todd

  • Correlation and multiple branches with flowN

    Hi All,
    I would like to ask a question about correlation.I am trying to spawn "n" processes (Process B) from a master process(Process A), and than collect the responses from these instances.I have an array as an input to Process A, and have a flowN activity.In this activity,I simply perform an assign(to assign the varible in the array by an index, to the input variable of invoke), an invoke and a receive activities.
    I have added correlation to the invoke as initiate correlation, and I added the same set to the receive activity.When I run the sample, unfortunately I get "Cannot initiate a correlation set more than once." error and the process is cancelled.In fact, the values for each array iteration is different, so I would expect to initiate n correlations for my waiting receive activities.
    Am I doing something wrong or isn't that the way it has to be done?

    No, I have inserted a scope into flowN sequence and defined a scope variable to use.From the audit trail, I can see I have successfully assigned the array variable to the scope variable.For an input of 2 list elements,the first flowN branch is successfully completed but the second branch has a faulted invoke with the message:
    "Cannot initiate a correlation set more than once."
    If I remove the correlation sets from the invoke and receive and leave the correlation to BPEL Engine, I get the following message:
    Conflicting receive.
    Another receive activity or equivalent (currently, onMessage branch in a pick activity) has already been enabled with the partnerLink "CalleeProcess", operation name "onResult" and correlation set "" (or conversation id). Appendix A - Standard Faults in the BPEL 1.1 specification specifies a fault should be thrown under these conditions.
    Message was edited by:
    Caglar Kara

Maybe you are looking for