bgRFC-数据库提交被应用程序阻止

2020-09-09 07:40发布

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

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



你好

我们在系统中配置了bgRFC。 我们使用它来启动外部Web服务。

在SBGRFCMON中,我们几乎总是收到错误:"数据库提交被应用程序阻止"。

在SM12中出现两个锁:一个在BGRFC_I_SERVER_REGISTRATION上,一个在BGRFC_O_SERVER_REGISTRATION上。

在ST22中,我们有以下转储内容:

客户.............. 200

User ................" U0000657"

交易.........""

调用程序........." CL_BGRFC_DS_EXEC_INBOUND ====== CP"

功能模块..." BGRFC_DEST_SHIP"

呼叫目标。..." d11_D11_00"

源服务器......." d11_D11_00"

终止发生在ABAP程序" SAPLHTTP_RUNTIME"中-在
" HTTP_READ_SC"中。
主程序是" SAPMSSY1"。

在源代码中,(包含)程序" LHTTP_RUNTIMEU07"的第22行有终止点。

*使用新的系统调用界面已全部废弃!!!
数据:fields_dummy类型tihttpnvp,
cookies_dummy类型tihttpcki,
data_dummy类型xstring,
content_type_dummy类型字符串,
content_name_dummy类型 字符串,
state_dummy类型为i,
parse_body_dummy类型为i,
rc类型为i。

connection-ecode =101。"未知模式
系统调用插件
id'HTTP'值'Receive'" #EC NOTEXT
id'Name'值连接 -name" #EC NOTEXT
id'EntityFields'表fields_dummy []" #EC NOTEXT
id'EntityCookies'表cookies_dummy []" #EC NOTEXT
id'EntityContentType'值content_type_dummy" #EC NOTEXT < br> id'EntityContentName'值content_name_dummy" #EC NOTEXT
id'EntityState'值state_dummy" #EC NOTEXT
id'EntityParseBody'值parse_body_dummy" #EC NOTEXT
id'EntityBody'值data_dummy" #EC NOTEXT
* id'EntityHeader'VALUE标头。
id'MessageIn'值c_msg" #EC NOTEXT
id'ConnectionId'值connection_id" #EC NOTEXT
id'RC'值rc。 " #EC NOTEXT

当我们在不使用bgRFC的情况下启动同一功能(通过Web服务)时-同步-一切正常。

任何人都知道我们可能在哪里寻找解决此问题的方法吗?

谢谢。

克里斯

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

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



你好

我们在系统中配置了bgRFC。 我们使用它来启动外部Web服务。

在SBGRFCMON中,我们几乎总是收到错误:"数据库提交被应用程序阻止"。

在SM12中出现两个锁:一个在BGRFC_I_SERVER_REGISTRATION上,一个在BGRFC_O_SERVER_REGISTRATION上。

在ST22中,我们有以下转储内容:

客户.............. 200

User ................" U0000657"

交易.........""

调用程序........." CL_BGRFC_DS_EXEC_INBOUND ====== CP"

功能模块..." BGRFC_DEST_SHIP"

呼叫目标。..." d11_D11_00"

源服务器......." d11_D11_00"

终止发生在ABAP程序" SAPLHTTP_RUNTIME"中-在
" HTTP_READ_SC"中。
主程序是" SAPMSSY1"。

在源代码中,(包含)程序" LHTTP_RUNTIMEU07"的第22行有终止点。

*使用新的系统调用界面已全部废弃!!!
数据:fields_dummy类型tihttpnvp,
cookies_dummy类型tihttpcki,
data_dummy类型xstring,
content_type_dummy类型字符串,
content_name_dummy类型 字符串,
state_dummy类型为i,
parse_body_dummy类型为i,
rc类型为i。

connection-ecode =101。"未知模式
系统调用插件
id'HTTP'值'Receive'" #EC NOTEXT
id'Name'值连接 -name" #EC NOTEXT
id'EntityFields'表fields_dummy []" #EC NOTEXT
id'EntityCookies'表cookies_dummy []" #EC NOTEXT
id'EntityContentType'值content_type_dummy" #EC NOTEXT < br> id'EntityContentName'值content_name_dummy" #EC NOTEXT
id'EntityState'值state_dummy" #EC NOTEXT
id'EntityParseBody'值parse_body_dummy" #EC NOTEXT
id'EntityBody'值data_dummy" #EC NOTEXT
* id'EntityHeader'VALUE标头。
id'MessageIn'值c_msg" #EC NOTEXT
id'ConnectionId'值connection_id" #EC NOTEXT
id'RC'值rc。 " #EC NOTEXT

当我们在不使用bgRFC的情况下启动同一功能(通过Web服务)时-同步-一切正常。

任何人都知道我们可能在哪里寻找解决此问题的方法吗?

谢谢。

克里斯

付费偷看设置
发送
2条回答
蓋茨
1楼 · 2020-09-09 08:21.采纳回答

bgRFC有一个提交陷阱,因为通常不建议在bgRFC单元处理中进行提交。 如果需要提交(例如,由WS处理中的HTTP调用引起的隐式DB提交),则可以选择关闭特定bgRFC单元的bgRFC提交陷阱。 这是通过接口IF_BGRFC_UNIT公开的,例如 WS出于上述原因使用了它。

因此,如果bgRFC提交陷阱负责转储,则应用程序可以选择避免提交或关闭提交陷阱。

这是解决问题的语句:

gr_unit-> if_bgrfc_unit〜disable_commit_checks()。

致谢。

追夢秋陽
2楼-- · 2020-09-09 07:56

感谢Kris Claes提供解决方案。

一周热门 更多>