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

Florian Müller commented on CMIS-559:
-------------------------------------

When you get a content stream, you have to consume and close the stream. 
Otherwise socket connections to the server remain open and .Net limits the 
number of concurrent connections to a server to 2 connections.

You can also increase the limit by setting the 
ServicePointManager.DefaultConnectionLimit property [1].


[1] 
http://msdn.microsoft.com/us-en/library/system.net.servicepointmanager.defaultconnectionlimit.aspx
                
> Timeout when fetching documents
> -------------------------------
>
>                 Key: CMIS-559
>                 URL: https://issues.apache.org/jira/browse/CMIS-559
>             Project: Chemistry
>          Issue Type: Bug
>          Components: dotcmis
>    Affects Versions: DotCMIS 0.4
>         Environment: Windows, Visual Studio 2010 C# client application
>            Reporter: Katie
>
> DotCMIS.Exceptions.CmisRuntimeException with "Timeout" is raised when an 
> attempt is made to fetch a third document within several minutes.  All 
> subsequent operations then also time out, until several minutes have passed.
> This can be easily reproduced by initialising a session:
> {noformat}
> private ISession session;
> private SessionFactory factory;
> private Dictionary<string, string> parameters = new Dictionary<string, 
> string>();
> parameters[SessionParameter.BindingType] = BindingType.AtomPub;
> parameters[SessionParameter.AtomPubUrl] = dms_cmis_url;
> parameters[SessionParameter.User] = dms_cmis_user;
> parameters[SessionParameter.Password] = dms_cmis_password;
> factory = SessionFactory.NewInstance();
> session = factory.GetRepositories(parameters)[0].CreateSession();
> {noformat}
> and then performing this code three times:
> {noformat}
> IObjectId id = session.CreateObjectId("0923dba58001468a");
> ob = session.GetObject(id) as IDocument;
> str = ob.GetContentStream();
> {noformat}
> The first two calls complete quickly.  The third call raises an exception 
> after thirty seconds:
> {noformat}
> DotCMIS.Exceptions.CmisRuntimeException {"Timeout"}
>    at DotCMIS.Binding.AtomPub.ObjectService.GetContentStream(String 
> repositoryId, String objectId, String streamId, Nullable`1 offset, Nullable`1 
> length, IExtensionsData extension)
>    at DotCMIS.Client.Impl.Document.GetContentStream(String streamId)
>    at DotCMIS.Client.Impl.Document.GetContentStream()
>    at CMISClient.MainWindow.MenuItem_Click_4(Object sender, RoutedEventArgs 
> e) in C:\src\CMISClient\MainWindow.xaml.cs:line 156
>    at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, 
> RoutedEventArgs routedEventArgs)
>    at System.Windows.EventRoute.InvokeHandlersImpl(Object source, 
> RoutedEventArgs args, Boolean reRaised)
>    at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, 
> RoutedEventArgs args)
>    at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
>    at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
>    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate 
> callback, Object args, Int32 numArgs)
>    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, 
> Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
>    at System.Windows.Threading.DispatcherOperation.InvokeImpl()
>    at 
> System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object 
> state)
>    at System.Threading.ExecutionContext.runTryCode(Object userData)
>    at 
> System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode
>  code, CleanupCode backoutCode, Object userData)
>    at System.Threading.ExecutionContext.RunInternal(ExecutionContext 
> executionContext, ContextCallback callback, Object state)
>    at System.Threading.ExecutionContext.Run(ExecutionContext 
> executionContext, ContextCallback callback, Object state, Boolean 
> ignoreSyncCtx)
>    at System.Threading.ExecutionContext.Run(ExecutionContext 
> executionContext, ContextCallback callback, Object state)
>    at System.Windows.Threading.DispatcherOperation.Invoke()
>    at System.Windows.Threading.Dispatcher.ProcessQueue()
>    at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, 
> IntPtr wParam, IntPtr lParam, Boolean& handled)
>    at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, 
> IntPtr lParam, Boolean& handled)
>    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
>    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate 
> callback, Object args, Int32 numArgs)
>    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, 
> Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
>    at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority 
> priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
>    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr 
> wParam, IntPtr lParam)
>    at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
>    at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
>    at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
>    at System.Windows.Application.RunDispatcher(Object ignore)
>    at System.Windows.Application.RunInternal(Window window)
>    at System.Windows.Application.Run(Window window)
>    at System.Windows.Application.Run()
>    at CMISClient.App.Main() in C:\src\CMISClient\obj\x86\Debug\App.g.cs:line 0
>    at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] 
> args)
>    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence 
> assemblySecurity, String[] args)
>    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
>    at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
>    at System.Threading.ExecutionContext.Run(ExecutionContext 
> executionContext, ContextCallback callback, Object state, Boolean 
> ignoreSyncCtx)
>    at System.Threading.ExecutionContext.Run(ExecutionContext 
> executionContext, ContextCallback callback, Object state)
>    at System.Threading.ThreadHelper.ThreadStart()
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to