Hello,
(2nd try - the first message yesterday resulted in errors because the attachments were too large)
BPEL Newbie. I am trying to model an asynchronous process using explicit correlation to facilitate the callback.I tried to adapt the
Explicit correlation sampleto correlate on business data (retrieval id) but get the following error on invocation after a successful deployment:
14:22:20,485 ERROR [PICK] org.apache.ode.bpel.common.FaultException: Correlation not initialized.
14:22:30,206 WARN [ODEAxisDispatcher] No operation has been found!
I thought I was initializing the correlation (see steps below) but I must be doing something wrong or
left something out. Any help would be very much appreciated! Project is attached.
Overall process:
- Client invokes data process via xform by providing a last name and first name
- The data process synchronously invokes an external web services to retrieve the balance and gets a
retrieval id that will be used to explicitly correlate the result when it gets returned
(potentially much later)
- The data process notifies the client of the retrieval id/retrieval status and in parallel
waits to receive the correlated retrieval result.
- The client is notified of the result.
Explicit correlation steps:
- Declare BPEL property for retrievalId under Data Editor, right-hand side, DataProcess, DataProcess namespace:
<vprop:property name="RetrievalId" type="xs:string">
- On Data Editor, left-hand side, Data Process, declarations, create a correlation set for Retrieval Id
<bpel:correlationSet name="RetrievalId-corr" properties="this:RetrievalId">
- Data Process/declarations, $tnsRetrievalInitResponseMsg RetrievalInitResponse RetrievalId Text created
BPEL alias for RetrievalId
<vprop:propertyAlias propertyName="this:RetrievalId" messageType="tns:RetrievalInitResponse" part="RetrievalInitResponse">
<vprop:query>RetrievalId/text()</vprop:query>
</vprop:propertyAlias>
- Data Process/declarations, $thisGet_Retrieval_ResultRequestMsg body RetrievalId Text created BPEL alias
for RetrievalId
<vprop:propertyAlias propertyName="this:RetrievalId" messageType="this:Get_Retrieval_ResultRequest" part="body">
<vprop:query>RetrievalId/text()</vprop:query>
</vprop:propertyAlias>
- Data Process/sequence, Initialize Retrieval incoming for $tnsRetrievalInitResponseMsg dragged and dropped
correlation set from declarations and set initiate to yes (first incoming)
<bpel:correlation set="RetrievalId-corr" initiate="yes"></bpel:correlation>
- Data Process/sequence, first Gateway Parallel, Flow, second sequence, Get Retrieval Result, incoming for
$thisGet_Retrieval_ResultRequestMsg, dnd correlation set from declarations and set initiate to no
<bpel:correlation set="RetrievalId-corr" initiate="no"></bpel:correlation>
I tried to explicitly correlate after being unable to invoke the Get Retrieval Result via SoapUI (from the
build/processes/DataProcess-DataProcess.wsdl) and getting the following error so maybe there are some other
issues. Is that the right WSDL location?
13:23:25,598 ERROR [ODEService] Timeout or execution error when waiting for response to MEX {MyRoleMex#65562 [Client fac0d4ae-f6b3-48c6-838f-80ace03815fd-7] calling {http://example.com/processes/DataProcess/DataProcess}CanonicServiceForData.Get_Retrieval_Result(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@3d67a7 timed out when waiting for a response!
I searched the forums but didn't find anything related. Any pointers/help would be very much appreciated.
Thanks for your help,
Markus
