此文章不仅是为了问题而专门记录,可以借鉴这个思路去解决一些问题(也是作者小小对自己解决问题思路的一次梳理)
环境:
数据库版本:oracle11g---11.2
linxu环境:centos7
kettle版本:8.0
jdk版本:1.8sunjdk
ojdbc版本:oracle-6.jar
kettle直观错误日志:
idea工具中运行错误日志(嵌入java项目中的运行时的日志,基本同上):
一:经过排查,kettle的数据库连接参数没有问题,ktr和kjb文件编码也正常,整个操作和代码没有问题。
二:经过使用,有同事可以正常执行,本人使用也偶尔可以正常执行。
最终将问题定位到数据库原因导致:
数据库排查,表空间是否自增,是否是因为表空间资源不足导致连接失败。(排查后否定)
数据库日志查看,oracle11g日志在:
参考目录(每个人的安装原因,肯定会不一样,但是肯定在rdbms下): /home/db/oracle/app/oracle/diag/rdbms/orcl/orcl/alert
排查问题问题,基本这个目录的日志已够用,还有日志在其他目录。
打开后发现:
<msg time='2020-09-10T11:41:48.870+08:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='node01'
host_addr='10.211.55.3'>
<txt>TNS-12537: TNS:connection closed
</txt>
</msg>
<msg time='2020-09-10T11:41:48.870+08:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='node01'
host_addr='10.211.55.3'>
<txt> ns secondary err code: 12560
</txt>
</msg>
<msg time='2020-09-10T11:41:48.870+08:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='node01'
host_addr='19.211.55.3'>
<txt> nt main err code: 0
</txt>
</msg>
<msg time='2020-09-10T11:41:48.870+08:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='node01'
host_addr='19.211.55.3'>
<txt> nt secondary err code: 0
</txt>
</msg>
<msg time='2020-09-10T11:41:48.870+08:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='node01'
host_addr='19.211.55.3'>
<txt> nt OS err code: 0
</txt>
</msg>
<msg time='2020-09-10T11:41:48.871+08:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='node01'
host_addr='19.211.55.3' pid='3532'>
<txt>opiodr aborting process unknown ospid (3532) as a result of ORA-609
</txt>
</msg>
查询相关文档,发现在oracle11g一些小版本普遍存在这个问题。
贴出:
在此感谢(该图资源原文博主):https://www.cnblogs.com/ss-33/p/11113614.html
意思是找到sqlnet.ora 文件,添加该配置:SQLNET.INBOUND_CONNECT_TIMEOUT=120
sqlnet.ora文件参考目录:/home/db/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin
如果此目录下没有,则在samples目录下查找,samples目录就在当前目录下,找到后拷贝一份sqlnet.ora到当前目录,然后修改添加配置SQLNET.INBOUND_CONNECT_TIMEOUT=120即可(添加后无需重启oracle)。
注意: oracle后续版本此bug已被修复