尝试使用JCo IDOC_INBOUND_ASYNCHRONOUS函数时出现RFC错误

2020-09-15 18:13发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个Java程序,该程序正在使用JCo IDOC_INBOUND_ASYNCHRONOUS函数从SAP系统接收IDoc。

该程序在我们的一台生产服务器上运行了几个月良好。 从上周开始,每当SAP向程序发送IDoc时,就会发生以下RFC错误(我将实际的服务器名称替换为下面的XXX):

服务器XXX中的异常:com.sap.mw.jco.JCO $ Exception:(104)RFC_ERROR_SYSTEM_FAILURE:有关详细信息,请参阅RFC跟踪文件或SAP系统日志

当我在计算机上(在我的IDE-NetBeans中)启动该程序并且SAP向该程序发送完全相同的IDoc时,不会发生错误,并且IDoc可以成功处理。 因此,我认为问题的根本原因是由于上述生产服务器上的某些更改设置。 但是,我询问此服务器的管理员有关已更改的防火墙设置,补丁程序等的信息,但他说最近没有更改。

如果有人可以分享一些有关如何解决此问题的有用信息,我将不胜感激。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个Java程序,该程序正在使用JCo IDOC_INBOUND_ASYNCHRONOUS函数从SAP系统接收IDoc。

该程序在我们的一台生产服务器上运行了几个月良好。 从上周开始,每当SAP向程序发送IDoc时,就会发生以下RFC错误(我将实际的服务器名称替换为下面的XXX):

服务器XXX中的异常:com.sap.mw.jco.JCO $ Exception:(104)RFC_ERROR_SYSTEM_FAILURE:有关详细信息,请参阅RFC跟踪文件或SAP系统日志

当我在计算机上(在我的IDE-NetBeans中)启动该程序并且SAP向该程序发送完全相同的IDoc时,不会发生错误,并且IDoc可以成功处理。 因此,我认为问题的根本原因是由于上述生产服务器上的某些更改设置。 但是,我询问此服务器的管理员有关已更改的防火墙设置,补丁程序等的信息,但他说最近没有更改。

如果有人可以分享一些有关如何解决此问题的有用信息,我将不胜感激。

付费偷看设置
发送
4条回答
DafaDDDa
1楼-- · 2020-09-15 19:02

你好史蒂芬,

出现错误"服务器XXX中的异常:com.sap.mw.jco.JCO $ Exception:(104)RFC_ERROR_SYSTEM_FAILURE:有关更多详细信息,请参阅RFCtracefile或SAPsystemlog"

请向我们提供详细说明错误的信息。


-> RFC_ERROR_SYSTEM_FAILURE也可能是网关错误。 重要的是,我们检查网关(dev_rd)跟踪文件。

->发生此问题的时间SM21中相应的条目是什么? 他们是否指向诸如CPIC错误之类的东西?



从此开始分析似乎是前进的好方法。


亲切的问候,

Manjunath Hanmantgad

愤怒的猪头君
2楼-- · 2020-09-15 18:51

Hello Steffen,

从这里开始,我的第一步是检入dev_rfc *跟踪。 发行时,ST22中是否还存在运行时错误?

如果没有帮助,那么我们需要开始研究RFC模块。

亲切的问候,

Manjunath Hanmantgad

南山jay
3楼-- · 2020-09-15 18:58

Hello Manjunath,

谢谢您的帮助!

今天,我进行了另一个调试会话。 不幸的是,网关跟踪文件和SM21中的条目没有提供任何有用的信息。

这是SAP发送IDoc时出现在我的Java程序上的错误消息。

 com.sap.mw.jco.JCO $ Exception:(104)RFC_ERROR_SYSTEM_FAILURE:有关详细信息,请参阅RFC跟踪文件或SAP系统日志。
 在com.sap.mw.jco.rfc.Middleware RFC $ Server.nativeListen(本机方法)
 在com.sap.mw.jco.rfc.MiddlewareRFC $ Server.listen(MiddlewareRFC.java:1395)
 在com.sap.mw.jco.JCO $ Server.listen(JCO.java:7067)
 在com.sap.mw.jco.JCO $ Server.run(JCO.java:6996)
 在java.lang.Thread.run(未知来源)
 com.sap.mw.jco.JCO $ Exception:(104)RFC_ERROR_SYSTEM_FAILURE:有关更多详细信息,请参阅RFC跟踪文件或SAP系统日志。
 在com.sap.mw.jco.rfc.Middleware RFC $ Server.nativeListen(本机方法)
 在com.sap.mw.jco.rfc.MiddlewareRFC $ Server.listen(MiddlewareRFC.java:1395)
 在com.sap.mw.jco.JCO $ Server.listen(JCO.java:7067)
 在com.sap.mw.jco.JCO $ Server.run(JCO.java:6996)
 在java.lang.Thread.run(未知来源)

然后,我在该服务器(服务器A)上停止了该程序。 我将其安装在另一台服务器(服务器B)上,该服务器具有相同的操作系统,相同的补丁程序级别,相同的IP范围等。

在服务器B上,IDoc可以成功处理而没有任何错误消息。

我仍然不知道为什么它可以在服务器B上运行而不能在服务器A上运行。

再次,如果有人可以分享一些有关如何解决此问题的有用信息,我将不胜感激。

四川大学会员
4楼-- · 2020-09-15 19:00

嗨,史蒂芬,

1。 检查SAP事务SM58和SM59以及SE16N,以查看数据库表ARFCSDATA和ARFCSSTATE。

2。 还询问SAP团队,它是否像排队的qRFC一样运行,有人可以检查SAP事务监视器SMQ2的入站。

此致

一周热门 更多>