I did some more thinking about this and I think that the CME is related to the connection problem.

I think that a bean is failing to get a connection, so I tries to destroy itself and release its connections. Then (because of the initial connection problem) it hits an exception trying to release its resources, which causes it to try to destroy itself and release its resources...

So, the iterator is already created further down the stack and trying to remove an element from it is not permitted - Causing the concurrent modification exception.

If it were not for the exception being thrown, I think that it might have actually ended up causing an infinite loop.

Could a flag be set in the context that indicates that the exit is in progress? Then the exit routine could first check for the flag and only be allowed to proceed if it is not already in progress somewhere else in the program stack.

Or, if folk think this might be right (the recursive exiting), what about just catching the CME and letting the routine fail gracefully?

Jay

Matt Hogstrom wrote:

On Apr 7, 2007, at 6:34 PM, Matt Hogstrom wrote:

I'll give it a spin tonight Jay...thanks
I did some work over the weekend with little success. I started using Derby as the DB provider and ran into a set of issues around connection management (no concurrent modification exceptions). In JDBC mode things ran fine. In Session Direct Mode I experienced the connection problem. Basically it was complaining about a queue being full in the exception but I didn't get too involved in diagnosing that.

Chris, did you run this with Derby or another external DB? Curious where the fault domain might be for this problem.

I'll continue to work on this, but I want to stay on top of 2.0 as there are lots of things to chase down wrt to dependencies so I can't commit a lot of time to diagnosing this problem. Chris, what's your ability to work on this?




Reply via email to