并行处理错误最大会话数

2020-08-15 15:53发布

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

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


嗨,

我使用RFC实现了并行处理,但遇到一个错误–用户登录后首次执行时,"达到内部会话的最大数量"。 在用户存在并重新执行之前,所有后续执行都可以正常工作,没有错误。

当它发出此错误时,我注意到SM04中带有"应用程序信息<远程客户端代理>"的额外RFC会话。

预先感谢

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

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


嗨,

我使用RFC实现了并行处理,但遇到一个错误–用户登录后首次执行时,"达到内部会话的最大数量"。 在用户存在并重新执行之前,所有后续执行都可以正常工作,没有错误。

当它发出此错误时,我注意到SM04中带有"应用程序信息<远程客户端代理>"的额外RFC会话。

预先感谢

付费偷看设置
发送
6条回答
Violet凡
1楼 · 2020-08-15 16:09.采纳回答

这是SAP支持部门的回复:

--------------------------------------------------- -------------------------------------------------- ----------------------------------

在执行功能模块-'BAPI_ACC_DOCUMENT_CHECK'期间,将访问GUI,以获取需要一种额外外部模式的GUI属性。

由于外部模式的数量有限,您会收到错误消息

"已达到SAP GUI会话的最大数量"

在同一登录会话中重新启动应用程序时,有关GUI的信息已经可用,因此无法访问GUI。

如果您在后台执行报告,则RFC调用不希望GUI连接,因此不会发生错误。

调用堆栈:

呼叫功能BAPI_ACC_DOCUMENT_CHECK
执行文件检查(程序SAPLACC9)
执行CHECK_RWIN(程序SAPLACC9)
呼叫功能AC_DOCUMENT_CREATE
执行文件CREUNC(程序SAPLFBAS)
CALL CL_GM_CODING_BLOCK_MGR => DERIVE_AND_VALIDATE,点击呼叫的方法CL_GM_CODING_BLOCK_MGR => DERIVE_GM_OBJECTS(),点击呼叫的方法CL_BSSP_PSM_TAGGING_SERVICE => SET_TAB_SPONSORED_OBJ,点击呼叫的方法CL_LSAPI_MANAGER => GET_INSTANCE,点击呼叫的方法CL_NWBC_GUI_CONTROL => CLASS_CONSTRUCTOR,点击呼叫的方法CL_GUI_FRONTEND_SERVICES => CHECK_GUI_SUPPORT
呼叫方法CL_GUI_FRONTEND_SERVICES => GET_GUI_PROPERTIES
呼叫方法CL_GUI_CFW => FLUSH <呼叫功能> AC_FLUSH_CALL <呼叫功能 FL_H_CALL_INTERNAL
RFC OLE

OLE_FLUSH_CALL是对GUI的RFC调用。

这由方法GET_GUI_PROPERTIES触发。

对于您的应用程序方法的每次后续执行,仍然会调用CHECK_GUI_SUPPORT,但不再调用GET_GUI_PROPERTIES。

方法CL_LSAPI_MANAGER => GET_INSTANCE检查使用的是哪种GUI。

Alawn_Xu
2楼-- · 2020-08-15 16:11

很抱歉,给出了错误的消息。 这是确切的消息-消息号为14(017)的"已达到SAP GUI会话的最大数量"。 另外,在SM04中,我看到带有描述"远程客户端代理"的其他RFC会话,它们仅在前几秒钟处于活动状态。

remote-client-proxy-rfc-sessions.jpg

Tong__Ming
3楼-- · 2020-08-15 16:16

Nageswara Katta

在启动之前,对于并行处理,服务器中的最大会话数 组 使用FM确定并保留的可用进程:SPBT_INITIALIZE。

您必须输入服务器组名称并获取可用的免费资源。 以下代码供您参考:

调用功能'SPBT_INITIALIZE'
       出口
         group_name = iv_group
       输入
         free_pbt_wps = lv_jobs
       例外情况
         invalid_group_name = 1
         internal_error = 2
         pbt_env_already_initialized = 3
         current_no_resources_avail = 4
         no_pbt_resources_found = 5
         cant_init_different_pbt_groups = 6
         error_message = 98
         其他= 99。

 *注意确保在所有可用的免费资源中,您仅使用其中的80%,以确保有效的性能而没有任何瓶颈。 这可以帮助您将20%的资源始终可用于任何新资源请求。

 问候!
暮风yp
4楼-- · 2020-08-15 16:14

Nageswara Katta ,您可能打算编写msgty 15和msgno 027( 而不是msgno 017)。

Bunny_CDM
5楼-- · 2020-08-15 16:23

消息类别:14

消息号:027

葫芦娃快救爷爷
6楼-- · 2020-08-15 16:08
Hi Satish Kumar Balasubramanian ,我正在使用FM -SPBT_INITIALIZE来获取可用线程中的免费线程,仅使用可用线程的一半 自由 threads.As 我说过,这是用户登录后第一次发生。谢谢

一周热门 更多>