You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by "Florian Müller (JIRA)" <ji...@apache.org> on 2017/04/07 09:29:42 UTC

[jira] [Commented] (CMIS-1004) BridgeServiceFactory taking long time

    [ https://issues.apache.org/jira/browse/CMIS-1004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15960547#comment-15960547 ] 

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: https://issues.apache.org/jira/browse/CMIS-1004
>             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 context).
> 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
(v6.3.15#6346)