在水壶中获取StackOverFlow错误(PDI)

时间:2014-06-30 12:19:59

标签: java kettle

每个人,当我用水壶做循环时,发生错误,水壶的记忆是8G,我用了几百个循环,水壶循环1500次,当循环时间大约700次出现错误时。我可以解决吗?

ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : java.lang.StackOverflowError
   at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
   at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
   at java.io.File.exists(File.java:772)
   at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1057)
   at sun.misc.URLClassPath$FileLoader.findResource(URLClassPath.java:1024)
   at sun.misc.URLClassPath.findResource(URLClassPath.java:172)
   at java.net.URLClassLoader$2.run(URLClassLoader.java:551)
   at java.net.URLClassLoader$2.run(URLClassLoader.java:549)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findResource(URLClassLoader.java:548)
   at java.lang.ClassLoader.getResource(ClassLoader.java:1138)
   at java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:227)
   at org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
   at org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
   at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
   at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
   at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
   at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
   at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
   at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
   at org.pentaho.di.core.xml.XMLHandler.loadXMLFile(XMLHandler.java:553)
   at org.pentaho.di.core.xml.XMLHandler.loadXMLFile(XMLHandler.java:515)
   at org.pentaho.di.core.xml.XMLHandler.loadXMLFile(XMLHandler.java:501)
   at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2797)
   at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2774)
   at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2759)
   at org.pentaho.di.job.entries.trans.JobEntryTrans.getTransMeta(JobEntryTrans.java:1166)
   at org.pentaho.di.job.entries.trans.JobEntryTrans.execute(JobEntryTrans.java:634)
   at org.pentaho.di.job.Job.execute(Job.java:678)
   at org.pentaho.di.job.Job.execute(Job.java:815)
   at org.pentaho.di.job.Job.execute(Job.java:815)
   at org.pentaho.di.job.Job.execute(Job.java:815)

1 个答案:

答案 0 :(得分:1)

我不是Kettle的专家。但是,StackOverflowError不是由内存不足引起的,因此您拥有8Gb堆的事实并不直接相关。相关的是线程堆栈的大小。这由java命令的-Xss命令行选项控制。

我也不知道你在Kettle背景下的“周期”是什么意思...... Google并没有帮助我。但是,我想这与乔布斯有关,导致其他乔布斯运行。而且由于你达到~700的限制并且需要达到~1500,你可能需要将当前线程堆栈大小增加三倍......无论可能是什么。