0
votes

In my scenario, I connect my ABAP system to a non ABAP based system using HTTP destination.

I want to implement caching in ABAP such that the performance of the application can be used and I don't have to hit the backend every time.

I guess in ABAP the caching can be only implemented by using the Shared memory.

https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-US/abenuse_shared_memory_guidl.htm

Is this correct?

2

2 Answers

2
votes

I guess that by "buffering" you mean "loaded into ABAP memory and avoiding additional database roundtrips"?

If yes, I share your understanding that shared memory would be the only means to do that.

However, consider that on top of your database, you can have 1..n application servers, each of which can have 1..n work processes. Shared memory will allow you to buffer stuff across the work processes within one application server, but not across application servers.

If you take other means of "buffering" into account, such as aggregated views on otherwise slow-to-join data, you could get additional means by using appropriate database views or materializations.

0
votes

Each time the ABAP AS get's a http request you get a new "session" (roll area). You are right that shared memory could be an option to implement a buffer. Another option could be to switch on table buffering in SE11.

But the typical way is really to start always from the database and read the data again.

To improve the performance of the application you could try to reduce the calls from http to the ABAP AS an implement more logic on the http side.

Please consider also that the DBMS caches too. Maybe that could also improve the response-time in many configurations.