当通过 VPN 和其他不太完美的网络使用时,SQL Developer 断开连接是一个长期存在的问题。
根据 SQL 开发团队的成员,这是 JDBC 驱动程序中的一个已知错误,无法应对“带外中断”。他还建议将AddVMOption -Doracle.net.disableOob=true设置为解决方法。查看更多信息: OTN 论坛:SQL 开发人员:无法查看表
我想问一下,是否有人知道这个错误正在解决,或者有比上面提出的更好的解决方案?
当通过 VPN 和其他不太完美的网络使用时,SQL Developer 断开连接是一个长期存在的问题。
根据 SQL 开发团队的成员,这是 JDBC 驱动程序中的一个已知错误,无法应对“带外中断”。他还建议将AddVMOption -Doracle.net.disableOob=true设置为解决方法。查看更多信息: OTN 论坛:SQL 开发人员:无法查看表
我想问一下,是否有人知道这个错误正在解决,或者有比上面提出的更好的解决方案?
设置 java 系统属性oracle.net.disableOob=true
不是一个坏的解决方案,这是常见的误解。Oracle 只是回退到轮询机制,即使查询正在运行,服务器进程也会永久检查是否有客户端发送的取消消息。没有更多的错误JDBC driver
(至少没有11.2.0.3
),它不起作用的主要原因如下。通过 VPN 连接到 oracle DB 时,肯定有一些防火墙。URG
出于许多安全原因,大多数现代防火墙都在清除数据包。他们不会丢弃带有URG
标志的数据包,只是清除这些位。
即使在RFC
其中写到URG
数据包在多个平台上都没有正确实现。
有可能说服安全人员允许使用URG
旗帜,但我很害怕与他们一起努力工作。
这是一个非常古老的问题,但上面@PavolBabel 的回答让我找到了MacOS Big Sur 上的, 和的解决方案SQL*Plus
,所以我希望这个建议能对其他人有所帮助。sqlcl
cx_Oracle
我正在ORA-12571: TNS:packet writer failure
使用 Big Sur,但并非所有这些应用程序都支持-DdisableOob=true
java 指令(即cx_Oracle
)。
我根据Oracle 的文档添加DISABLE_OOB=on
到我的文件中,它修复了 SQL Developer 在 VPN 上不断断开连接的问题;并修复了 SQL*Plus、sqlcl 和 cx_Oracle在 Mac OS Big Sur 上完全无法连接($TNS_ADMIN/sqlnet.ora
ORA-12571