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
Firebird-net-provider@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to