kettle 数据库链接中断重置

项目适用kettle做为etl工具,源数据库为mysql库,目标库为oracle。在持续的循环调度中,常常发现oracle的数据库链接中断,须要重置。java

具体报错信息以下:
INFO  26-12 23:40:13,220 - Kitchen - Logging is at level : Basic logging
INFO  26-12 23:40:13,221 - Kitchen - Start of run.
INFO  26-12 23:40:13,374 - WAN_PT_OLD_SJ_DAY_ADD - Start of job execution
ERROR 26-12 23:42:50,832 - WAN_PT_OLD_SJ_DAY_ADD - A serious error occurred during job execution: org. pentaho.di.core.exception.KettleDatabaseException: 
Error occured while trying to connect to the database

Invalid JNDI connection ETL : IO Error: Connection reset


INFO  26-12 23:42:50,837 - Kitchen - Finished!
ERROR 26-12 23:42:50,837 - Kitchen - Finished with errors
INFO  26-12 23:42:50,838 - Kitchen - Start=2013/12/26 23:40:13.221, Stop=2013/12/26 23:42:50.837
INFO  26-12 23:42:50,838 - Kitchen - Processing ended after 2 minutes and 37 seconds (157 seconds total).
 
将oracle会话超时不设限,而且将机器的防火墙关闭后,问题仍然存在。
网上查阅资料后发现主要问题是oracle 11g 和centos 64的不兼容bug形成的。

可能缘由是1:jvm试图展现/tmp文件夹下的内容,可是/tmp文件内内容过多超时;
                2:函数nextBytes(byte[]) 在linux上使用/dev/random计数时,致使登陆中断从而超时
解决方法,在sh文件中的java 命令行中增长参数:-Djava.security.egd=file:/dev/../dev/urandom mysql

如在kitchen.sh/pan.sh文件的以下修改后问题便可解决:
 
1.若是显示内存溢出,便可如上图在javamaxmem处增长内存便可,本机设置为10g,通常不超过内存一半便可。
2.若是链接mysql显示时间超时,将mysql数据库的timeout参数调大便可,本身设置以下:
相关文章
相关标签/搜索