0

我面临一个问题,我的测试套件随机失败并出现套接字异常


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

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

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

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

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

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

4

1 回答 1

1

如果您有权访问lsnrctl 实用程序,则可以设置跟踪级别:

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 是以下之一:

指定以下跟踪级别之一:

  • 关闭无跟踪输出
  • 用于用户跟踪信息的用户
  • admin 用于管理跟踪信息
  • 对 Oracle 支持服务跟踪信息的支持
于 2011-07-08T20:25:05.197 回答