Timeout exceeded or NullReferenceException after sometime
---------------------------------------------------------
Key: DNET-386
URL: http://tracker.firebirdsql.org/browse/DNET-386
Project: .NET Data provider
Issue Type: Bug
Components: ADO.NET Provider
Affects Versions: 2.6
Environment: WIndows 7, Windows Server 2008 or Windows XP
Firebird .Net Provider 2.6.2
VS 2008
Net Framework 3.5 or 4.0
Reporter: Nataniel
Assignee: Jiri Cincura
I have an application that runs on the server monitoring changes to a Firebird
database and sending them through a webservice.
I create a new connection for every recieved items group because the provider
currently do not support paralel transactions. After sending the data (and
saving the transmission invoice back into the database) I close this connection.
After some time running the provider starts presenting errors.
If I let "POOLING = True" at my connection string after about 1 hour I started
recieving a "Timeout exceeded" error.
If I let "POOLING = False" at my connection string after about 1 hour the
system crashes with a "NullReferenceException"
VS stopped at "int transactionCount =
this.Connection.InnerConnection.Database.TransactionCount;" with
"InnerConnection = NULL", at "internal void RollbackImplicitTransaction()"
The only way I found to prevent this is making this change to FbCommand.cs
Change this:
if (this.HasImplicitTransaction && this.transaction != null &&
this.transaction.Transaction != null)
To this:
if (this.HasImplicitTransaction && this.transaction != null &&
this.transaction.Transaction != null && this.Connection.InnerConnection != null)
Below is the error from VS output
------------------------------------ ERROR ------------------------------------
A first chance exception of type 'FirebirdSql.Data.Common.IscException'
occurred in FirebirdSql.Data.FirebirdClient.dll
A first chance exception of type 'System.NullReferenceException' occurred in
FirebirdSql.Data.FirebirdClient.dll
'prjSeloDigital.vshost.exe' (Managed (v2.0.50727)):
Loaded
'C:\Windows\assembly\GAC_MSIL\System.Transactions.resources\2.0.0.0_pt-BR_b77a5c561934e089\System.Transactions.resources.dll'
System.Transactions Critical: 0 :
<TraceRecord
xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"
Severity="Critical">
<TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier>
<Description>Exceção não tratada</Description>
<AppDomain>prjSeloDigital.vshost.exe</AppDomain>
<Exception>
<ExceptionType>System.NullReferenceException, mscorlib,
Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>Referência de objeto não definida para uma instância
de um objeto.</Message>
<StackTrace>
em
FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() na
C:\Projetos\Extradigital\Utilitarios\SeloDigital\prjSeloDigital.root\prjSeloDigital
-
Cópia\NETProvider-2.6.5-src\FirebirdSql\Data\FirebirdClient\FbCommand.cs:linha
790
em FirebirdSql.Data.FirebirdClient.FbCommand.Release()
na
C:\Projetos\Extradigital\Utilitarios\SeloDigital\prjSeloDigital.root\prjSeloDigital
-
Cópia\NETProvider-2.6.5-src\FirebirdSql\Data\FirebirdClient\FbCommand.cs:linha
828
em
FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing) na
C:\Projetos\Extradigital\Utilitarios\SeloDigital\prjSeloDigital.root\prjSeloDigital
-
Cópia\NETProvider-2.6.5-src\FirebirdSql\Data\FirebirdClient\FbCommand.cs:linha
396
em
System.ComponentModel.Component.Finalize()</StackTrace><ExceptionString>System.NullReferenceException:
Referência de objeto não definida para uma instância de um objeto.
em
FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() na
C:\Projetos\Extradigital\Utilitarios\SeloDigital\prjSeloDigital.root\prjSeloDigital
-
Cópia\NETProvider-2.6.5-src\FirebirdSql\Data\FirebirdClient\FbCommand.cs:linha
790
em FirebirdSql.Data.FirebirdClient.FbCommand.Release()
na
C:\Projetos\Extradigital\Utilitarios\SeloDigital\prjSeloDigital.root\prjSeloDigital
-
Cópia\NETProvider-2.6.5-src\FirebirdSql\Data\FirebirdClient\FbCommand.cs:linha
828
em
FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing) na
C:\Projetos\Extradigital\Utilitarios\SeloDigital\prjSeloDigital.root\prjSeloDigital
-
Cópia\NETProvider-2.6.5-src\FirebirdSql\Data\FirebirdClient\FbCommand.cs:linha
396
em System.ComponentModel.Component.Finalize()
</ExceptionString>
</Exception>
</TraceRecord>
--
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
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider