Hi Will,

ODE distinguishes between faults and failures. Faults are typically
faults with a business meaning, declared and/or expected exceptions etc.
and are SOAP faults during runtime. Failures are things unexpected
things that happen on a transport/runtime level, like timeouts, network
fragmentation etc. When such a failure occurs, the connected activity
goes into a failed stated. This means the process instance is suspended
until the activity is recovered. This can be done via the Process
Management API (retry, cancel, fault). The failureHandling extension can
be used to avoid this by setting a recovery default. In your example,
you're translating a failure into a fault. This fault can then be
handled by BPEL's fault handler. So if I understood your question
correctly, this is the intended behavior.

HTH,
  Tammo

On 08.12.2010 15:21, Will Darby wrote:
> Hello,
> 
> I ran into issues detecting faults raised during synchronous invoke 
> operations.
> 
> Specifically,  during the BPEL script below if I get a
> 
> <soapenv:Fault  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> 
> It is suppressed by the invoke operation, which eventually times out. I can 
> work around this by adding:
> <ext:failureHandling xmlns:ext="http://ode.apache.org/activityRecovery";>
>    <ext:faultOnFailure>true</ext:faultOnFailure>
> </ext:failureHandling>
> 
> But the documentation indicates that this is not required. I looked through 
> Jira, but didn't see this issue reported. Is this expected behavior or should 
> I write up the issue?
> 
> <bpel:faultHandlers>
>   <bpel:catch faultName="sfWsdl:CreateException"
>                          faultVariable="createEx" 
> faultMessageType="sfWsdl:ExceptionMsg">
>     <bpel:sequence>
>       ...
>     </bpel:sequence>
>   </bpel:catch>
>  <bpel:catchAll>
>      ...
>    </bpel:catchAll>
> </bpel:faultHandlers>
> 
> <bpel:sequence>
>   <bpel:invoke name="sendFusionCreateRqst"
>                        partnerLink="SafariFusionOssLink"
>                        portType="sfWsdl:FusionOssPort"
>                        operation="create"
>                        inputVariable="sndCreateRqst"
>                        outputVariable="sndEditResp"/>
> </bpel:sequence>
> 
> Thanks
> - Will Darby
> 
> 

-- 
Tammo van Lessen - http://www.taval.de

Reply via email to