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