[firebase-br] Bug .NET Data Acess

Marcos Weimer marcosweimer em gmail.com
Qui Set 29 16:00:21 -03 2016


A versão 2.7.7.0 da DLL (que estavamos usando anteriormente) sofre do mesmo
problema, atualizamos para a 5.1 para ver se solucionava mas não obtivemos
sucesso.

Verifiquei agora no source da 2.7.7 o método RollbackImplicitTransaction é
idêntico (transactioncount sem tratamento de exceção)

O problema que o erro é eventual, a maioria dos clientes nunca aconteceu
nada, funciona 100%, mas tem 2 que acontece com certa frequência, não
consegui identificar se é em uma lentidão de rede ou algo do tipo.

Se soubesse a causa iria tratar antes, mas não sei.

-=Ma®©oS=-
Marcos R. Weimer
Delphi / C# / ASP.NET / PHP / WebServices / Firebird


Em 29 de setembro de 2016 10:27, Marcos Weimer <marcosweimer em gmail.com>
escreveu:

> Ola!
>
> Eventualmente nosso aplicativo fecha, do nada, sem motivo aparente, as
> vezes lança um CLR20R3 null exception, mas isso é beem eventual, tem 2 ou 3
> clientes que acontece, de algumas centenas.
>
> Então baixei o fonte da dll (FirebirdSql.Data.FirebirdClient, ativei o
> diagnostic tools no visual studio e boa, deixei rodando, acontece que
> agora, a primeira vez depois de dias, consegui encontrar um erro, e de
> posso do fonte o visual studio me levou a linha do problema.
>
> Recebo a exceção:
> An unhandled exception of type 'System.NullReferenceException' occurred
> in FrebirdSql.Data.FirebirdClient.dll
>
> Neste momento, está parado no FbCommand.cs, no método
> RollbackImplicitTransaction()
>
> Tem uma linha não tratada:
>
> int transactionCount = Connection.InnerConnection.Dat
> abase.TransactionCount;
>
> Connection = ok
> InnerConnection = null
>
> Usamos eventos e threads, o erro é eventual, não encontrei uma maneira de
> simular para postar no tracker (além do péssimo ingles).
>
> Vendo o código fonte, pensei em apenas mudar para dentro do try, mas não
> acredito que seja a melhor solução (ou se realmente é a solução, já que não
> consegui compilar a dll para testar se resolve).
>
> Segue Trace:
> Activated    Event    Time    Duration    Thread
>     <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>UltraNFe.vshost.exe<
> /AppDomain><Exception><ExceptionType>System.NullReferenceException,
> mscorlib, Version=4.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:\Users\Jiri\Documents\devel\NETProvider\working\Provider\
> src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha 768
>    em FirebirdSql.Data.FirebirdClient.FbCommand.Release() na
> C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\
> src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha 806
>    em FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean
> disposing) na C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\
> src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha 372
>    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:\Users\Jiri\Documents\devel\NETProvider\working\Provider\
> src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha 768
>    em FirebirdSql.Data.FirebirdClient.FbCommand.Release() na
> C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\
> src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha 806
>    em FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean
> disposing) na C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\
> src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:linha 372
>    em System.ComponentModel.Component.Finalize()</
> ExceptionString></Exception></TraceRecord>
>
>
>
>
> -=Ma®©oS=-
> Marcos R. Weimer
> Delphi / C# / ASP.NET / PHP / WebServices / Firebird
>
>



Mais detalhes sobre a lista de discussão lista