Reliability issues
as stated in a previous message, we have to connect over long distances to our database, and as a result it happens we get connections problems (VPN down, ISP problems, etc...). We of course try to handle the error conditions and recover gracefully, but sometime we get problems I've not been able to go around.
To connected to the database our C++ multithread application uses a connection pool (OCIConnectionPoolCreate), and get the connections for the individual statements using OCISessionGet. Most of the time it works nicely, but sometimes when we lose the connection we ran into problems. Using some network analysis tools I found out that the following scenario happens: