0

我正在开发一个使用 SAP JCo3 库调用 SAP RFC 的 .NET 应用程序。

它工作正常,一切都很好,但我们最近有一个客户联系我们,告诉我们当他们更改 RFC 表名称或添加表时,我们的应用程序不会收到更新。

他们必须完全重新启动我们的应用程序才能接收新数据。我们的应用程序不做任何类型的缓存或任何事情,我认为它可能发生在 SAP JCo 3 库中,我正在寻找建议、帮助或信息。

我确实注意到RfcDestinationManager有一个名为的方法RemoveFromCache,我想知道这是否有用。

我还注意到在我们的代码中,我们有一个公共静态实例,IDestinationConfiguration我们在其上调用一个 UpdateDestination 函数,该函数反过来引发ConfigurationChanged事件。

我们是否需要调用ShutdownHookRfcDestinationManager 或其他东西?

4

1 回答 1

1

您可能是指NCo,而不是JCo。JCo 是 Java 连接器,NCo 是 .Net 连接器。听起来您在谈论对 RFC 功能模块接口的更改,这意味着客户正在将某些东西传输到他的生产系统,而您的应用程序会动态评估功能参数,但不会接受这些更改。

RFC 函数的元数据缓存在RfcDestination.Repository对象(类型RfcRepository)中。该类具有ClearAllMetadata()可用于刷新 NCo 缓存的函数。我还没有找到 NCo API 的任何在线文档,但是 NCo 附带的 .chm 文档中提到了它。

但是,如果您每次与 RFC 服务器交谈时都调用它,它可能会对性能产生重大影响。因此,您可能希望按计划刷新元数据以减少对性能的影响。

于 2022-01-14T13:53:08.160 回答