Signalled When Extracting Large Volumes From SAP Using ODI
出现‘没有更多的存储空间可扩展的内部表’的异常。
适用于:
Oracle数据集成-版本:10.1.3.5.0和更高版本【发布:10gR3和更高版本】
该文档上的信息适用于任何平台。
症状
在ODI集成接口中,当从SAP表加载数据时候抛出”LKM SAP ERP to Oracle(SQLLDR)”,如下是数据加载抛出异常的信息之一:
java.lang.Exception: com/sap/conn/jco/JCOException
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(treatSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(treatSession.java)
...
or
java.lang.RuntimeException: Error occured in open tool execute method...Error in executing ABAP program...The system is configured incorrectly.
Cause: The system is configured incorrectly.
Cause: The system is configured incorrectly.
at oracle.odi.sap.km._OdiSapAbapExecute.chainedSAPException(_OdiSapAbapExecute.java:590)
at oracle.odi.sap.km._OdiSapAbapExecute.execute(_OdiSapAbapExecute.java:538)
or
java.lang.RuntimeException:
Error occured in open tool execute method...
Error in executing ABAP program...
从上面异常分析可以看已经没有更多的存储空间可供内部表的扩展了。
在SAP系统中的错误信息,可以检索到SAP的ST22端转储事务。
原因
SAP程序请求操作系统分配大量计算机内存。但是不幸的是,计算机没有太多的内存来满足这个用户请求。
解决方案
请核对你设置的数据预期值:
对于源数据(不是分期数据)是否执行过滤条件?
所有的过滤器是用于减小到最小数据吗?
对于源数据设置是否加入正确的设置条件?
是否有任何笛卡尔积或不完整的附加条件造成相乘数据?
如果你核查了你的数据集,但是仍然收到错误信息,有如下三种情况:
如果是用于文件传输的FTP模式,请改变共享文件夹,因为它需要较少的内存。
如果使用共享文件夹模式,请减少LKM的BATCH_SIZE参数。
要求SAP 基础团队运行ST22交易事务,查看确切的错误原因,并按需求增加相应的内存。
由于abap/heap_area_nondia在交易事务RZ11中要求增加SAP内存设置。
注意改变这些参数可能会对个系统造成影响,应该由SAP管理员来操作设置。
在这些SAP注释的相关信息也许可以发现问题:
SAP Note 110172 - Windows: Transactions with large memoryrequirements
SAP Note 88416 - Zero administration memory management as of 4.0A/ Windows
SAP Note 552209 - Maximum memory utilization for processes on NT/Win2000
也有可能以上的注释情况都不是,这主要是考虑到serveral片切割分成使用过滤条件和ODI变量分批的数据提取。