Я обновляю значение созданной SHARED MEMORY через JOB.Я удаляю / освобождаю SHARED MEMORY во время инициализации, но кажется, что он не удаляет то, что находится в SHARED MEMORY, потому что я все еще могу ИМПОРТИРОВАТЬ данные из SHARED MEMORY во время первой итерации цикла ниже.
У меня естьуже пытались исследовать и обнаружили некоторые факты об общей памяти, такие как, общая память может быть доступна нескольким пользователям и сеансам.Я также подозревал другой сервер приложений, а также думал об изменении имени пользователя во время фонового запуска, что может повлиять на «удаление», но все еще не отвечает на мою проблему, потому что я не могу наблюдать поведение во время отладки.
"Program 1: Run via job
DELETE FROM SHARED MEMORY vari(tl) ID 'MY' && sy-uname.
DO 3 TIMES.
SUBMIT program 2 WITH xxx VIA JOB AND RETURN.
ENDDO.
"Program 2: Run via Job
START-OF-SELECTION.
IF sy-calld EQ 'X'.
IMPORT var TO var FROM SHARED MEMORY vari(tl) ID 'MY' && sy-uname.
ENDIF.
IF var IS INITIAL.
SELECT fld1, fld2, fld3
FROM table
INTO TABLE var
WHERE cond EQ value.
IF sy-called EQ 'X'.
EXPORT var FROM var TO SHARED MEMORY vari(tl) ID 'MY' && sy-uname.
lt_var = var.
ENDIF.
ENDIF.
IF lt_var IS INITIAL.
"Raise error.
ELSE.
"Further processing...
ENDIF.
Вмоя «программа 2» выше, я ожидаю, что «var» IMPORTED из SHARED MEMORY не будет иметь значения, когда он пройдет первую итерацию моего цикла, так как я инициализировал его в «программе 1».
Я ожидаюОБЩАЯ ПАМЯТЬ, чтобы иметь данные после первой итерации.
Есть ли какие-либо соображения по блокировке при удалении из общей памяти или несколько серверов влияют на удаление.Пожалуйста, порекомендуйте.Большое вам спасибо.