cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Refreshing the buffer

Former Member
View Entire Topic
Former Member
0 Likes

Hello Steve,

1. What buffer are you referring to? As you might be aware, apart from database tables, even programs , screens etc., can be bufferred.....

2. Do you want to refresh all the Application Servers Buffers? That is a very very huge operation and will have a very very huge impact on the systems' performance. Re-consider it.

3. And lastly, if I were to take a guess, I'd say you want to refresh entries of a particular table from the buffer. I don't think it is possible directly. But if this is what you are looking for, then let me knwo, we can discuss more on this.

Regards,

Anand Mandalika.

P.S : I have found this to be a very interesting topic

ssimsekler
Product and Topic Expert
Product and Topic Expert
0 Likes

Hi Steve

You can refresh the buffer of an application server (if you mean so) by using the transaction "$SYNC". However, as Anand mentioned this is a critical operation which will have effect on the overall system.

If it is the HR buffer you mean, you can use the FM <b>"PSBUFFERINIT*"</b> .

*--Serdar

Former Member
0 Likes

Hello Serdar,

There are two things that I'd like to ask:

1. Yesterday I was discussing this issue with a friend and he also told me that we would have to use the transaction $SYNC. But I could not find it in my 4.7 system. Worse, I could not even find it in my 4.6C system. Is there any special procedure to execute this transaction?

2. But I thought that the transaction $SYNC, as the name suggests, would be used to synchronize the application buffers. Is that not so?

And thinking in these lines, if a particular table (obviously, I mean the contents of the table) has to be refreshed from the buffer, then we would go to the technical settings of the table and de-activate the bufferring option (transaction SE13/SE11). And then we activate the table and run the transaction $SYNC. This would synchronize all the buffers based on the latest values of the technical settings for all the tables.

Hope to get to the bottom of this issue, and I appreciate your response.

Regards,

Anand Mandalika.

ssimsekler
Product and Topic Expert
Product and Topic Expert
0 Likes

Hi Anand

It is me who appreciate your eager to ABAP programming. I have not so much time so I just paste related explanation here:

<i>"Setting up a buffer requires a large number of database and network accesses, and places a considerable load on the system. Therefore, only reset the buffers if inconsistencies occurred between the buffer and the database. This might happen, for example, if you update a buffered table with native SQL, that is, the database table is updated directly by bypassing the buffer. To reset the table buffers, enter $TAB in the command field. Use the command $SYNC to reset all the SAP buffers on the application server. These commands only affect the buffers of the application server on which the commands are entered. The buffers of the other application servers in the network are not affected.

Using the commands $TAB and $SYNC places an extremely large load on the system. In large systems, it could take up to one hour (depending on the access profile) for the buffer load to return to its original state. System performance is greatly impeded during this time."</i>

Hope this helps...

*--Serdar

Former Member
0 Likes

Hi Serdar,

Thanks for that explanation. the word SYNC made me think and believe what I had said in my earlier post.

Now there's a question that I seek your answer when you find the time -

1. Obviously, the reason $TAB (or $SYNC) takes so long to complete is that they refresh <i>all</i> tables (or all buffers). One of the steps in that process <i>might</i> be to determine which tables are buffered and with what type. Quite often we might want to do this operation only for one table. Even the example in your post above takes the case where <i>one</i> data base table has been updated using Native SQL....

So I think it should be possible to be able to do the refresh selectively. do you agree? If yes, then do you know if there's a way it can be done?

In fact, there are some transactions that help us analyze the buffer quality at the table-level and also the operations on the tables that have passed the buffer and bypassed the buffer etc., So periodically analyzing the buffer quality and doing a selective refresh seems to be a very useful option....

I know that most part of what we are discussing here is very seldom used. And it is only out of academic interest that I'm seeking the information.

BTW, if any of the Basis guys are reading this post, your inputs would be very much appreciated.

Regards,

Anand Mandalika.

Peter_Inotai
Active Contributor
0 Likes

<i>1. Yesterday I was discussing this issue with a friend and he also told me that we would have to use the transaction $SYNC. But I could not find it in my 4.7 system. Worse, I could not even find it in my 4.6C system. Is there any special procedure to execute this transaction?

</i>

You have to execute it from transaction ST02, just simple enter this in the command field.

Peter