Parallel flow using same Partnerlink

Hi all,
This is what i'm trying to do: i have a process that splits up in two parallel processes which are EXACTLY the same (only input differs very slightly). Later on these processes converge again to one.
So, I decided to build a process A that calls upon process B twice, using flow to have it in parallel. I realized I had to do something about getting the receive right. The thing to use looks to be the Correlation Set. However, Correlation set documentation is very meagre. I can't seem to understand the working of the 109.CorrelationSets example, as it looks to use a double correlation (?). It just confuses me.
I really need some help here, and would appreciate a very simple working example.
What I really need to know is:
- what steps to take (BPELDEV guide isn't enough help)
- where to place correlation (on invoke or receive in process A ?, on receive or reply in process B?)
- how to set the correlation value, or is it always derived on the basis of the "query" in the bpws:PropertyAlias?
Thanks in advance!

Hi,
This is probably related to the fact that you cannot have two concurrently enabled activities with the same partner link, operation, and correlation set (this constraint can be found in the BPEL spec.) The correlation sets won't help you here because correlation sets are there to do instance routing (i.e. route an inbound message to the right process instance) but the problem here is not to route to the right process instance, but to route to the appropriate "receive" action... If there are two competing receive actions, the engine just go nuts, and this is why the above constraint was introduced in the BPEL spec.
One way to go around (assuming that the interaction between A and B is based on asynchronous send/receive), is to first send the two messages in a flow, and then wait for the response with a single receive (rather than two separate receive actions). Something like this:
<sequence>
<flow>
<invoke (send asynchronous message to B), no output variable here!>
<invoke (send asychrnous message to B), again, no output variable here!>
</flow>
set variable counter to 1
<while counter <= 2>
<receive one message from B>
increment variable counter by 1
</while>
</sequence>
With a colleague, we have written a more complicated version of this scenario, where we effectively can receive messages through the same partner link not from 2 process instances, but from any arbitrary number of process instances. See http://www.serviceinteraction.com and download the code sample for "one-to-many send/receive with dynamically determined partners".
I can send you the full Oracle BPEL project for this example if you think it would help. But I think that with the above information you should be able to proceed.
Regards
Marlon Dumas (m . dumas @ qut . edu . au)

Similar Messages

  • Pb with 2 parallel VIs using same DLL

    Hy group!
    I have two VI running simultaneously.
    The first acess to a DLL every 500 ms.
    The second has to use the DLL randomly but can't do this because the DLL
    seems to be locked by the first so the second is blocked as long as the
    first is running.
    I'm very surprised by this behaviour and I suppose there is a solution to
    use a same DLL simultaneously by two VI otherwise using DLL in LabView lose
    interest.
    Does somebody know how to do this?
    Thanks!

    Hy
    Sorry, my application is big now and I had changed the input of a Wait Until
    Done of Run VI attribute node to TRUE.
    Greg McKaskle a écrit dans le message <[email protected]>...
    >> I have two VI running simultaneously.
    >> The first acess to a DLL every 500 ms.
    >> The second has to use the DLL randomly but can't do this because the DLL
    >> seems to be locked by the first so the second is blocked as long as the
    >> first is running.
    >
    >First off, make sure that the DLL call, the Call Library Function node,
    >is marked as being reentrant. Set this by double clicking or popping
    >up on the node and in the dialog there is a setting for reentrancy.
    >
    >Nonreentrant DLL calls automatically get protected by LV from parallel
    calls,
    >and they are colored o
    range.
    >
    >Reentrant DLL calls are allowed to have any number of calls in them at
    once.
    >It is up to the DLL to protect globals or any other resources that must
    >be mutexed. They are drawn in yellow like other nodes on the diagram.
    >
    >The same color and reentrancy issues exist for CINs, but the setting for
    >whether or not they are reentrant isn't in a dialg, but in a callback to
    >the CIN; so CINs must be recompiled to go from one to the other.
    >
    >Greg McKaskle

  • Dynamic Split Join:Parallel flow using OSB

    Hi,
    I am implementing a dynamic split join in OSB,where in the for -loop i am invoking a database adapter.
    If I select parallel='yes' in the for-loop settings, I get a random number of records from the database as an output.
    While on the other hand, on running the for-loop sequentially, i get the exact number of records i am expecting.
    Could anybody figure out why is this happening?
    Regards,
    Tarun

    If I understand correctly, this is what you are doing:
    Configure a For loop based on a repeating element in source XML (for ex. for each customer id in xml message).
    Inside each loop you are making a DB lookup and getting one record for each element (for ex. customer details of each customer id)
    Finally you are aggregating them in the same variable (join)
    The problem that you see is that if you do it in parallel then you do not see details of all customers in the out variable?
    If yes, then can you please let me know how you are updating the details of each record in the out variable.

  • How to use parallel flowed subforms begining at the same position.

    How to use parallel flowed subforms begining at the same position in my form.
    Ex
    Subform1
    Subform2
    Subform3
    DropDownList1
    DropDownList1
    DropDownList1
    I would like to repeat  with a button the 3 subforms in parallel
    Subform1
    Subform2
    Subform3
    DropDownList1
    DropDownList1
    DropDownList1
    Subform1
    Subform2
    Subform3
    DropDownList1
    DropDownList1
    DropDownList1

    Post your question in the LiveCycle Designer forum.

  • HT4818 Can you use both Bootcamp and Parallels with the same Windows 7 installed

    I have Parallels installed with Windows 7.  Can I use both Bootcamp and Parallels on the same machine depending on whether I just want to work in Windows all day (Bootcamp) or alternate during the same session (Parallels)?

    You can, yes. But there is a complication: once you activate windows it will only be activated for one of the two methods you use. So, let's say you install into boot camp and activate windows. You can then install Parallels and it will find your boot camp installation, but when running in Parallels, Windows will report that it is not activated. Or, you can activate it in Parallels and when running in Boot Camp Windows will report that it is not activated. The reason for this is because Windows thinks it is running on different computers depending on how you boot it. This may not be an issue for you if you run Windows a lot one way and just occasionally the other way, so be sure to activate Windows in whichever method you use more often. Hope this helps!

  • Are the Tcodes which we use for work flow are same in ecc and crm

    Are the Tcodes which we use for work flow are same in ecc and crm

    Yes they are! the same enjoy!
    Regards
    Tatenda I H Chaibva!

  • I cant text flow using 3 different text files on the same document?????

    Im starting out with 3 different files of text saved as "tab delimited text" from excel, I open a document in ID with 107 pages and create 3 boxes in the master on top of a pdf. I then override all 107 pages so that the text I insert will flow to the next page and so on, once I paste the 2nd text file into the next text frame it skips the original 107 files and starts flowing into new pages. Im ready to pull my hair out, I have been trying to figure this out for 2 hours. I dont know what to do at this point. I think Im getting a migraine.
    I would have done a data merge on 2 of the files but the third HAS to be text flow (which gives me the same problem above) because it has to be physically changed to fit each page.

    Are you Placing the text from an external file, or pasting it from the clipboard?
    If Placing, move the loaded cursor inside one of the master frames on the first page, hold down the Shift key and click, being sure the cursor is not on any sort of guide. The entire text file will flow using the master text frames, and ID will add all the require pages to place all the text.
    If pasting, you can either override the frame on the first page only, or make a temporary first frame on the pasteboard. Paste into this frame, which will result in a red plus sign in the bottom right corner of the text frame indicating overset text. Switch to the Selection tool (black arrow) and click on the plus sign to pick up the overset text. Hover the new loaded cursor over the frame on the second page, or over the first page as above if you used a temporary frame, hodl the Shift key and click. Delete the temporary frame, if you used one, and the text will reflow to start in the first real frame, but you may have to pick up overset again in the last frame due to the reflow.

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

  • Calling Asynch Service in a Parallel Flow (FlowN)

    Hi,
    In one of the processes, we have a requirement to call an Asynch Service within parallel flow, meaning that, the same Asynch Service would be called several times, with different payload, dependent on the number of lines, which is decided during the run time. When this Async Service is called, the expectation is, after the flow is completed, it will call back the exact location, where the call was made from, to the corresponding line.
    This second Asynch Service is also depicted by a BPEL process. When we have multiple such calls made, the Receive after the invoke from the main process, fails, with the following message:
    <conflictingReceive>
    <part name="summary" >
    <summary>Conflicting receive. Another receive activity or equivalent (currently, onMessage branch in a pick activity) has already been enabled with the partnerLink "MobileNumberPortabilityService", 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. </summary>
    </part>
    </conflictingReceive>
    When I looked into the conversation id of the sub-process, the conversation id seems to be the same for every process which got initiated as follows:
    bpel://localhost/default/ROTelcoNewOrder~1.0/7358-BpInv14-BpSeq31.330-2
    Given this scenario, how would the sub-process know to call back the exact instance (within the parallel flow), where the call came from, so that it can exactly join the location. Does it require a different kind of implementation, for parallel flows, please..
    Any pointers or guidelines, please..
    Thanks and Regards,
    Vijay.

    Vijay,
    this may be caused by a bug in the FlowN (bugnumber 4944123), where the values used on the invokes are the same for all the calls. For an asynchronous call, this can be bypassed by making two loops based on the number of lines (loop 1 for invoke, loop 2 for receive). That way you won't have any trouble with the correlation as well.
    Hth,
    Mike

  • Cancelling an async call in parallel flow activity

    Hi all,
    As known, each branch of a parallel flow activity must be completed for rest of the BPEL execution continues. Let me expose a scenario:
    Imagine you need to get the current market value of the euro. You have 3 different sources of information that deliver the same result. Using parallel flow activity, you perform calls to these 3 sources. Once the first source calls back, it´s not necessary to wait for the others callback, because you already have the information that you need in your hands. How can I cancel the other waiting async calls? In WLI, we set up the parallel flow as AND or OR type. Using AND (+) means that all branch must be completed so that the process continues. Using OR (-) means that once the first branch is finished, the others will be ignored (cancelled) and the process continues. How can I get the same feature in BPEL?

    Hi Gustavo,
    There may be easier way to do this, but somehow it's not striking at the moment. In the meantime, you can try the following and see. If i get more robust and easier solution, i'll post it here.
    Just thinking aloud here:
    1) Throw a fault e.g. ResponseRecieved in each branch as soon as the branch recieves a response. The fault has to be handled in a fault handler associated with a scope containing the parallel flow. You can leave the fault handler "empty" (no-oos) and proceed with the rest of the activities.
    The above should allow the control to proceed with the activities next to the flow.
    OR
    2) In each flow, as soon as you receive a response after receive activity, invoke a callback port type of the rest of the asynchronous calls and send a dummy callback message. This should mark the completion of the receive activities in other branches. I think correlaiton needs to be handled here.
    Please try if you have not already done so and let me know.
    Thanks-
    www.ibiztrack.com
    BPEL/ESB Training:
    http://www.ibiztrack.com/html/oracle-bpel-soa-training.html

  • Parallel Flow invokes async services with incorrect parameters

    Hi
    I'm calling an async service using 2 partnerlinks in a parallel flow.
    The input variables are being assigned correctly but one of the invokes is using the wrong values.
    The problem appears to be around the use of a shared variable (Invoke_initiate_InputVariable) that is 'copied' to each of the invoke variables
    On invocation both services are iincorrectly nvoked with:
    <Invoke_initiate_InputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <HumanTaskProcessRequest xmlns="http://itv.com/HumanTask">
                   <Production/>
                   <HumanTask>
                        <Title>Title2</Title>
                        <Priority>2</Priority>
                        <UserGroups>STC</UserGroups>
                   </HumanTask>
              </HumanTaskProcessRequest>
         </part>
    </Invoke_initiate_InputVariable>
    I can get the process to work if I remove all references to the variable Invoke_initiate_InputVariable - can anyone explain this behaviour?
    Example BPEL code:
    <process name="ParallelTest" targetNamespace="http://itv.com/ParallelTest"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:ns1="http://itv.com/HumanTask"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:client="http://itv.com/ParallelTest"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
    <partnerLinks>
    <partnerLink name="client" partnerLinkType="client:ParallelTest"
    myRole="ParallelTestProvider"
    partnerRole="ParallelTestRequester"/>
    <partnerLink myRole="HumanTaskRequester" name="HumanTask_1"
    partnerRole="HumanTaskProvider"
    partnerLinkType="ns1:HumanTask"/>
    <partnerLink myRole="HumanTaskRequester" name="HumanTask_2"
    partnerRole="HumanTaskProvider"
    partnerLinkType="ns1:HumanTask"/>
    </partnerLinks>
    <variables>
    <variable name="inputVariable"
    messageType="client:ParallelTestRequestMessage"/>
    <variable name="outputVariable"
    messageType="client:ParallelTestResponseMessage"/>
    <variable name="Invoke_initiate_InputVariable"
    messageType="ns1:HumanTaskRequestMessage"/>
    <variable name="Invoke_1_initiate_InputVariable"
    messageType="ns1:HumanTaskRequestMessage"/>
    <variable name="Invoke_2_initiate_InputVariable"
    messageType="ns1:HumanTaskRequestMessage"/>
    <variable name="Receive_1_onResult_InputVariable"
    messageType="ns1:HumanTaskResponseMessage"/>
    <variable name="Receive_2_onResult_InputVariable"
    messageType="ns1:HumanTaskResponseMessage"/>
    </variables>
    <sequence name="main">
    <receive name="receiveInput" partnerLink="client"
    portType="client:ParallelTest" operation="initiate"
    variable="inputVariable" createInstance="yes"/>
    <assign name="Assign_2">
    <copy>
    <from expression="'A Title'"/>
    <to variable="Invoke_initiate_InputVariable" part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
    </copy>
    <copy>
    <from expression="5"/>
    <to variable="Invoke_initiate_InputVariable" part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
    </copy>
    <copy>
    <from expression="'GRA'"/>
    <to variable="Invoke_initiate_InputVariable" part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
    </copy>
    </assign>
    <flow name="Flow_1">
    <sequence name="Sequence_1">
    <assign name="Assign_1">
    <copy>
    <from variable="Invoke_initiate_InputVariable"/>
    <to variable="Invoke_2_initiate_InputVariable"/>
    </copy>
    <copy>
    <from expression="'Title2'"/>
    <to variable="Invoke_2_initiate_InputVariable"
    part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
    </copy>
    <copy>
    <from expression="2"/>
    <to variable="Invoke_2_initiate_InputVariable"
    part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
    </copy>
    <copy>
    <from expression="'STC'"/>
    <to variable="Invoke_2_initiate_InputVariable"
    part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
    </copy>
    </assign>
    <invoke name="Invoke_2" partnerLink="HumanTask_2"
    portType="ns1:HumanTask" operation="initiate"
    inputVariable="Invoke_2_initiate_InputVariable"/>
    <receive name="Receive_2" partnerLink="HumanTask_2"
    portType="ns1:HumanTaskCallback" operation="onResult"
    variable="Receive_1_onResult_InputVariable"
    createInstance="no"/>
    </sequence>
    <sequence name="Sequence_1">
    <assign name="Assign_1">
    <copy>
    <from variable="Invoke_initiate_InputVariable"/>
    <to variable="Invoke_1_initiate_InputVariable"/>
    </copy>
    <copy>
    <from expression="'Title1'"/>
    <to variable="Invoke_1_initiate_InputVariable"
    part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
    </copy>
    <copy>
    <from expression="3"/>
    <to variable="Invoke_1_initiate_InputVariable"
    part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
    </copy>
    <copy>
    <from expression="'NTC'"/>
    <to variable="Invoke_1_initiate_InputVariable"
    part="payload"
    query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
    </copy>
    </assign>
    <invoke name="Invoke_1" partnerLink="HumanTask_1"
    portType="ns1:HumanTask" operation="initiate"
    inputVariable="Invoke_1_initiate_InputVariable"/>
    <receive name="Receive_1" partnerLink="HumanTask_1"
    portType="ns1:HumanTaskCallback" operation="onResult"
    variable="Receive_2_onResult_InputVariable"
    createInstance="no"/>
    </sequence>
    </flow>
    <invoke name="callbackClient" partnerLink="client"
    portType="client:ParallelTestCallback" operation="onResult"
    inputVariable="outputVariable"/>
    </sequence>
    </process>

    Thanks Marc, I've done what you suggested but it hasn't fixed the problem.
    Here is the updated process with scopes and local variables:
    <process name="ParallelTest" targetNamespace="http://itv.com/ParallelTest" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ns1="http://itv.com/HumanTask" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:client="http://itv.com/ParallelTest" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
         <partnerLinks>
              <partnerLink name="client" partnerLinkType="client:ParallelTest" myRole="ParallelTestProvider" partnerRole="ParallelTestRequester"/>
              <partnerLink myRole="HumanTaskRequester" name="HumanTask_1" partnerRole="HumanTaskProvider" partnerLinkType="ns1:HumanTask"/>
              <partnerLink myRole="HumanTaskRequester" name="HumanTask_2" partnerRole="HumanTaskProvider" partnerLinkType="ns1:HumanTask"/>
         </partnerLinks>
         <variables>
              <variable name="inputVariable" messageType="client:ParallelTestRequestMessage"/>
              <variable name="outputVariable" messageType="client:ParallelTestResponseMessage"/>
              <variable name="Invoke_initiate_InputVariable" messageType="ns1:HumanTaskRequestMessage"/>
              <variable name="Receive_1_onResult_InputVariable" messageType="ns1:HumanTaskResponseMessage"/>
              <variable name="Receive_2_onResult_InputVariable" messageType="ns1:HumanTaskResponseMessage"/>
         </variables>
         <sequence name="main">
              <receive name="receiveInput" partnerLink="client" portType="client:ParallelTest" operation="initiate" variable="inputVariable" createInstance="yes"/>
              <assign name="Assign_2">
                   <copy>
                        <from expression="'A Title'"/>
                        <to variable="Invoke_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
                   </copy>
                   <copy>
                        <from expression="5"/>
                        <to variable="Invoke_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
                   </copy>
                   <copy>
                        <from expression="'GRA'"/>
                        <to variable="Invoke_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
                   </copy>
              </assign>
              <flow name="Flow_1">
                   <sequence name="Sequence_2">
                        <scope name="Scope_2">
                             <variables>
                                  <variable name="Invoke_2_initiate_InputVariable" messageType="ns1:HumanTaskRequestMessage"/>
                             </variables>
                             <sequence name="Sequence_2">
                                  <assign name="Assign_1">
                                       <copy>
                                            <from variable="Invoke_initiate_InputVariable"/>
                                            <to variable="Invoke_2_initiate_InputVariable"/>
                                       </copy>
                                       <copy>
                                            <from expression="'Title2'"/>
                                            <to variable="Invoke_2_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
                                       </copy>
                                       <copy>
                                            <from expression="2"/>
                                            <to variable="Invoke_2_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
                                       </copy>
                                       <copy>
                                            <from expression="'STC'"/>
                                            <to variable="Invoke_2_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
                                       </copy>
                                  </assign>
                                  <invoke name="Invoke_2" partnerLink="HumanTask_2" portType="ns1:HumanTask" operation="initiate" inputVariable="Invoke_2_initiate_InputVariable"/>
                                  <receive name="Receive_2" partnerLink="HumanTask_2" portType="ns1:HumanTaskCallback" operation="onResult" variable="Receive_2_onResult_InputVariable" createInstance="no"/>
                             </sequence>
                        </scope>
                   </sequence>
                   <sequence name="Sequence_1">
                        <scope name="Scope_1">
                             <variables>
                                  <variable name="Invoke_1_initiate_InputVariable" messageType="ns1:HumanTaskRequestMessage"/>
                             </variables>
                             <sequence name="Sequence_3">
                                  <assign name="Assign_1">
                                       <copy>
                                            <from variable="Invoke_initiate_InputVariable"/>
                                            <to variable="Invoke_1_initiate_InputVariable"/>
                                       </copy>
                                       <copy>
                                            <from expression="'Title1'"/>
                                            <to variable="Invoke_1_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
                                       </copy>
                                       <copy>
                                            <from expression="3"/>
                                            <to variable="Invoke_1_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
                                       </copy>
                                       <copy>
                                            <from expression="'NTC'"/>
                                            <to variable="Invoke_1_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
                                       </copy>
                                  </assign>
                                  <invoke name="Invoke_1" partnerLink="HumanTask_1" portType="ns1:HumanTask" operation="initiate" inputVariable="Invoke_1_initiate_InputVariable"/>
                                  <receive name="Receive_1" partnerLink="HumanTask_1" portType="ns1:HumanTaskCallback" operation="onResult" variable="Receive_1_onResult_InputVariable" createInstance="no"/>
                             </sequence>
                        </scope>
                   </sequence>
              </flow>
              <invoke name="callbackClient" partnerLink="client" portType="client:ParallelTestCallback" operation="onResult" inputVariable="outputVariable"/>
         </sequence>
    </process>

  • Parallel Flow in BPEL not working.

    We are using 10.1.3.4.We have a designed a process in bpel where we have parallel flows .Each flow has an invoke activity that calls an external service.
    Each partnerlink has property "nonBlockingInvoke" specified.
    We have also added the property in bpel.xml as below:
    <configurations>
    <property name="inMemoryOptimization">true</property>
    <property name="completionPersistPolicy">faulted</property>
    <property name="completionPersistLevel">All</property>
    </configurations>
    Now after adding the above property along with property "nonBlockingInvoke" specified for each partnerlink we are getting a timeout error.
    once I remove the configuration property it works .Even if we remove the nonBlockingInvoke property then it works.But unfortunately as per our requirement we need parallel processing and inMemory optimisation both.
    Any help on this regards will be highly appreciated.
    my bpel.xml
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <BPELSuitcase>
    <BPELProcess id="SyncParallelFlow" src="SyncParallelFlow.bpel">
    <partnerLinkBindings>
    <partnerLinkBinding name="client">
    <property name="wsdlLocation">SyncParallelFlow.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="BPELTest1">
    <property name="wsdlLocation">BPELTest1Ref.wsdl</property>
    <property name="nonBlockingInvoke">true</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="BPELTest2">
    <property name="wsdlLocation">BPELTest2Ref.wsdl</property>
    <property name="nonBlockingInvoke">true</property>
    </partnerLinkBinding>
    </partnerLinkBindings>
    <configurations>
    <property name="inMemoryOptimization">true</property>
    <property name="completionPersistPolicy">faulted</property>
    <property name="completionPersistLevel">All</property>
    </configurations>
    </BPELProcess>
    </BPELSuitcase>

    Well, remember inMemoryOptimization works only for Synchronous-Transient (Without any dehydration in between) processes.
    When you set nonBlockingInvoke=true, then each invoke happens in a seperate thread/transaction, which forces dehydration in the process.
    That's the reason in your case it's not working.
    Hope this explains.
    Thanks-
    [email protected]
    http://www.ibiztrack.com

  • Can Bootcamp and Parallels share the same Windows applications and data?

    I'm looking at getting an Intel iMac which will let me throw away my old PC - Yeah!
    I will have a couple of Win apps that I will need to hang on to (Quicken - Quicken for Mac is horrible, but that's another tghread). Anyway, can Bootcamp and Parallels share the same Windows applications and data?
    My thought would be to allow my wife to access Quicken from Parallels and not have to reboot. She will only need lightweight access and the overhead of running virtualization wouldn't impact her. I, on the other hand, would want to occasionally boot natively into Windows and run the same application with the same datafile. Is this possible?
    Thanks and looking forward to joining the MacIntel world!

    Thanks for all of the freplies. I suspected that BootCamp and Parallels could not shar ethe same partition, but wanted to verify. To address some of the other posts:
    Re: Quicken vs MoneyDance - I looked at MoneyDance a while back and while it is comparable to Quicken for Mac, it isn't comparable to Quicken for Windows (ergo, Quicken for Mac isn't comparable to Quicken for Windows!). But, as I said, that is a topic for another thread!
    Re: Using Bootcamp/Parallels for only one app: I actually have several apps that I still need access to on Windows. I work with many business applications than only run/are supported on Windows as well as receive some complex Office documents which Office for Mac cannot handle. Quicken (for Windows 2007) was just the best example of a consumer app where I could see wanting access from both OS X and Windows.

  • How to run multiple CodedUI Ordered Tests over multiple Test Agents for parallel execution using Test Controller

    we are using VS 2013, I need to run multiple Coded UI Ordered Tests in parallel on different agents.
    My requirement :
    Example:   I have 40 Coded UI Test scripts in single solution/project. i want to run in different OS environments(example 5 OS ).  I have created 5 Ordered tests with the same 40 test cases. 
    I have one Controller machine and 5 test agent machines. Now I want my tests to be distributed in a way that every agent gets 1 Ordered test to execute. 
    Machine_C = Controller (Controls Machine_1,2,3,4,5)
    Machine_1 = Test Agent 1 (Should execute Ordered Test 1 (ex: OS - WIN 7) )
    Machine_2 = Test Agent 2 (Should execute Ordered Test 2 (ex:
    OS - WIN 8) )
    Machine_3 = Test Agent 3 (Should execute Ordered Test 3
    (ex: OS - WIN 2008 server)  )
    Machine_4 = Test Agent 4 (Should execute Ordered Test 4 (ex:
    OS - WIN 2012 server) )
    Machine_5 = Test Agent 5 (Should execute Ordered Test 5 (ex:
    OS - WIN 2003 server) )
    I have changed the  “MinimumTestsPerAgent” app setting value
    as '1' in controller’s configuration file (QTController.exe.config).
    When I run the Ordered tests from the test explorer all Test agent running with each Ordered test and showing the status as running. but with in the 5 Test Agents only 2 Agents executing the test cases remaining all 3 agents not executing the test cases but
    status showing as 'running' still for long time (exp: More then 3 hr) after that all so  its not responding. 
    I need to know how I can configure my controller or how I can tell it to execute these tests in parallel on different test agents. This will help me reducing the script execution time. 
     I am not sure what steps I am missing. 
    It will be of great help if someone can guide me how this can be achieved.
    -- > One more thing Can I Run one Coded UI Ordered Test on One Specific Test Agent?
    ex: Need to run ordered Test 1 in Win 7 OS (Test Agent 1) only.
    Thanks in Advance.

    Hi Divakar,
    Thank you for posting in MSDN forum.
    As far as I know, we cannot specify coded UI ordered test run on specific test agent. And it is mainly that test controller determine which coded UI ordered test assign to which test agent.
    Generally, I know that if we want to run multiple CodedUI Ordered Tests over multiple Test Agents for parallel execution using Test Controller.
    We will need to change the MinimumTestsPerAgent property to 1 in the test controller configuration file (QTControllerConfig.exe.config) as you said.
    And then we will need to change the bucketSize number of tests/number of machines in the test settings.
    For more information about how to set this bucketSize value, please refer the following blog.
    http://blogs.msdn.com/b/aseemb/archive/2010/08/11/how-to-run-automated-tests-on-different-machines-in-parallel.aspx
    You can refer this Jack's suggestion to run your coded UI ordered test in lab Environment or load test.
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/661e73da-5a08-4c9b-8e5a-fc08c5962783/run-different-codedui-tests-simultaneously-on-different-test-agents-from-a-single-test-controller?forum=vstest
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Parallel flow

    Hi,
    We have the following requirement. We have a manual task that should be either completed by a user , or if a specified time duration expires it should be automatically completed. We tried using jeopardy notification , but through the jeopardy notification automation we can't use the completeTaskOnExit in order to proceed the task. We also tried using a parallel flow , with the manual task in the first parallel flow and a timer delay on the second parallel flow , but we were not able to complete the manual task in the first parallel flow, when the timer delay expired.
    If you have any experience regarding parallel flows , could you pls help?
    Thanks

    Hi again,
    I am using the following xquery in the jeopardy tab of the automated task :
    declare namespace oms="urn:com:metasolv:oms:xmlapi:1";
    declare namespace context = "java:com.mslv.oms.automation.TaskContext";
    declare namespace automator = "java:oracle.communications.ordermanagement.automation.plugin.ScriptReceiverContextInvocation";
    declare variable $automator external;
    declare variable $context external;
    let $run :=
    <oms:Run>
    automator:setUpdateOrder($automator,"false"),
    context:completeTaskOnExit($context, "next")
    </oms:Run>
    where (fn:exists($run))
    return
    $run/oms:Null
    but i am getting the following error : External object has wrong class (is class com.mslv.oms.automation.OrderNotificationContextBeanLocal, expected interface com.mslv.oms.automation.TaskContext) . If i use the following :
    declare namespace context = "java:com.mslv.oms.automation.OrderNotificationContext"; i cannot use the completeTaskOnExit function in my xquery, and i get the following error :
    Cannot find a matching 2-argument function named {java:com.mslv.oms.automation.OrderNotificationContext}completeTaskOnExit()
    Can you please help?

Maybe you are looking for

  • Mac pro turns on but screen goes black after a while what could be wrong please help!!!

    Hello mac community, I am new, I updated a program today everything was working fine yesterday and now today I was updating PLAY a music engine program it seems to have caused the mac to go crazy. I also updated VE PRO 5 another music program. Everyt

  • Which Graphics Card do I need for H520S

    I have a few questions for you lovely people out there and hope you can help. My son has asked me for a new Graphics card for his PC.(Not a xmas present) On an old post it was suggested that an Nvidia Geforce GT620 1Gb or an AMD Radeon HD7570 2Gb wer

  • Can't edit html snippet

    I have numerous html snippets that work fine. However I can't edit them any more. When I click on the snippet in iWeb I used to get a window with the snippet code to edit. That doesn't happen any more. Same thing for new html snippets: No edit window

  • Printed type much smaller than screen type

    I'm working on a Sawtooth G4 running OS 9.2.2. When I print (SimpleText, Word, Excel) the printed type is much smaller than the designated screen size. For instance, if I print 24-point type, it comes out about 14 or 12. If I print 12, it's about six

  • Premiere Pro CC often crashes when try to render or export "fatal error"

    I rarely had issues on my MacBook Pro with Premiere CC.  I recently purchased the New Mac Pro, installed Premiere, and am often receiving error messages followed by a fatal crash when I try to render and/or export.  Can anyone advise?   Thank you!