"Safe handle has been closed" exception from NpgsqlDataAdapter (Postgresql data adapter)

  • Thread starter Thread starter ProgArch Krakow
  • Start date Start date
P

ProgArch Krakow

Guest
Hi

I get periodically the following exception during sql query submission using Postgresql .Net client. The exception happens with various queries. All queries work perfectly fine connected to Oracle DB. I use the newest Postgresql client. The problem seems to happen after internal call of ExecuteDbDataReader method.

Q1. How can I troubleshot this problem?

Q2. What can happen in this code?



Code


Using cmd As New Npgsql.NpgsqlCommand(sqlQuery, Me.m_Conn)

If cmdTimeout > 0 Then cmd.CommandTimeout = cmdTimeout

Using adapter As New Npgsql.NpgsqlDataAdapter(cmd)

If includeSchema Then adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey

adapter.Fill(Ds, tableName)

End Using

End Using





Exception

trace: System.ObjectDisposedException: Das SafeHandle has been closed.

bei System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success)
bei System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success)
bei System.Net.UnsafeNclNativeMethods.OSSOCK.shutdown(SafeCloseSocket socketHandle, Int32 how)
bei System.Net.Sockets.Socket.Shutdown(SocketShutdown how)
bei Npgsql.AwaitableSocket.Dispose()
bei Npgsql.NpgsqlConnector.Cleanup()
bei Npgsql.NpgsqlConnector.Break()
bei Npgsql.NpgsqlWriteBuffer.<Flush>d__26.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Npgsql.NpgsqlCommand.<SendExecute>d__84.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Npgsql.NpgsqlCommand.<ExecuteDbDataReader>d__100.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
bei lib.DataFactory.GetPostgreSqlData(DataSet& Ds, String sqlQuery, String tableName, Int32 cmdTimeout, Boolean safeMapping, Boolean includeSchema)
bei lib.DataFactory.GetSqlData(DataSet& dsTmp, String sqlQuery, String tableName, Int32 cmdTimeout, Boolean includeSchema)
bei lib.DataFactory.GetSqlData(String sqlQuery, String tableName, Int32 cmdTimeout, Boolean includeSchema)


Continue reading...
 
Back
Top