Skip to Content

Import from shared buffer in multiple servers environment

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

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    Dec 12, 2017 at 10:48 PM

    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.

    Add comment
    10|10000 characters needed characters exceeded

    • 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...