我在一个环境中工作,我们不时遇到与 Oracle 连接相关的生产问题。我们从 ASP.NET 应用程序中使用 ODP.NET,我们怀疑防火墙会关闭连接池中的连接时间过长。
有时我们会收到“ORA-12571: TNS packet writer failure”错误,有时我们会收到“ORA-03135: connection lost contact”。
我想知道是否有人遇到过这种情况和/或了解这两个错误之间的区别。
用手机打个比方:
我的理解是连接丢失时会发生 3135。但是,这并不能告诉您连接丢失的原因。它可能已被服务器终止,因为服务器在一定时间内未能收到对探测的响应,并假定连接已死。或者(我不确定)与此完全相反:客户端在一定时间内未能从服务器接收到探测响应,因此它假定连接丢失。“一定的时间量”由 sqlnet.ora 中的 SQLNET.EXPIRE_TIME=[minutes] 控制。
至于 12571,我(再次模糊)的理解是,在与服务器通信期间发送数据包突然失败,这通常是由某些软件或硬件干扰连接(设计或错误)引起的)。例如,如果您拔出以太网电缆然后尝试执行查询,您可能会得到这个。或者,如果防火墙或反恶意软件应用程序决定阻止流量。