I'm working on a transactional SAP screen which will be used by approximately 400 users simultaneously,
and I'm designing a good performance model.
This program is using material master, customer master and some other master data too frequently,
Than off course I'm using table buffering ( especially full buffering ) too improve the performance,
because master tables in our system is not being changed frequently.
Here is my problem :
I've created an area in shared object memory using transaction SHMA,
I'm storing an object there to store material master data and this object supplies me some methods
for fast searching like BINARY SEARCH technique etc.
Everything is working fine , different users are able to access this memory too quickly
by using attach / detach methods and search mechanism is very fast.
But my problem is about the server synchronization,
I should refresh the data in that shared object when our material master tables changed by a user.
I mean I should read data again from database when the buffers of this tables are invalidated.
SAP's buffer mechanism is already achieving this process by using profile parameter rdisp/bufretime (frequency )
and logging changes in table DDLOG.
Now I want to refresh when table buffer is invalidated.
Is there any function module that returns the buffer for a table is invalidated or not?
Or how can I refresh my data parallel to SAP's buffer
without reading all data with SELECT a statement each read access ?
Thanks for your time reading this small novel 😊
Any help will be appreciated.