我正在尝试使用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 toaddvMoption -xx:maxPermsize = 4096m
还有其他建议吗?
非常感谢
您可以尝试-XX:-UseGCOverheadLimit
您需要增加年轻/旧一代的大小,而不是永久一代。将参数更改为-XMX4096M(或类似)。
永久生成包含虚拟机身的所有反射数据,例如类和方法对象。您的OOM异常来自数组副本,因此与Perm Gen无关。