You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by Nagendra Inuguri <in...@gmail.com> on 2009/01/22 07:22:12 UTC

How ODE is supposed to behave if it goes down after invoking an external web service and before the response comes back?

Hi,

I have an invoke activity in my process. What should happen in the following
scenario?

I am bringing down ODE server just after it invokes the external web service
and before it gets the response. When I restart the ODE server again, the
process instance gets stuck at invoke activity. It doesn't time out or it
doesn't continue with the next activity in my flow. Is it the expected
behavior? If it times out, I can use failure handling to retry the invoke.

What are the ways to recover from this kind of scenario?

Thanks,
Nagendra

Re: How ODE is supposed to behave if it goes down after invoking an external web service and before the response comes back?

Posted by Nagendra Inuguri <in...@gmail.com>.
Hi Matthieu,

I downloaded the source and built ODE from source. This problem doesn't
happen in 1.x branch. It does seem to be fixed. Thanks for pointing me to
the right branch.

Thanks,
Nagendra

On Fri, Jan 23, 2009 at 9:24 PM, Matthieu Riou <ma...@gmail.com>wrote:

> On Fri, Jan 23, 2009 at 2:26 AM, Nagendra Inuguri <in...@gmail.com>wrote:
>
>> Hi Matthieu,
>>
>> It doesn't actually enter into recovery upon restart. I queried
>> bpel_activity_recovery table to check this. There is no entry added in this
>> table after restart. Can you please suggest what do I need to do to resolve
>> this?
>>
>
> The nightly gives you the trunk which isn't stabilized yet and I think this
> particular feature is broken there. But it's been fixed in the 1.X branch:
>
> http://svn.apache.org/repos/asf/ode/branches/APACHE_ODE_1.X/
>
> Thanks,
> Matthieu
>
>
>>
>> I read the thread pointed out by you and understand that she also has the
>> similar issue. As suggested in the thread I have downloaded a recent
>> successful nightly ODE build, even then I don't see an entry getting added
>> into bpel_activity_recovery table on restart, which means the instance has
>> not been entered into recovery.
>>
>> However I see a difference between old and latest ODE. While using latest
>> ODE, I see the following debug statements in my logs. I think it is now
>> checking for invoke activities which were pending before restart, however it
>> doesn't make the instance enter into the recovery mode.
>>
>> DEBUG - GeronimoLog.debug(66) | handleWorkEvent: InvokeCheck event for
>> mexid hqejbhcnphr3xigaikh0uc
>> 15:44:40,328 DEBUG [BpelServerImpl] handleWorkEvent: InvokeCheck event for
>> mexid hqejbhcnphr3xigaikh0uc
>> DEBUG - GeronimoLog.debug(66) | Dangling invocation
>> (mexId=hqejbhcnphr3xigaikh0uc), forcing it into a failed state.
>> 15:44:40,906 DEBUG [BpelServerImpl] Dangling invocation
>> (mexId=hqejbhcnphr3xigaikh0uc), forcing it into a failed state.
>> DEBUG - GeronimoLog.debug(66) | replyWithFailure
>> mex=hqejbhcnphr3xigaikh0uc
>> 15:44:41,906 DEBUG [PartnerRoleMessageExchangeImpl] replyWithFailure
>> mex=hqejbhcnphr3xigaikh0uc
>>
>> Thanks,
>> Nagendra
>>
>>
>> On Thu, Jan 22, 2009 at 10:14 PM, Matthieu Riou <ma...@gmail.com>wrote:
>>
>>> On Wed, Jan 21, 2009 at 10:22 PM, Nagendra Inuguri <inagendra@gmail.com
>>> >wrote:
>>>
>>> > Hi,
>>> >
>>> > I have an invoke activity in my process. What should happen in the
>>> > following
>>> > scenario?
>>> >
>>>
>>> Have a look at the following threads, it should help:
>>>
>>> http://markmail.org/message/hky4nlhpv354dvqg
>>>
>>> The behavior is that it will force an invoke to enter recovery when it
>>> detects, upon restart, that it failed in the middle of it.
>>>
>>> Cheers,
>>> Matthieu
>>>
>>>
>>> >
>>> > I am bringing down ODE server just after it invokes the external web
>>> > service
>>> > and before it gets the response. When I restart the ODE server again,
>>> the
>>> > process instance gets stuck at invoke activity. It doesn't time out or
>>> it
>>> > doesn't continue with the next activity in my flow. Is it the expected
>>> > behavior? If it times out, I can use failure handling to retry the
>>> invoke.
>>> >
>>> > What are the ways to recover from this kind of scenario?
>>> >
>>> > Thanks,
>>> > Nagendra
>>> >
>>>
>>
>>
>

Re: How ODE is supposed to behave if it goes down after invoking an external web service and before the response comes back?

Posted by Matthieu Riou <ma...@gmail.com>.
On Fri, Jan 23, 2009 at 2:26 AM, Nagendra Inuguri <in...@gmail.com>wrote:

> Hi Matthieu,
>
> It doesn't actually enter into recovery upon restart. I queried
> bpel_activity_recovery table to check this. There is no entry added in this
> table after restart. Can you please suggest what do I need to do to resolve
> this?
>

The nightly gives you the trunk which isn't stabilized yet and I think this
particular feature is broken there. But it's been fixed in the 1.X branch:

http://svn.apache.org/repos/asf/ode/branches/APACHE_ODE_1.X/

Thanks,
Matthieu


>
> I read the thread pointed out by you and understand that she also has the
> similar issue. As suggested in the thread I have downloaded a recent
> successful nightly ODE build, even then I don't see an entry getting added
> into bpel_activity_recovery table on restart, which means the instance has
> not been entered into recovery.
>
> However I see a difference between old and latest ODE. While using latest
> ODE, I see the following debug statements in my logs. I think it is now
> checking for invoke activities which were pending before restart, however it
> doesn't make the instance enter into the recovery mode.
>
> DEBUG - GeronimoLog.debug(66) | handleWorkEvent: InvokeCheck event for
> mexid hqejbhcnphr3xigaikh0uc
> 15:44:40,328 DEBUG [BpelServerImpl] handleWorkEvent: InvokeCheck event for
> mexid hqejbhcnphr3xigaikh0uc
> DEBUG - GeronimoLog.debug(66) | Dangling invocation
> (mexId=hqejbhcnphr3xigaikh0uc), forcing it into a failed state.
> 15:44:40,906 DEBUG [BpelServerImpl] Dangling invocation
> (mexId=hqejbhcnphr3xigaikh0uc), forcing it into a failed state.
> DEBUG - GeronimoLog.debug(66) | replyWithFailure mex=hqejbhcnphr3xigaikh0uc
> 15:44:41,906 DEBUG [PartnerRoleMessageExchangeImpl] replyWithFailure
> mex=hqejbhcnphr3xigaikh0uc
>
> Thanks,
> Nagendra
>
>
> On Thu, Jan 22, 2009 at 10:14 PM, Matthieu Riou <ma...@gmail.com>wrote:
>
>> On Wed, Jan 21, 2009 at 10:22 PM, Nagendra Inuguri <inagendra@gmail.com
>> >wrote:
>>
>> > Hi,
>> >
>> > I have an invoke activity in my process. What should happen in the
>> > following
>> > scenario?
>> >
>>
>> Have a look at the following threads, it should help:
>>
>> http://markmail.org/message/hky4nlhpv354dvqg
>>
>> The behavior is that it will force an invoke to enter recovery when it
>> detects, upon restart, that it failed in the middle of it.
>>
>> Cheers,
>> Matthieu
>>
>>
>> >
>> > I am bringing down ODE server just after it invokes the external web
>> > service
>> > and before it gets the response. When I restart the ODE server again,
>> the
>> > process instance gets stuck at invoke activity. It doesn't time out or
>> it
>> > doesn't continue with the next activity in my flow. Is it the expected
>> > behavior? If it times out, I can use failure handling to retry the
>> invoke.
>> >
>> > What are the ways to recover from this kind of scenario?
>> >
>> > Thanks,
>> > Nagendra
>> >
>>
>
>

Re: How ODE is supposed to behave if it goes down after invoking an external web service and before the response comes back?

Posted by Nagendra Inuguri <in...@gmail.com>.
Hi Matthieu,

It doesn't actually enter into recovery upon restart. I queried
bpel_activity_recovery table to check this. There is no entry added in this
table after restart. Can you please suggest what do I need to do to resolve
this?

I read the thread pointed out by you and understand that she also has the
similar issue. As suggested in the thread I have downloaded a recent
successful nightly ODE build, even then I don't see an entry getting added
into bpel_activity_recovery table on restart, which means the instance has
not been entered into recovery.

However I see a difference between old and latest ODE. While using latest
ODE, I see the following debug statements in my logs. I think it is now
checking for invoke activities which were pending before restart, however it
doesn't make the instance enter into the recovery mode.

DEBUG - GeronimoLog.debug(66) | handleWorkEvent: InvokeCheck event for mexid
hqejbhcnphr3xigaikh0uc
15:44:40,328 DEBUG [BpelServerImpl] handleWorkEvent: InvokeCheck event for
mexid hqejbhcnphr3xigaikh0uc
DEBUG - GeronimoLog.debug(66) | Dangling invocation
(mexId=hqejbhcnphr3xigaikh0uc), forcing it into a failed state.
15:44:40,906 DEBUG [BpelServerImpl] Dangling invocation
(mexId=hqejbhcnphr3xigaikh0uc), forcing it into a failed state.
DEBUG - GeronimoLog.debug(66) | replyWithFailure mex=hqejbhcnphr3xigaikh0uc
15:44:41,906 DEBUG [PartnerRoleMessageExchangeImpl] replyWithFailure
mex=hqejbhcnphr3xigaikh0uc

Thanks,
Nagendra

On Thu, Jan 22, 2009 at 10:14 PM, Matthieu Riou <ma...@gmail.com>wrote:

> On Wed, Jan 21, 2009 at 10:22 PM, Nagendra Inuguri <inagendra@gmail.com
> >wrote:
>
> > Hi,
> >
> > I have an invoke activity in my process. What should happen in the
> > following
> > scenario?
> >
>
> Have a look at the following threads, it should help:
>
> http://markmail.org/message/hky4nlhpv354dvqg
>
> The behavior is that it will force an invoke to enter recovery when it
> detects, upon restart, that it failed in the middle of it.
>
> Cheers,
> Matthieu
>
>
> >
> > I am bringing down ODE server just after it invokes the external web
> > service
> > and before it gets the response. When I restart the ODE server again, the
> > process instance gets stuck at invoke activity. It doesn't time out or it
> > doesn't continue with the next activity in my flow. Is it the expected
> > behavior? If it times out, I can use failure handling to retry the
> invoke.
> >
> > What are the ways to recover from this kind of scenario?
> >
> > Thanks,
> > Nagendra
> >
>

Re: How ODE is supposed to behave if it goes down after invoking an external web service and before the response comes back?

Posted by Matthieu Riou <ma...@gmail.com>.
On Wed, Jan 21, 2009 at 10:22 PM, Nagendra Inuguri <in...@gmail.com>wrote:

> Hi,
>
> I have an invoke activity in my process. What should happen in the
> following
> scenario?
>

Have a look at the following threads, it should help:

http://markmail.org/message/hky4nlhpv354dvqg

The behavior is that it will force an invoke to enter recovery when it
detects, upon restart, that it failed in the middle of it.

Cheers,
Matthieu


>
> I am bringing down ODE server just after it invokes the external web
> service
> and before it gets the response. When I restart the ODE server again, the
> process instance gets stuck at invoke activity. It doesn't time out or it
> doesn't continue with the next activity in my flow. Is it the expected
> behavior? If it times out, I can use failure handling to retry the invoke.
>
> What are the ways to recover from this kind of scenario?
>
> Thanks,
> Nagendra
>