2

I'm using RedHat's camel-SAP component in RedHat Fuse to call modules via SAP RFC. Each time the structure of the module is adjusted, the Fuse instance must be restarted to cache the updated SAP repository. Is there a way to update the cache with the SAP repository without having to restart the instance?

Sandra Rossi
  • 11,934
  • 5
  • 22
  • 48
Yannick
  • 663
  • 1
  • 10
  • 33

3 Answers3

2

The short answer is no.

Changing the structure of an RFC in an SAP system is a major system change. The component is designed to integrate with a stable production SAP system and caches SAP meta data for efficiency. I assume you must be modifying the RFC in a development environment. If that is the case then you need to restart any connected Fuse container since you have changed the SAP system.

Punkhorn
  • 21
  • 2
  • Punkhorn I unchecked your answer because I want to proof the answer of @Trixx. I had a similar idea and I will give it a try. – Yannick Sep 10 '18 at 12:34
1

This camel-sap component seems to use the SAP Java Connector (JCo) and the Java IDoc Class Library (JIDocLIb).

For performance reasons these libraries store needed meta data for RFCs and for IDocs permanently in memory. But the libraries also offer APIs for removing meta data from the cache or to clear the whole meta data repository. So it would be possible to implement the desired functionality somehow in the using camel-sap component, or if you have direct access to the used SAP Connector APIs, to implement this in Java on your own.

What is not possible is that the meta data caches will be cleared or invalidated automatically after a modification in the ABAP back-end. But as I do not know camel-sap I cannot help further here.

Trixx
  • 1,796
  • 1
  • 15
  • 18
0

I opened a support ticket with RedHat and the suggestion for adding the functionality of clearing the JCo repository caches and the Data Layer was accepted. A task has been created and implemented by @Punkhorn. Thanks for that!

The support ticket states that this functionality will be included in Fuse as of release 7.2. So if you use this version or newer, the cache can be cleared as follows:

<to uri="sap-clear-cache" />
Yannick
  • 663
  • 1
  • 10
  • 33