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

Florian Hockmann commented on TINKERPOP-2288:
---------------------------------------------

{quote} Is it possible for a connection to close while there are still requests 
in flight? 
{quote}
Sure, that can happen if either the user disposes the client completely 
although requests are still in flight for example because the application gets 
shut down or because the connection gets terminated, e.g., because it was 
closed by the server. I however don't think that the conclusions you draw out 
of that are correct.

{{BeginReceiving}} is only called once during the initialization of a new 
connection that is happening when {{ConnectAsync}} is called. The 
{{_connectionState}} is only set to {{Closed}} when the {{Connection}} is 
closed completely which only happens when the whole client gets disposed or if 
there is a connection problem. If that happens before {{BeginReceiving}} 
finishes its execution, then there won't be any open requests on that 
{{Connection}} as the {{Connection}} won't be used before {{ConnectAsync}} 
finishes which calls {{BeginReceiving}}.

> Get ConnectionPoolBusyException and then ServerUnavailableExceptions
> --------------------------------------------------------------------
>
>                 Key: TINKERPOP-2288
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2288
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: dotnet
>    Affects Versions: 3.4.1
>         Environment: Gremlin.Net 3.4.1
> Microsoft.NetCore.App 2.2
> Azure Cosmos DB
>            Reporter: patrice huot
>            Priority: Critical
>
> I am using .Net core Gremlin API  query Cosmos DB.
> From time to time we are getting an error saying that no connection is 
> available and then the server become unavailable. When this is occurring we 
> need to restart the server. It looks like the connections are not released 
> properly and become unavailable forever.
> We have configured the pool size to 50 and the MaxInProcessPerConnection to 
> 32 (Which I guess should be sufficient).
> To diagnose the issue, Is there a way to access diagnostic information on the 
> connection pool in order to know how many connections are open and how many 
> processes are running in each connection?
> I would like to be able to monitor the connections usage to see if they are 
> about to be exhausted and to see if the number of used connections is always 
> increasing or of the connection lease is release when the queries completes?
> As a work around, Is there a way we can access this information from the code 
> so that I can catch those scenario and create logic that re-initiate the 
> connection pool?
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to