Using C# and Oracle Data Provider for .NET (ODP) I made a long query to the database, then I end the connection on the server side using TOAD. After that, the subsequent calls to the database, even creating a new OracleConnection object, throw the following error:
ORA-01012: not logged on
Process ID: xxx
Session ID: yyy Serial number: zzz
Where Process ID and Session ID are the identifiers I used to end the connection.
It seems like when I end the connection to the Oracle database on the server side, the broken connection is returned to the connection pool. And when the C# client code (using ODP) opens a new connection, the broken connection that was returned to the connection pool may be retrieved.
Any ideas on how to fix this behaviour?
BTW I'm using Oracle client 10
I solved my problem by setting to true the "Validate Connection" property in the connection string.
you can read more here
As a warning I quote the Oracle docs.