我正在尝试使用ODI Studio 12c导入ODI中的大型项目。 导入3小时后,该过程失败,并显示以下错误:
java.lang.RuntimeException: java.lang.OutOfMemoryError: GC overhead limit exceeded
at oracle.odi.ui.framework.adapter.DefaultAdapter.executeBackgroundTask(DefaultAdapter.java:636)
at oracle.odi.ui.framework.UIFramework.executeBackgroundTask(UIFramework.java:452)
at oracle.odi.ui.smartie.imp.ImportSmartWizard.runImportProcess(ImportSmartWizard.java:394)
at oracle.odi.ui.smartie.imp.ImportSmartWizard.runImport(ImportSmartWizard.java:260)
at oracle.odi.ui.smartie.imp.ImportSmartWizard.finished(ImportSmartWizard.java:205)
at
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOfRange(Arrays.java:2694)
at java.lang.String.<init>(String.java:203)
at java.lang.StringBuilder.toString(StringBuilder.java:405)
at java.lang.Class.getDeclaredMethod(Class.java:2004)
at com.sunopsis.dwg.smartie.RunSmartImport.run(RunSmartImport.java:3264)
我增加了选项 AddVMOption -XX:MaxPermSize = 1024M to AddVMOption -XX:MaxPermSize = 4096M
还有其他建议吗?
非常感谢
答案 0 :(得分:1)
您可以尝试-XX:-UseGCOverheadLimit
答案 1 :(得分:0)
你需要增加年轻/老一代的规模,而不是永久的一代。将参数更改为-Xmx4096m(或类似)。
永久代包含虚拟机本身的所有反射数据,例如类和方法对象。您的OOM异常来自阵列副本,因此与perm gen无关。