点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在尝试执行SAP功能。 但是在执行此功能之前,我会收到此错误:
java.lang.OutOfMemoryError:超出GC开销限制
java.util.zip.InflaterInputStream。
java.util.zip.ZipFile $ ZipFileInflaterInputStream。
位于
的java.util.zip.ZipFile.getInputStream(ZipFile.java:374)
java.util.jar.JarFile.getBytes(JarFile.java:424)在
java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)在
java.util.jar.JarFile.getManifest(JarFile.java:180)在
sun.misc.URLClassPath $ JarLoader $ 2.getManifest(URLClassPath.java:944)在
java.net.URLClassLoader.defineClass(URLClassLoader.java:450),位于
java.net.URLClassLoader.access $ 100(URLClassLoader.java:73),位于
java.net.URLClassLoader $ 1.run(URLClassLoader.java:368)在
java.net.URLClassLoader $ 1.run(URLClassLoader.java:362)在
java.security.AccessController.doPrivileged(本机方法),位于
java.net.URLClassLoader.findClass(URLClassLoader.java:361)位于
java.lang.ClassLoader.loadClass(ClassLoader.java:424)在
java.lang.ClassLoader.loadClass(ClassLoader.java:357)在
com.sap.conn.rfc.engine.RfcImp.receiveCallStack(RfcImp.java:543)位于
com.sap.conn.rfc.engine.RfcGet.ab_rfcget(RfcGet.java:414)at
com.sap.conn.rfc.engine.RfcRcv.ab_rfcreceive(RfcRcv.java:36)at
com.sap.conn.rfc.engine.RfcIoOpenCntl.RfcReceive(RfcIoOpenCntl.java:2020 at
上的
com.sap.conn.rfc.engine.RfcIoOpenCntl.RfcCallReceive(RfcIoOpenCntl.java:2158)
com.sap.conn.jco.rt.MiddlewareJavaRfc $ JavaRfcClient.reset(MiddlewareJavaRfc.java:1465)位于
com.sap.conn.jco.rt.ClientConnection.internalReset(ClientConnection.java:521)at
com.sap.conn.jco.rt.PoolingFactory.releaseClient(PoolingFactory.java:677)位于
com.sap.conn.jco.rt.ConnectionManager.releaseClient(ConnectionManager.java:234)位于
com.sap.conn.jco.rt.Context.releaseConnection(Context.java:265)位于
com.sap.conn.jco.rt.RfcDestination.execute(RfcDestination.java:1503)在
com.sap.conn.jco.rt.RfcDestination.execute(RfcDestination.java:1469)在
com.sap.conn.jco.rt.AbapFunction.execute(AbapFunction.java:340)
亲爱的Partish,
通常,JCo库本身不会引起内存不足的问题。 由于JCo不负责将流程执行仅作为通信库进行分发,因此,性能/OOM问题不是JCo,而是应用程序。 知道了这个而不是应用程序会导致在其中执行JCo通信逻辑的OOM。 因此,需要找出该应用程序。 从跟踪可以看出,在这种情况下,JCo充当服务器。 但是,它是AS Java应用程序服务器还是独立的JCO服务器并不清楚。
情况如何:
1。 JCO服务器(AS Java)在GW上注册程序。
2。 ABAP调用应用程序中的功能模块,例如 AS Java。
3。 然后,应用程序执行逻辑(它将是RFC-> RFC服务器)并将数据发送回客户端。
仅基于此堆栈跟踪的根本原因无法确定。 我可以为您提供一些最佳做法:
如果JCo在Application Server Java中,请检查文件夹" \\ usr \ sap \
如果没有堆转储,则可以根据KBA:2350640-如何获取堆转储,然后在KBA:1883568对其进行分析的同时,生成它。
如果这样做不能解决问题,您可以按照以下说明打开JCo跟踪来进行进一步操作(对于独立JCo而言):628962-如何打开SAP JCo跟踪(级别8跟踪就足够了 )。 打开跟踪之后,您可以重现问题并分析跟踪。 通过根据问题的时间戳进行搜索,最重要的信息将出现在JCO
为了提高性能,请确保:
对于AS Java服务器,您使用的是AS Java核心组件的最新修补程序:1794179-为NetWeaver 7.1+导入AS Java Core补丁。对于独立的JCo服务器,请使用最新版本 JCo库:1077727-SAP JCo 3.0版本和支持策略。
最好的问候,
BarnabásPaksi
您好 Barnabas Zoltan 帕克西,
感谢您的回答。
我们正在使用Java AS。 如果我使用MARA,则能够执行相同的RFC调用,但对于MARC,我会收到此错误。
我尝试在SAP端执行相同的程序,但该程序已成功执行,因此我认为JCO库存在问题。
由于您提供的答案是针对一般情况的,即所有RFC都失败了,但就我的情况而言,它仅在某些特定表中才发生。 到目前为止,我只知道一个失败的表(MARC)。
请让我知道在哪种情况下我会出现此错误。
谢谢。
最好的问候
Partish Singla
一周热门 更多>