目前的情况是这样的 - 我有两个 Web 服务器(目前名为 A 和 B)和两个数据库服务器(名为 C 和 D)。Web 服务器相当老旧,运行的是早期版本的 Apache 2 + PHP4,而数据库服务器分别运行 Oracle 9i 和 10g。我们在仅使用 Web 服务器 B 时(通过 PHP 代码)连接到数据库 A 时遇到了一个奇怪的问题。Web 服务器 A 完全没有问题……Web 服务器 B 会随机报告“未连接到 Oracle”错误 (3114)。我看不出这有什么实际规律,但刷新几次似乎可以解决问题。显然网络接口上没有掉线,这让我相信 PHP/Apache 和 Oracle(使用连接池)之间存在一些配置错误。我们运行的是 SunOS 5.8……
有任何想法吗?
答案1
检查 oracle 用户配置文件中的参数“最大空闲时间”和 sqlnet.ora 中的 SQLNET.EXPIRE_TIME
查看 Oracle 服务器上的日志和 .trc 文件,确定断开连接的原因。
PS:在 Oracle 10G 的早期版本中,连接池可能不稳定