ORA-03137: malformed TTC packet from client reject

2020-09-02 00:00:00 专区 生产 错误 巡检 是个

数据库巡检还是比较重要的一项工作,如果有自动化运维工具效率更高一些,但是对于各种指标的设置,哪些告警需要提取,依然需要DBA的参与。

这这今天的错误是个常规巡检发现的。我们看错误信息如下:

ORA-03137: malformed TTC packet from client rejected: [3146] [94] [] []

w   通过oerr ora 3137 查询这个错误号解释也是比较模糊:大致意思是错误格式的packet被拒绝了,cause是TTC包格式错误,这种解释其实我们跟不无法具体理解,因为我们

根本无法理解这个TTC包的具体格式信息,还是到MOS上找找吧(其实遇到奇怪问题,高概率是要查MOS的,毕竟是人家非开源产品,强大的生态和技术支持提供了几乎我们遇到绝大多数问题,通过在MOS查ORA-03137: malformed TTC packet from client rejected: [3146] [94] [] []关键字,我们查到一篇文章如下所示:

ORA-03137: malformed TTC packet from client rejected: [3146] [94] [] [] [] [] [] [] While Using JDBC 12.2.0.1 (Doc ID 2519886.1)

其中的特征是这样描述的:

ORA-03137: malformed TTC packet from client rejected: [3146] [94] [] [] [] [] [] [] occurs while using the JDBC 12.2.0.1 driver.使用12.2.0.1 JDBC 驱动时报3137错误。

而原因是:意思是说遇到了比如内存溢出类似的异常,JDBC发出网络请求,而这个请求导致了违反协议。这明显是个bug.Oracle也承认这是unpublished bug

After an unexpected error, like OutOfMemoryException, JDBC could issue a network request which results in a protocol violation. This is reported in unpublished bug :BUG 24470504 - APPS R1223 BENCHMARK STRESS TEST HIT ORA 3137 [3146]  ORA-03137: malformed TTC packet from client rejected: [3146] [94] [] [] [] [] [] []

解决方式:

Upgrade to JDBC 18.3 

其实这个问题处理起来也比较简单,这里强调的是需要咱们认真分析错误,查询错误,定位错误,把巡检发现的故障、性能隐患搞清楚。

相关文章