点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我创建了共享内存区域和ROOT类,并将数据存储在其中一台应用程序服务器上。
1)在我们的环境中,我注意到有两个应用程序服务器。
2)在SHMM事务中,我可以看到创建的实例。
3)我能够通过ABAP程序访问这些实例(通过attach_for_read()创建句柄)
到目前为止,一切都很好。
问题:
从UI调用了同一程序,但是我无法获取存储在应用程序服务器上共享内存中的实例(数据)。
我了解共享内存特定于应用程序服务器。
我认为abap后端正在不存在共享内存数据的另一台应用服务器上执行。
1)是否有任何配置,因此可以在所有应用服务器之间共享共享内存?
我该如何克服这个问题?
谢谢。
此致
Ravi。
您的主要问题是,如果您的程序的两个实例同时运行,但是都在不同的应用程序服务器上运行,则它们将无法访问"共享内存"中的其他数据,因为共享内存为
请仅查看有关此问题的讨论:
基本上,您有三种选择来重写程序:
ABAP频道是基于事件的通信 在应用程序服务器之间(以及Internet)使用消息。 AMC部分是您需要实现的部分:
ABAP消息传递渠道(AMC )是ABAP程序之间使用消息进行通信的一种方法。 使用发布和订阅机制,可以在任何AS ABAP程序之间交换消息,包括不同用户会话和应用程序服务之间的通信
共享对象是共享内存区域中的对象。共享对象特定于Application Server。 a)创建一个共享 在一个特定的应用服务器A上的对象
b)为应用服务器A创建一个目标
c)创建一个"暴露"共享对象的FM
如果程序在应用服务器A上运行,则可以访问 共享对象
如果您的程序在其他Application Server上运行,则可以通过RFC将其访问Application Server A。
您将需要进行一些设置工作 1.和2.,还有脑力去弄清楚如何处理对共享对象的并发读写访问(与DB相同)
Rewriti 如果可行,您的编码可能是最好的选择。
在哪种情况下,您希望出于什么目的使用共享内存并克服拥有两个实例的问题 ?
显然,您无法在AS之间共享内存:
在关闭应用程序服务器之前,存在区域实例版本。
区域实例存在,直到当前用户会话的最后一个ABAP会话结束。 对于区域绑定,每个登录到AS ABAP的用户都将多带带计数。 当用户使用外部接口(例如RFC或ICF)登录时,这也特别适用。
顶级事务是调用序列中的第一个程序。 这些区域实例的存在只要加载分配给调用序列的ABAP内存,即加载顶层事务的内部会话的时间就存在。
一周热门 更多>