问题
For some period time of inactivity, connection to oracle database are dropped and this leads to error - > end-of-file on communication channel
.
1) Is there any oracle settings on client machine (sqlnet.ora or some kind of environment variables) which could specify connection timeout and differs from client to client ? Or it could be client settings of some "heartbeat" feature (client sends packets in some interval), which prevent connection to be dropped by firewall ?
2) Where I can find setting on server machine for connection timeout due inactivity ? Is it possible to see this setting from Sql developer without acquiring physical access to oracle host ?
3) Is it normal behavior for Oracle Sql Developer to be disconnected from Oracle server due inactivity ?
回答1:
There is no client setting that would cause a connection to be dropped leading to an ORA-03113 error after some time. And there is no setting on the database server that would cause a connection to be timed out leading to an ORA-03113 error.
The server can enable dead connection detection (DCD) by setting the sqlnet.expire_time setting in the server's sqlnet.ora. That will cause the server to periodically send a probe packet to verify that the client is still up.
Oracle will never drop a connection due to inactivity with an ORA-03113 error. It is possible to configure Oracle to drop idle connections but that would generate a different error. If you are getting an ORA-03113 error, either the firewall is causing the connection to be dropped or there is some other hiccup in the network between the client machine and the server.
来源:https://stackoverflow.com/questions/12029271/settings-of-connection-timeout-for-oracle-database