Dear both,
Thank you for your answers. Sorry I forgot to mention that I am using
version 1.3.7.
Failure recovery:
In Apache ODE you could recover an invoke activity that has failed to
reach the partner web-service (connection error etc.). The case I wanted
to handle is that I want to retry the invoke when the web-service
returns an Exception (Fault in SOAP message).
In such cases Apache ODE marks the instance as "FAILED" and the
processing stops. I changed the fault handling and now I am able to
handle faults as failures (retry or manually recover). The
implementation cover my needs, but I just wanted to ask why isn't this
the default behavior.
Custom variable:
In our flows we have an id for every call that we do on a BPEL flow.
Think of it as an order ID for purchasing some product. We would like to
make it possible to search instances based on this ID, by showing it on
the ODE console or somehow associate it with the instance. If you are
familiar with Oracle's BPEL solution I would like to have something like
"CompositeInstanceTitle". Since I made some progress on this, the case
is that I want to return an extra value on "listInstancesSummary" SOAP
call. Until now, I have added an extra column in ODE_PROCESS_INSTANCE
(we are using the OpenJPA solution) table and updated the corresponding
DAO and Filter, so I am able to filter the instances based on this
column. The remaining tasks are to retrieve this value through
"listInstancesSummary" (not so important) and, most importantly, to be
able to persist this value, which will be retrieved by the message
(payload). Am I going to be able to create some variable, associated
with this column, which I will be able to set it through a BPEL flow?
Again thank you both for your responses and for supporting Apache ODE.
BR,
Dimitris
<mailto:[email protected]>
On 05/10/2017 01:58 μμ, Sathwik B P wrote:
Dimitris,
Good to know you are using ODE.
1) If the invoke fails, it will be registered with activity recovery and
can be retried manually. Or if you want automatic retries, follow Stan's
instructions on activity recovery and failure.
Would you kindly explain the scenario that resulted in making changes to
the code?
You haven't clarified which version of ODE are you on. ODE 1.3.7 uses a new
console which actually uses the PMAPI webservice (pmapi.wsdl) to retrieve
all the information.
2) What do you mean by custom variable?
Just a clarification, ODE doesn't do any data cleanup until its explicitly
configured in deployment descriptor.
regards,
sathwik
On Thu, Oct 5, 2017 at 1:59 PM, Stan Angeloff <[email protected]>
wrote:
Hi there, fellow ODE user here. I'll try and chime in.
You should be able to recover a BPEL invoke activity using the
following template:
<!-- http://ode.apache.org/extensions/activity-failure-
and-recovery.html -->
<bpel:invoke name="emailInvokeSendDeliverTemplate"
inputVariable="variableEmailDeliverTemplateIn"
outputVariable="variableEmailDeliverTemplateOut"
partnerLink="SendPartnerLink" portType="s:SendPort"
operation="deliverTemplate">
<activityRecovery:failureHandling>
<activityRecovery:faultOnFailure>false</activityRecovery:
faultOnFailure>
<activityRecovery:retryFor>3</activityRecovery:retryFor>
<activityRecovery:retryDelay>1800</activityRecovery:retryDelay>
</activityRecovery:failureHandling>
<bpel:catchAll>
<bpel:exit name="ExitIfEmailCampaignInvokeFailsToRecover"/>
</bpel:catchAll>
</bpel:invoke>
I'm not familiar with the ODE console, however you have full access to
an instance variables during execution using the supplied
InstanceManagement service. The SOAP service is accessible at
http://ode.local/ode/deployment/services/InstanceManagement Load this
up in SoapUI or similar and explore the various operations.
When an instances terminates/completes, a lot of the useful
information is cleaned up by ODE, see
http://ode.apache.org/instance-data-cleanup.html My recommendation is
to turn off all cleanup locally during testing.
I hope this was useful,
Stan
On Thu, 5 Oct 2017 at 11:10 Dimitris Chorozoglou
<[email protected]> wrote:
Hello,
We are planning to start using Apache ODE as our BPEL engine and I would
like to ask two questions:
First question is for Failure and recovery extension: Why is there not
an option to recover instances that have received an exception from an
invoke activity? We have checked out the source and change the point
where this handling is performed and we have managed to recover
exception received from partners, but the question is why wasn't it
there as an option?
The second question is if there is a way to show a custom variable in
the ode-console. Is there a way to present a custom variable, or change
the IID of the instance that is shown in the ode console grid?
Thank you very much!
-