In JBoss 4.0.3 SP 1 a stateful session bean is not passivated after the calling client has terminated while a bean method is being executed. Instead, server log shows the warning message
2006-07-28 10:58:21,161 WARN [org.jboss.ejb.plugins.AbstractInstanceCache] Unable to passivate due to ctx lock, id=eq69yz36-b
where eq69yz36-b is the session ID of the terminated client.
The stateful session bean's task is to execute an SQL query and return its results in 1 or more than 1 calls because there might be some 100000 resulting rows. The state of the bean is a JBoss WrappedConnection and a ResultSet that should be closed when the caller has terminated.
All of it works fine unless the caller terminates while the session bean executes the query (which may take some minutes).
What can be the cause why the bean will not get passivated?