If an object comes from a pool then calling close() should return it to the pool. So your pool should not return direct CmisService instances, but wrapped versions that intercept close() and makes them go back into the pool. You can implement that easily enough through an InvocationHandler.
Florent On Fri, Jan 30, 2015 at 1:06 PM, Jochen Kraushaar <jochen.kraush...@doubleslash.de> wrote: > Hi, > > in the CMIS JCR bridge each call to > JcrServiceFactory.getService(CallContext) creates a new CmisService > instance. As a side effect each request ends up in logging in the user given > by the CallContext. When the repository is called rapidly, this leads to > performance and load issues. > > As I found out on the Chemistry homepage, it is ok to manage the CmisService > instances in a pool, see: > http://chemistry.apache.org/java/developing/dev-server.html > But when I debug the CMIS JCR bridge, it seems that after each request was > processed, the close() method of CmisService is called. For the close() > method the JavaDoc says: > > "Signals that this object will not be used anymore and resources can > released." > > Which - in case my CmisService instance is managed in a pool - is wrong. > > Is it possible to switch calling the close() method off or should I ignore > the close() method JavaDoc and rather implement my own clean up mechanism > for pooled CmisService instances? > > Regards > Jochen -- Florent Guillaume, Director of R&D, Nuxeo Open Source Content Management Platform for Business Apps http://www.nuxeo.com http://community.nuxeo.com