Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Import from shared buffer in multiple servers environment

iklovski
Active Contributor
0 Kudos

Hello,

We are making a carry-froward in PSM-FM (FMJ2) using parallel processing due to high volume of the data. This year we have changed the app servers landscape and now we have two app servers on Linux. We have a derivation strategy in PSM-FM which is using inside one of its rules an import statement from a shared buffer, e.g.

IMPORT p_ex_tbl = w_table FROM SHARED BUFFER indx(zf) ID wid.
w_table_name = w_table.
CHECK w_table_name IS NOT INITIAL.

We suspect that this statement returns empty value, as the rule in question is not triggered when the process is run with parallel option. It is, though, working when the same document is processed through a 'normal' run or on foreground.

This is despite the fact that we do mention the app server in the job of FMJ2 execution.

Could you please verify our hypothesis? Is import from shared buffer could be problematic when working with two (multiple) app servers? Is there some note which might solve it?

Thanks in advance,

Eli

1 ACCEPTED SOLUTION

Sandra_Rossi
Active Contributor

Yes, you're right, it's a frequent issue. It could work only if you submit the parallel jobs in the same application server as the application server of the calling/waiting program.

Moreover, be careful when you use SHARED BUFFER rather than SHARED MEMORY, as the buffer may be deleted by the system without warning if there's a need of memory (ABAP documentation: "This procedure deletes the least used data objects from the buffer").

You may simply use a EXPORT TO DATABASE/IMPORT FROM DATABASE instead, for instance.

4 REPLIES 4

Sandra_Rossi
Active Contributor

Yes, you're right, it's a frequent issue. It could work only if you submit the parallel jobs in the same application server as the application server of the calling/waiting program.

Moreover, be careful when you use SHARED BUFFER rather than SHARED MEMORY, as the buffer may be deleted by the system without warning if there's a need of memory (ABAP documentation: "This procedure deletes the least used data objects from the buffer").

You may simply use a EXPORT TO DATABASE/IMPORT FROM DATABASE instead, for instance.

0 Kudos

Thank you, Sandra. What puzzles me is that in the job which is created for the parallel run we specify a single application server. Still, the system acts like it doesn't consider this setting 😞

So, it might be, indeed, what you said that the buffer is deleted without our knowledge. It didn't happen in the past when we had only one server, but this year the troubles started: number ranges, buffers, etc.

0 Kudos

To make sure what happens with the server, look at the job "details", it shows the actual server used. If it's different from the one you entered, then you made an error in your entry.

0 Kudos

I think, after analysis, that putting the server doesn't change much. The job is started from it, but the processes created by parallel could be then shifted from one to another. Thanks again for your explanations. We will check what could be done instead...