chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Florian Müller (JIRA) <>
Subject [jira] [Commented] (CMIS-1004) BridgeServiceFactory taking long time
Date Sun, 04 Dec 2016 20:55:58 GMT


Florian Müller commented on CMIS-1004:

The Bridge code contains two session caching implementations, one based on HTTP sessions and
one based on a LRU cache.
The default caching implementation (and the one you use here) is the HTTP session implementation.
This caching *requires* that the client can deal with cookies. Turn cookie on on the client
side and it should work!
Or change to the LRU cache implementation, which doesn't require cookies. Or build your own
cache implementation... 

Apart from that, even the first call shouldn't take 12 seconds. Check if it takes the same
time to connect with the CMIS Workbench with the same session parameters (-> expert login
tab). Either your repository is slow or there this some kind of network issue.

> BridgeServiceFactory taking long time
> -------------------------------------
>                 Key: CMIS-1004
>                 URL:
>             Project: Chemistry
>          Issue Type: Bug
>          Components: opencmis-bridge, opencmis-server
>    Affects Versions: OpenCMIS 1.1.0
>            Reporter: vinay
> Hi,
> We have a query around time taken by BridgeServiceFactory with every request. Below are
the details of our implementation.
> We have created ServiceFactory class by extending AbstractBridgeServiceFactory and overriding
below methods :
> 	@Override
> 	protected FilterCmisService createService(CallContext context)
> 	@Override
> 	public CmisService getService(CallContext context)
> 	@Override
> 	public void init(Map<String, String> parameters) : In this method we are enabling
ServiceWrapper feature and then calling the super.init()
> We have observed that every SOAP request is taking more than 12 seconds to get the Service
(i.e. getService(CallContext context) call)
> The overridden getService(CallContext context) method calls CachedBindingCmisService.setCallContext(CallContext
> Our assumtion was that since cache is in place first request will take time once cache
gets warm up. And then all the subsequent call will utilize cache.
> But this is not happening and every request builds the cache.
> On further investigation we found that CachedBindingCmisService.getCmisBindingFromCache()
method always return null. It is because the internal call to HttpSessionCmisService.getCmisBindingFromCache()
not able to find the existing session 
> {
> 	HttpSession httpSession = getHttpSession(false) ---> This always return null.
> }
> Please let us know if there is way to improve and utilize the inbuilt cache mechanism.
Or is it something missing while creating custom ServiceFactory class by extending AbstractBridgeServiceFactory.
> Thanks & Regards,
>  Vinay

This message was sent by Atlassian JIRA

View raw message