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

Reply via email to