套接字异常:recv使用oracle瘦驱动程序失败

时间:2011-07-08 17:21:58

标签: oracle sockets exception jdbc thin

我遇到的问题是我的测试套件随机套接字异常随机失败


oracle.jdbc.driver.T4CStatement 1267 - Throwing SQLException: java.net.SocketException: Software caused connection abort: recv failed 

当以特定顺序执行一组给定的测试用例时,测试套件会因此异常而失败。启用oracle jdbc驱动程序日志后,我收到了上面的错误日志。导致此错误的查询始终是“DROP SEQUENCE查询”。这个查询没有什么特别之处,因为它在执行流程中被解雇了很多次。

其中一个blog link指出上述错误是因为服务器端套接字在客户端期望之前关闭。为了解决更多问题,我尝试分析Oracle TNSListener日志 - listener.log文件,但由于日志文件只包含有关套接字CONNECT函数调用的信息,因此无法收集太多信息。

  1. 除了博客链接提到的错误之外,上述错误的可能原因是什么?

  2. 如何配置Oracle TNSListener以提供有关套接字通信的更多详细信息?对于例如触发服务器套接字关闭事件时跟踪信息。

  3. 如果有人能指出导致此错误的原因,或者提供更多信息可以帮助我根据以上两点进一步解决此问题,我将不胜感激

1 个答案:

答案 0 :(得分:1)

如果您有权访问lsnrctl utility

,则可以设置跟踪级别
LSNRCTL> show trc_level
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to off
The command completed successfully
LSNRCTL> set trc_level admin
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to admin
The command completed successfully
LSNRCTL> show trc_level
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))
LISTENER parameter "trc_level" set to admin
The command completed successfully
LSNRCTL>

从文档中,trc_level是以下之一:

指定以下跟踪级别之一:

  • off for no trace output
  • 用户跟踪用户跟踪信息
  • 管理员用于管理跟踪信息
  • 支持Oracle支持服务跟踪信息