|
From: Uri S. <us...@gm...> - 2005-11-30 06:49:09
|
Hi everyone:
We're using Firebird 1.5 embedded within our single-user, desktop Windows
.NET app, and are seeing very frequent exceptions if we use Pooling=3Dfalse=
in
our connection string. We wanted to try the no-pooling feature because we
thought it *might* make the database less subject to corruption when its FD=
B
file is on a removable disk that may disappear at any moment. We do Close()
the connection right after every transaction. Anyway, once we turned on
Pooling=3Dfalse, we get frequent (albeit intermittent) exceptions : "Except=
ion
of type FirebirdSql.Data.Common.IscException was thrown" (errorCode
335544485) with the following stack trace:
>
firebirdsql.data.firebird.dll!FirebirdSql.Data.Embedded.FesDatabase.ParseSt=
atusVector(int[]
statusVector =3D {Length=3D20}) + 0x4e bytes
>firebirdsql.data.firebird.dll!FirebirdSql.Data.Embedded.FesStatement.Free(=
int
option =3D 2) + 0xc3 bytes
>firebirdsql.data.firebird.dll!FirebirdSql.Data.Common.StatementBase.Releas=
e()
+ 0x4d bytes
>
firebirdsql.data.firebird.dll!FirebirdSql.Data.Embedded.FesStatement.Dispos=
e(bool
disposing =3D true) + 0x35 bytes
>firebirdsql.data.firebird.dll!FirebirdSql.Data.Common.StatementBase.Dispos=
e()
+ 0x16 bytes
>firebirdsql.data.firebird.dll!FirebirdSql.Data.Firebird.FbCommand.Release(=
)
+ 0x52 bytes
>firebirdsql.data.firebird.dll!FirebirdSql.Data.Firebird.FbCommand.Dispose(=
bool
disposing =3D false) + 0x4f bytes
>system.dll!System.ComponentModel.Component.Finalize() + 0x1d bytes
The underlying ISC error is "invalid statement handle". These may be due to
.NET garbage collection, or to the .NET Firebird DataProvider we use, or to
Firebird itself -- we just don't know enough to tell. We've *never* seen
these before we turned Pooling off. Plus, with the embedded server, we
thought there would be only one connection anyway (and yes, we're
single-threaded when accessing the database). Any suggestions as to why thi=
s
might be happening, or where we should go ask this question, or why we
shouldn't use Pooling=3Doff to begin with?
Thanks in advance!
Uri
|