ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Kammholz" <...@arlanis.com>
Subject Re: Invalid response state for mex ASYNCH
Date Wed, 02 May 2007 17:17:37 GMT
Hi Matthieu,

here some - hopefully - new findings:

First - you're totally right, the code indicated in my last mail is only  
called at the end of the BPEL-process, so it has nothing to do with this  
The problem is indeed between setting the state to RESPONSE in  
MessageExchangeImpl.setResponse() and getting this value in  
BpelRuntimeContextImpl.invocationResponse2(), because when asking for the  
MessageExchangeDAO in invocationResponse2() the EntityManager cannot find  
the current Object where _status is set to RESPONSE and creates a new  
Instance where _status is ASYNC. Here is the stack trace when the state is  
reset to ASYNC:

Thread [pool-4-thread-2] (Suspended (modification of field _status in  
	MessageExchangeDAOImpl.pcClearFields() line: not available	
	MessageExchangeDAOImpl.pcNewInstance(StateManager, Object, boolean) line:  
not available	
	PCRegistry.newInstance(Class, StateManager, Object, boolean) line: 118	
	StateManagerImpl.initialize(Class, PCState) line: 247	
	JDBCStoreManager.initializeState(OpenJPAStateManager, PCState,  
JDBCFetchConfiguration, ConnectionInfo) line: 327	
	JDBCStoreManager.initialize(OpenJPAStateManager, PCState,  
FetchConfiguration, Object) line: 252	
PCState, FetchConfiguration, Object) line: 108	
	ROPStoreManager.initialize(OpenJPAStateManager, PCState,  
FetchConfiguration, Object) line: 54	
	FinalizingBrokerImpl(BrokerImpl).initialize(StateManagerImpl, boolean,  
FetchConfiguration, Object) line: 873	
	FinalizingBrokerImpl(BrokerImpl).find(Object, FetchConfiguration, BitSet,  
Object, int, FindCallbacks) line: 831	
	FinalizingBrokerImpl(BrokerImpl).find(Object, boolean, FindCallbacks)  
line: 748	
	DelegatingBroker.find(Object, boolean, FindCallbacks) line: 169	
	EntityManagerImpl.find(Class<T>, Object) line: 346	
	BPELDAOConnectionImpl.getMessageExchange(String) line: 155	
	BpelRuntimeContextImpl.invocationResponse2(String, InvokeResponseChannel)  
line: 953	
	BpelRuntimeContextImpl.access$000(BpelRuntimeContextImpl, String,  
InvokeResponseChannel) line: 89	
	BpelRuntimeContextImpl$4.run() line: 939	
	GeneratedMethodAccessor19.invoke(Object, Object[]) line: not available	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 585	
	JacobVPU$JacobThreadImpl.run() line: 451	
	JacobVPU.execute() line: 139	
	BpelRuntimeContextImpl.execute() line: 817	
	BpelProcess.handleWorkEvent(Map<String,Object>) line: 310	
	BpelEngineImpl.onScheduledJob(Scheduler$JobInfo) line: 311	
	BpelServerImpl.onScheduledJob(Scheduler$JobInfo) line: 384	
	QuartzSchedulerImpl.doExecute(Scheduler$JobInfo) line: 351	
	QuartzSchedulerImpl.execute(JobExecutionContext) line: 367	
	JobImpl.execute(JobExecutionContext) line: 32	
	JTAJobRunShell(JobRunShell).run() line: 203	
	ThreadPoolExecutor$Worker.runTask(Runnable) line: 650	
	ThreadPoolExecutor$Worker.run() line: 675	
	Thread.run() line: 595

So maybe there is a transaction not committed after setting state to  
RESPONSE or anything else to trigger the persistance layer?

Hope that helps a bit.
Also I've attachted the console output of ODE in debug mode for further  


Michael Kammholz
Arlanis Software AG
Kurf├╝rstenstr. 15
14467 Potsdam

Phone:  +49 331 27911-29
Fax:    +49 331 27911-1
eM@il:  michael.kammholz@arlanis.com

Amtsgericht Potsdam: HRB 19134 P
Steuer Nr.: 046 100 01292
Vorstand: Christian Metzger
View raw message