更新骆驼SAP缓存而不重新启动整个实例

时间:2018-09-06 14:47:25

标签: java apache-camel osgi sap jbossfuse

我在RedHat's camel-sap component中使用RedHat Fuse通过SAP RFC调用模块。每次调整模块的结构时,必须重新启动 Fuse实例,以缓存更新的SAP存储库。有没有一种方法可以使用SAP存储库更新缓存而不必重新启动实例?

3 个答案:

答案 0 :(得分:2)

简短的回答是“否”。

在SAP系统中更改RFC的结构是一项重大的系统更改。该组件旨在与稳定的生产SAP系统集成,并缓存SAP元数据以提高效率。我假设您必须在开发环境中修改RFC。在这种情况下,由于更改了SAP系统,因此需要重新启动所有连接的Fuse容器。

答案 1 :(得分:1)

这个骆驼树液组件似乎使用了SAP Java连接器(JCo)和Java IDoc类库(JIDocLIb)。

出于性能原因,这些库将RFC和IDoc所需的元数据永久存储在内存中。但是这些库还提供用于从缓存中删除元数据或清除整个元数据存储库的API。因此,有可能在使用camel-sap组件中以某种方式实现所需的功能,或者,如果您可以直接访问使用的SAP Connector API,则可以自己在Java中实现此功能。

不可能的是,在ABAP后端中进行修改后,元数据缓存将自动清除或失效。但由于我不知道骆驼汁,所以在这里我无能为力。

答案 2 :(得分:0)

我用RedHat开了一张支持票,并建议添加清除JCo存储库缓存和数据层的功能。 @Punkhorn已创建task,并implemented。谢谢你!

支持通知单指出,此功能将从7.2版开始包含在Fuse中。因此,如果使用此版本或更高版本,则可以按以下方式清除缓存:

<to uri="sap-clear-cache" />