6

在不活动的一段时间内,与 Oracle 数据库的连接被断开,这会导致错误 -> end-of-file on communication channel

  1. 客户端机器上是否有任何 Oracle 设置(sqlnet.ora 或某种环境变量)可以指定连接超时并且因客户端而异?或者它可能是某些“心跳”功能的客户端设置(客户端以某个间隔发送数据包),从而防止连接被防火墙丢弃?

  2. 我在哪里可以找到服务器机器上因不活动而导致连接超时的设置?是否可以在不获取对 oracle 主机的物理访问权限的情况下从 SQL 开发人员那里看到此设置?

  3. Oracle SQL Developer 由于不活动而与 Oracle 服务器断开连接是正常行为吗?

4

1 回答 1

6

没有客户端设置会导致连接断开一段时间后导致 ORA-03113 错误。并且数据库服务器上没有设置会导致连接超时,从而导致 ORA-03113 错误。

服务器可以通过在服务器的 sqlnet.ora 中设置sqlnet.expire_time 设置来启用死连接检测 (DCD) 。这将导致服务器定期发送探测数据包以验证客户端是否仍在运行。

Oracle 永远不会因为 ORA-03113 错误而因不活动而断开连接。可以将 Oracle 配置为丢弃空闲连接,但这会产生不同的错误。如果您收到 ORA-03113 错误,则可能是防火墙导致连接断开,或者客户端计算机和服务器之间的网络中存在其他问题。

于 2012-08-19T19:37:06.877 回答