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參數調大便可,本身設置以下:
相關文章
相關標籤/搜索