2014-06-30 44 views
0

大家,當我用水壺做循環時,發生錯誤,水壺的內存是8G,我用了幾百個循環,水壺循環了1500次,當循環時間達到700左右次錯誤occourd.how我可以解決它在水壺中獲取StackOverFlow錯誤(PDI)

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

我不是專家在壺。然而,StackOverflowError不是由於內存不足導致的,所以您擁有8Gb堆的事實並不直接相關。什麼是相關的線程堆棧的大小。這是由java命令的-Xss命令行選項控制的。

我也不知道您在Kettle環境中的「週期」是什麼意思......而Google並沒有幫助我。不過,我想這與喬布斯有關,這會導致其他喬布斯運行。而且,由於你達到了700的限制並且需要達到1500,你可能需要將當前線程堆棧大小增加到三倍......無論如何。

+0

對不起,我的英語不好; 非常感謝!你的回答是正確的,它解決了我的問題 – user3790130