Ralph Goers wrote: > OK. I'm wondering if the real problem is simply that the getDocument > method is completely synchronized? > As far as pools go, I feel like a complete idiot. See my comments below. > > Vadim Gritsenko wrote: > >> Ralph Goers wrote: >> >>> Thanks Vadim. I'm posting this back to the Cocoon list as it seems >>> what you are telling me is that the problem is either with the >>> XMLFileModule or with running out of components in the pool on the >>> pipeline being invoked. >>> >>> What I am not clear on is what you are trying to tell me in the last >>> paragraph. Are you saying that the deadlock can be avoided by >>> configuring the components being used in the target pipeline >>> differently? >> >> >> >> I've not looked into pool source code yesterday to double check all >> points myself. I'm suggesting you to check: >> >> * What type of pool is really used > > > Where is that specified? I know you can specify what type of pipeline > you want but where is the type of pool configured? It is not a blocking pool, although the DataSourceComponent uses a blocking pool. If you run out of connections, it will block. Everything else acts like a factory when over the limit. > >> * Why it is blocking (I guessed it is blocking due to resource >> exhaustion) > > > My guess is that the requests are simply coming in faster than > XMLFileModule is taking to release the lock. That is a possibility--if the method being called is static or belongs to a ThreadSafe component. > * If it's hard limiting pool - why it's not soft limiting pool > > Again - is that configured somewhere? Unless you specifically set up a pool in your own component, it is soft limited.