共享内存区域-SHMM和应用程序服务器上的数据

2020-08-15 08:20发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我创建了共享内存区域...

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

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


大家好,

我创建了共享内存区域和ROOT类,并将数据存储在其中一台应用程序服务器上。

1)在我们的环境中,我注意到有两个应用程序服务器。

2)在SHMM事务中,我可以看到创建的实例。

3)我能够通过ABAP程序访问这些实例(通过attach_for_read()创建句柄)

到目前为止,一切都很好。

问题:

从UI调用了同一程序,但是我无法获取存储在应用程序服务器上共享内存中的实例(数据)。

我了解共享内存特定于应用程序服务器。

我认为abap后端正在不存在共享内存数据的另一台应用服务器上执行。

1)是否有任何配置,因此可以在所有应用服务器之间共享共享内存?

我该如何克服这个问题?

谢谢。

此致

Ravi。

3条回答
半个程序猿
2020-08-15 09:16

您的主要问题是,如果您的程序的两个实例同时运行,但是都在不同的应用程序服务器上运行,则它们将无法访问"共享内存"中的其他数据,因为共享内存为

请仅查看有关此问题的讨论:

基本上,您有三种选择来重写程序:

  1. 使用ABAP频道
    ABAP频道是基于事件的通信 在应用程序服务器之间(以及Internet)使用消息。 AMC部分是您需要实现的部分:
    ABAP消息传递渠道(AMC )是ABAP程序之间使用消息进行通信的一种方法。 使用发布和订阅机制,可以在任何AS ABAP程序之间交换消息,包括不同用户会话和应用程序服务之间的通信
  2. 使用共享对象
    共享对象是共享内存区域中的对象。共享对象特定于Application Server。 a)创建一个共享 在一个特定的应用服务器A上的对象
    b)为应用服务器A创建一个目标
    c)创建一个"暴露"共享对象的FM
    如果程序在应用服务器A上运行,则可以访问 共享对象
    如果您的程序在其他Application Server上运行,则可以通过RFC将其访问Application Server A。
  3. 重写编码
    您将需要进行一些设置工作 1.和2.,还有脑力去弄清楚如何处理对共享对象的并发读写访问(与DB相同)
    Rewriti 如果可行,您的编码可能是最好的选择。

一周热门 更多>