ODI导入:java.lang.outofmemoryerror:GC间接费用限制超过了



我正在尝试使用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无关。

最新更新