"ORA-01012" error message when trying to connect to an Oracle database
c#, odp.net, oracle10g
Solution
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.
The Validate Connection attribute validates connections coming out of the pool. This attribute should only be used when absolutely necessary because it causes a server round-trip to the database to validate each connection right before it is provided to the application. If invalid connections are uncommon, developers can create their own event handler to retrieve a new connection, rather than using Validate Connection. This generally provides better performance.
Problem
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