在一段时间不活动时,与oracle数据库的连接被删除,这会导致错误 - > end-of-file on communication channel
。
1)客户端计算机上是否有任何oracle设置(sqlnet.ora或某种环境变量)可以指定连接超时并且客户端不同?或者它可能是某些“心跳”功能的客户端设置(客户端在某个时间间隔内发送数据包),这会阻止连接被防火墙丢弃?
2)在哪里可以找到服务器机器上因无活动而导致连接超时的设置?是否可以从Sql开发人员那里看到此设置而无需获取对oracle主机的物理访问权限?
3)Oracle Sql Developer因不活动而与Oracle服务器断开连接是否正常?
答案 0 :(得分:5)
没有客户端设置会导致连接被丢弃,导致一段时间后出现ORA-03113错误。并且数据库服务器上没有任何设置会导致连接超时,从而导致ORA-03113错误。
服务器可以通过在服务器的sqlnet.ora中设置sqlnet.expire_time setting来启用死连接检测(DCD)。这将导致服务器定期发送探测包以验证客户端是否仍在运行。
由于ORA-03113错误不活动,Oracle永远不会丢弃连接。可以将Oracle配置为删除空闲连接,但这会产生不同的错误。如果您收到ORA-03113错误,则防火墙导致连接断开或客户端计算机与服务器之间的网络中存在其他一些打嗝。