KETTLE_内存溢出错误(四)

2015-02-03 04:15:44 · 作者: · 浏览: 88
step.RunThread.run(RunThread.java:60) 2015/01/05 12:25:09 - 表输入.0 - at java.lang.Thread.run(Unknown Source) 2015/01/05 12:25:09 - 表输入.0 - Caused by: java.sql.SQLException: ORA-03111: 通信通道收到中断 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1082) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:369) 2015/01/05 12:25:09 - 表输入.0 - at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:273) 2015/01/05 12:25:09 - 表输入.0 - at org.pentaho.di.core.database.Database.getRow(Database.java:2290) 2015/01/05 12:25:09 - 表输入.0 - ... 4 more 2015/01/05 12:25:09 - 表输入.0 - Finished reading query, closing connection. 2015/01/05 12:25:09 - 表输入.0 - 完成处理 (I=20580, O=0, R=1, W=20579, U=0, E=1 2015/01/05 12:25:09 - TABLE_BWWN - ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : 错误被检测到! 2015/01/05 12:25:09 - Spoon - 转换完成!! 2015/01/05 12:25:09 - TABLE_BWWN - ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : 错误被检测到! 2015/01/05 12:25:09 - TABLE_BWWN - ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : 错误被检测到! 2015/01/05 12:25:09 - TABLE_BWWN - TABLE_BWWN 2015/01/05 12:25:09 - TABLE_BWWN - TABLE_BWWN

解决方法:
找到kettle目录下的Spoon.bat文件,找到如下部分:

REM ******************************************************************
REM ** Set java runtime options                                     **
REM ** Change 512m to higher values in case you run out of memory   **
REM ** or set the PENTAHO_DI_JAVA_OPTIONS environment variable      **
REM ******************************************************************

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xmx512m" "-XX:MaxPermSize=256m"

set OPT=%PENTAHO_DI_JAVA_OPTIONS% "-Djava.library.path=%LIBSPATH%" "-DKETTLE_HOME=%KETTLE_HOME%" "-DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "-DKETTLE_LOG_SIZE_LIMIT=%KETTLE_LOG_SIZE_LIMIT%" "-DKETTLE_JNDI_ROOT=%KETTLE_JNDI_ROOT%"

修改参数,将内存值调大(256的倍数),调整后如下所示:

REM ******************************************************************
REM ** Set java runtime options                                     **
REM ** Change 512m to higher values in case you run out of memory   **
REM ** or set the PENTAHO_DI_JAVA_OPTIONS environment variable      **
REM ******************************************************************

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xmx1024m" "-XX:MaxPermSize=2