1

当通过 VPN 和其他不太完美的网络使用时,SQL Developer 断开连接是一个长期存在的问题。

根据 SQL 开发团队的成员,这是 JDBC 驱动程序中的一个已知错误,无法应对“带外中断”。他还建议将AddVMOption -Doracle.net.disableOob=true设置为解决方法。查看更多信息: OTN 论坛:SQL 开发人员:无法查看表

我想问一下,是否有人知道这个错误正在解决,或者有比上面提出的更好的解决方案?

4

2 回答 2

6

设置 java 系统属性oracle.net.disableOob=true不是一个坏的解决方案,这是常见的误解。Oracle 只是回退到轮询机制,即使查询正在运行,服务器进程也会永久检查是否有客户端发送的取消消息。没有更多的错误JDBC driver(至少没有11.2.0.3),它不起作用的主要原因如下。通过 VPN 连接到 oracle DB 时,肯定有一些防火墙。URG出于许多安全原因,大多数现代防火墙都在清除数据包。他们不会丢弃带有URG标志的数据包,只是清除这些位。

即使在RFC其中写到URG数据包在多个平台上都没有正确实现。

有可能说服安全人员允许使用URG旗帜,但我很害怕与他们一起努力工作。

于 2015-12-18T01:21:08.680 回答
0

这是一个非常古老的问题,但上面@PavolBabel 的回答让我找到了MacOS Big Sur 上的, 和的解决方案SQL*Plus,所以我希望这个建议能对其他人有所帮助。sqlclcx_Oracle

我正在ORA-12571: TNS:packet writer failure使用 Big Sur,但并非所有这些应用程序都支持-DdisableOob=truejava 指令(即cx_Oracle)。

我根据Oracle 的文档添加DISABLE_OOB=on到我的文件中,它修复了 SQL Developer 在 VPN 上不断断开连接的问题;并修复了 SQL*Plus、sqlcl 和 cx_Oracle在 Mac OS Big Sur 上完全无法连接($TNS_ADMIN/sqlnet.oraORA-12571

于 2021-09-02T14:12:46.580 回答