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 Fri, 07 Apr 2017 09:29:42 GMT


Florian Müller commented on CMIS-1004:

It's rather difficult make out the difference without knowing your setup and your implementation.
I can only provide a few hints.

- Check your authentication. The Java client uses basic auth and SOAP UI uses UsernameToken
... I guess. Is there any difference in bridge implementation?
- The Java client sends cookies and the SOAP UI doesn't. That's important! That means that
every single SOAP UI request creates a new session on the bridge and that implies an additional
roundtrip to the backend server. That doesn't explain the 10 additional seconds, though, but
a small part of it.
- Have you checked where the 10 seconds are lost? Implement a small servlet filter on the
bridge to record when the request reaches the bridge and when the bridge sends the response.
If delta is the same for both clients, then it's probably something on the client side. If
the delta is different, you should focus on the bridge.

Apart from that, you may want to update OpenCMIS. We just released OpenCMIS 1.1.0. The Web
Services implementation has significantly changed from 0.13.0 to 0.14.0.
And ... avoid the Web Services binding if you can. Go for the Browser binding. It's much faster.

> 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