ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Fonden (JIRA)" <j...@apache.org>
Subject [jira] Commented: (ODE-606) Process blocks although Async Extension Operation is marked completed or completedWithFault
Date Sun, 02 Aug 2009 10:36:14 GMT

    [ https://issues.apache.org/jira/browse/ODE-606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12738037#action_12738037
] 

Christian Fonden commented on ODE-606:
--------------------------------------

I did further research regarding this bug: in my case, the ExtensionContext::complete() Method
is called from another Thread as the one that called the AbstractAsyncExtensionOperation::run
method. 

When I called the complete() Method from the same Thread as the one that called the run()
method, it worked just fine!

So I think the problem is about the ExtensionContext Class not being thread safe. So you should
make this class thread save as it cannot be ensured that there is no multithreading used in
an extension activity. (So in my case: I use RMI to react on external events that are received
by another thread). 

Hope that will help you!

> Process blocks although Async Extension Operation is marked completed or completedWithFault
> -------------------------------------------------------------------------------------------
>
>                 Key: ODE-606
>                 URL: https://issues.apache.org/jira/browse/ODE-606
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 2.0
>         Environment: Tomcat5.5 Ode Trunk Rev 766476 Debian Linux 1,5G RAM, integrated
DB
>            Reporter: Christian Fonden
>            Assignee: Tammo van Lessen
>
> When a new extension Activity extending AbstractAsynchExtensionOperation is developed
and deployed, a bad scheduler issue occurs: 
>  - the run method does neither complete with errors nor it completes successfully (intended!)
>  - a java timer waits 10 seconds and the calls context.completeWithFault.
>  - then the activity gets marked as faulted, but the process runs until it is stopped
by the 30 second axis2 call timeout, returning the axis2 stack trace to the invoking client.

> It seems like the situation that the activity marks itsself as faulted by calling the
context.completeWithFault() method in the ExtensionContext class is somehow *not* being propagated
to the navigator and the whole BPEL Process is blocked by the faulted Activity. Also no compensation
is called. 
> Again to make it clear: the time integrated in the extension fires after 10 seconds,
but the process completes on Axis2 Timeout after 30 seconds. 
> The missing code can be easily reproduced by 
> - create a synchronous bpel process, containing just the async extension activity
> - the extension activity starts a timer in its run() method
> - the timer calls completeWtih fault after a short time (e.g. immediately)
> - the process is still blocked. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message