Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 883703

Summary: Loss of recovery for BPEL process if shutdown or crash within timeout
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Jason Shepherd <jshepherd>
Component: riftsawAssignee: Nobody <nobody>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 5.3.0 GACC: soa-p-jira
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:27:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jason Shepherd 2012-12-05 06:50:13 UTC
Description of problem:

We have a process with a timeout of 3 minutes (mex.timeout=180000). If we invoke the process, but it fails to get a response for one of it's invocations it will timeout, and enter a 'failed' state.

One a process is in a 'failed' state we can recover it using InstanceManagement. However if a JBoss crashes, or is shutdown within the timeout period the process will not invoke it's sub-processes, and it will not go into 'failed' state, meaning we will not be able to recover it.

Version-Release number of selected component (if applicable):

Riftsaw 2.3.6.Final

How reproducible:

Use attached proto_bpel_ws.jar and proto_bpel-1.jar.

Steps to Reproduce:
On a SOAP platform :
– modify bpel properties file (JBOSS_HOME/server/default/deploy/riftsaw.sar/bpel.properties)
comment #persist.bpel.events = false
– deploy proto_bpel-1.jar on JBoss server
– start web services on the same host as JBoss server will run
java -jar proto_bpel_ws.jar

FIRST CASE :
– run JBoss
– send soap message on http://127.0.0.1:8080/proto_bpel/main

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<main:mainRequest
xmlns:main="http://main.proto_bpel.agora.msa.fr">
<main:mapId>
<main:cle>123</main:cle>
<main:valeur>toto</main:valeur>
</main:mapId>
</main:mainRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

– BPELs start
– wait 3 minutes
– BPELs invoke activities fails because of timeout; JBoss server log :
...
2012-10-26 17:28:58,904 ERROR [org.apache.ode.bpel.runtime.INVOKE] (ODEServer-3) Failure during invoke: No response received for invoke (mexId=hqejbhcnphr7phfunuim2w), forcing it into a failed state.
2012-10-26 17:28:59,185 ERROR [org.apache.ode.bpel.runtime.INVOKE] (ODEServer-4) Failure during invoke: No response received for invoke (mexId=hqejbhcnphr7phfunuim33), forcing it into a failed state.
...
2012-10-26 17:31:59,216 INFO [org.apache.ode.bpel.engine.BpelRuntimeContextImpl] (ODEServer-5) ActivityRecovery: Registering activity 19, failure reason: No response received for invoke (mexId=hqejbhcnphr7phfunuim3e), forcing it into a failed state. on channel 38
...
2012-10-26 17:31:59,325 INFO [org.apache.ode.bpel.engine.BpelRuntimeContextImpl] (ODEServer-2) ActivityRecovery: Registering activity 11, failure reason: No response received for invoke (mexId=hqejbhcnphr7phfunuim3l), forcing it into a failed state. on channel 24
...

SECOND CASE :
– send soap message
– BPELs start
– shutdown JBoss server : shutdown -S ...
– run again JBoss
– BPELs stay in running state (status = ACTIVE) indefinitely (NO MORE TIMEOUT ??? so no status = FAILURE on activity)
 

Additional info:

part of code to recover instance :
...
@WebService
public class PMApi {

	private static final Logger log_ = Logger.getLogger(PMApi.class);
	
	private BpelManagementFacade mng_ = null;
	
	public PMApi()
	{
		try {
			InitialContext ctx = new InitialContext();
			BPELEngine engine = (BPELEngine)ctx.lookup("bpel/Engine");
			mng_ = (BpelManagementFacade)(engine.getManagementInterface());
			log_.info("Obtain Bpel Mngmt Facade.");
		} catch (NamingException e) {
			log_.error("Unable to get Bpel Mngmt Facade.");
		}
	}
	
	private InstanceManagement instanceMng()
	{
		return (InstanceManagement)mng_;
	}

	public String recoverActivity(@WebParam(name="iid") String iid,
		@WebParam(name="aid") String aid, @WebParam(name="action")String action)
	{
		return instanceMng().recoverActivity(
			Long.valueOf(iid), Long.valueOf(aid), action).toString();
	}

Comment 1 JBoss JIRA Server 2012-12-06 22:28:48 UTC
Jason Shepherd <jshepherd> made a comment on jira RIFTSAW-519

One change the we have made to the default configuration of BPEL is we have commented out 'persist.bpel.events=false'. We did this to access activities of BPEL instance scope through InstanceManagement, so that we can recovery the activity.

bpel.properties file :

#persist.bpel.events = false

Comment 3 JBoss JIRA Server 2013-01-11 11:09:33 UTC
Jeff Yu <cyu> updated the status of jira RIFTSAW-519 to Resolved

Comment 6 Red Hat Bugzilla 2025-02-10 03:27:06 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.