插入大文件时"ORA-03135:连接失去联系"

Ish*_*now 8 c# oracle odp.net

我正在尝试使用Entity Framework(ODP.Net)将具有潜在大量二进制数据的插入到远程Oracle(11g)数据库中.它适用于非常小的文件(<5 KB),但对于较大的文件(例如44 KB),我收到错误:"ORA-03135:连接失去联系".

我不认为它超时,因为异常发生在执行命令的一秒钟内.

我尝试在我的连接字符串中设置以下两个,但无济于事:

  • Validate Connection=true
  • Pooling=false

我也查看listener.log了远程机器上的文件.它显示正在建立的连接,但没有异常或终止连接的迹象.

我想要建议的修复或故障排除方法.

编辑:

访问本地网络上的Oracle实例时,相同的SQL操作有效.

And*_*nan 3

这可能是一个复杂的问题,有许多不同的可能原因和解决方案。从这里开始:

\n\n

http://www.dba-oracle.com/t_ora_03135_connection_lost_contact.htm

\n\n
\n

答案:oerr 实用程序显示 ORA-03135 错误:

\n\n

ORA-03135: 连接失去联系

\n\n

原因:1) 服务器意外终止或被迫终止。\n 或 2) 服务器连接超时。

\n\n

操作: 1) 检查服务器会话是否终止。\n 2) 检查 sqlnet.ora 中的超时参数是否设置正确。

\n\n

当防火墙终止连接时进行远程连接时,ORA-03135 错误很常见。

\n\n

ORA-03135 错误的一种解决方案是增加 sqlnet.ora 文件中 sqlnet.ora expire_time 参数的值,或检查 SQL*Plus 配置文件中的过期参数。

\n\n

要诊断 ORA-03135 错误,请首先使用 ps \xe2\x80\x93ef|grep 语法检查操作系统 PID 是否仍然存在。

\n\n

检查客户端和服务器之间是否存在网络地址转换 (NAT)

\n\n

在 Windows 中,检查 Windows 防火墙是否正在检查您的本地连接:

\n\n

Windows XP -> 控制面板 -> 安全 -> 选项卡“高级”

\n\n

另外,将参数 sqlnet.inbound_connect_timeout 和 inbound_connect_timeout_listenername 设置为 0 可以阻止 ORA-03135 错误。

\n
\n\n

同样如上所述,检查数据库警报日志以了解在连接断开的同时发生的错误。例如,有时它可能是由 ora-600 或 ora-7445 引起的。它不应出现在侦听器日志中,因为只有在握手完成后才会收到此错误。

\n