一台应用程序服务器的HAC中更新的配置值需要在另一台应用程序服务器中更新

2020-09-26 17:20发布

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

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


如果在任何应用程序服务器中更改了配置数据,则需要在所有应用程序服务器中更新配置数据的值。

我有一个名为: xyz.on 的配置数据,在所有应用程序服务器中其布尔值均设置为false。 假设我访问App1Server并将其值更改为true。

如何在所有应用服务器的配置数据中将xyz.on的值更新为true

谢谢

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

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


如果在任何应用程序服务器中更改了配置数据,则需要在所有应用程序服务器中更新配置数据的值。

我有一个名为: xyz.on 的配置数据,在所有应用程序服务器中其布尔值均设置为false。 假设我访问App1Server并将其值更改为true。

如何在所有应用服务器的配置数据中将xyz.on的值更新为true

谢谢

付费偷看设置
发送
4条回答
hongfeng1314
1楼-- · 2020-09-26 17:53

我了解这一点的需要,当您有太多应用服务器并且需要更新特定属性而又不使服务器退回时,它会很有用。

可以有两个选择-

如果用例中的属性始终是自定义属性,则可以创建简单的项目类型并将此类值存储在DB中,而不是存储在属性文件中。 编写服务,利用缓存,您将能够采用集中式方式维护此类属性。 代替ConfigurationService,使用您的新服务。

另一个选择是查看 ConfigIntf.ConfigChangeListener 。 您基本上可以实现自己的 ConfigChangeListener 。 您将需要向将实例注册为ConfigChangeListener的bean提供一个初始化方法。

  public void init(){
      Registry.getCurrentTenant()。getConfig()。registerConfigChangeListener(this);
  }

  

现在是最困难的部分了:),在覆盖的 configChanged(String key,String value)方法中,您需要将消息广播到其他节点以更新其中的密钥值 他们的JVM。

我还没有自己实现,但是研究平台代码,这是我要采取的方向:

  • 创建一个实现 BroadcastMessageListener 接口的类,将其称为 ConfigChangeBroadcastHandler

  • 在您的班级中插入 BroadcastService

  • 在构造函数中,通过调用 BroadcastService#registerBroadcastListener

  • 将您的类注册为广播侦听器。
  • 公开一个名为 sendMessage 的公共方法,您可以在其中将键/值作为输入。 此方法将从自定义 ConfigChangeListener 中的 configChanged 方法中调用。

  • 在将您的密钥(值)包装在RawMessage实例中时,调用BroadcastService#send。 ->应该注意将更改广播到集群中的所有节点

  • 实施 processMessage 方法,在该方法中,您将 RawMessage 解析为键/值,然后调用 Config.setParameter(键,值),它将更新接收事件的节点的JVM中的属性。

同样,我尚未实现此用例,但这是[Cache] InvalidationBroadcastHandler 的工作方式。 而且,我认为无需多说,在服务器重新启动后,该值将恢复为原来的值。

干杯。

shere_lin
2楼-- · 2020-09-26 17:44

我不这样认为,在集群中,您必须在每个local.properties文件中配置相同的属性。

梦想连接
3楼-- · 2020-09-26 17:47

我认为您可能正在使用多个集群,并且正在从hac-> platform-> configuration更新数据。

如果在一台服务器上进行更改。 它不会在所有服务器上更新。 您必须手动更新所有群集节点中的值。

否则,请更新locale.properties中的值并在所有文件中部署更改。.因为一旦重新启动服务器,从hac所做的更改将丢失

黑丝骑士
4楼-- · 2020-09-26 18:08

所有hac配置都来自属性文件。 如果要更改某些属性,则必须在local.properties文件(配置文件夹)中添加属性和值。

如果要在其他服务器上更改此属性,请编辑local.properties文件。 如果您在hac中更改了某个值,则该值将不会永久保存;如果重新引导服务器,则该值将恢复为上一个值。

一周热门 更多>