Hi Milinda, On 01.06.2010 06:01, Milinda Pathirage wrote: > Hi Tammo, > > Here is what happened in our tests. We are using embedded DB H2 and JPA in > this scenario. > > When there are about ten or more instances which waits for a human task, we > can't create anymore instances until several waiting instance get completed. > And when simple scheduler tries to get a DB connection from pool, > it'll throw a exception saying no DB connections available in the pool. Also > if we try to access the management API, we'll get timeout errors. When we > tried with external MySQL DB, we can create more instances than with the > embedded DB. But after some time, MySQL scenario will also fail due to DB > connection unavailability. > > I think that the extension activity blocks the whole transaction until it's > execution is finished and JPA is holding DB connection at the time where > extension is doing its work. According to > the extension activity implementation, I don't see any advantage(may be I am > wrong) in AbstractAsyncExtensionOperation, because it has the same > implementation as Sync operation except user get the chance to invoke > complete method.
Yeah, that's exactly the point. AbstractAsyncExtensionOperation is intended to be the AbstractLongRunningExtensionOperation, but you need to spawn an independent thread that does the long-running processing and then directly return the run-method (directly after the long-running thread is started and before it has finished). This ensures that the navigator can continue. Once the thread is done, it can notify ODE that the extension activity has completed or faulted via the channel ID and the complete method. HTH, Tammo -- Tammo van Lessen - http://www.taval.de
