FbConnectionPoolManager does not remove disconnected FbConnectionInternal
instances
-----------------------------------------------------------------------------------
Key: DNET-678
URL: http://tracker.firebirdsql.org/browse/DNET-678
Project: .NET Data provider
Issue Type: Bug
Components: ADO.NET Provider
Affects Versions: 4.10.0.0
Environment: The scenario have been tested versus FB 2.5 in classic
mode
Reporter: Hans Torm
Assignee: Jiri Cincura
If a FbConnection's FbConnectionInternal gets disconnected from the server in
the underlying System.Net.Sockets.NetworkStream, this is not detected by the
FbConnectionInternal instance. Thus the FbConnectionInternal instance will keep
on being released to the FbConnectionPoolManager upon Close and reused for
later connections, creating errors.
The problem is compounded by the fact that even if you detect the Error, you
cannot simply Dispose the FbConnection as this will still release the
FbConnectionInternal instance to the Pool. Only workaround is to flush the
Pool, but to do that you have to break the encapsulation provided by the
ADO.NET abstractions and link directly to the FbDriver to get access to the
Pool management features on FbConnection, thus preventing DB agnostic code.
This is not desirable.
Alternatively not disposing a failed connection will work as the
FbConnectionInternal instance will never be GC'd due to being in the _busy
List, but will of course introduce a subtle memory leak. This is not desirable.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider