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...
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...