vlambda博客
学习文章列表

处理Tomcat日志以及ORA-17401故障(ojdbc)

一个上午折腾了一个站点的故障:查看了tomcat日志:

tail -f /ntdata/runtime/apache-tomcat-7.0.72/report/logs/catalina.out | grep ERROR

其中大量的以下错误:

SQL state [99999]; error code [17401]; Protocol violation: [ 10, ]; nested exception is java.sql.SQLException: Protocol violation: [ 10, ]

检查应该是ORA-17401的故障代码,最主要的原因是ojdbc的版本不正确导致。因为故障处理的有些匆忙,没有找到正确的ojdbc版本。直接使用了ojdbc14进行了替换。查询正常了,但是java程序写的邮件定时发送出现了问题。不停的重复发送。

查找了网上的解决方案:

  1. 替换掉应用jar包中的ojdbc(我使用的是WinZip替换的);
  2. 把应用jar包的"META-INF/MANIFEST.MF"文件中的ojdbc版本的引用修改至最新(修改MANIFEST.MF对包的引用Export-Package)。

期间,来来回回折腾,最后还是在Oracle官网上找到了正确的ojdbc8版本:

https://www.oracle.com/database/technologies/appdev/jdbc-ucp-19c-downloads.html。

调整完毕之后,就目前来看,已经恢复到了正常的状态。这段时间没有如此的顺畅过。过一会儿,把邮件通报的程序启动起来试一下,应该不会再有问题了。