Исправить параметры фиксации при вызове SQLRPG во время цикла фиксации - PullRequest
0 голосов
/ 10 января 2020

В нашей системе выполняется несколько заданий, которые обновляют файл FILE1 в цикле управления фиксацией, используя STRCMTCTL и ENDCMTCTL. Я вызываю новую программу SQLRPGLE PGM1 во время работы, которая обновляет FILE1 с помощью оператора UPDATE SQL. Программа скомпилирована с COMMIT (* NONE), потому что я хочу обновить до go через независимо от контроля фиксации. Теперь, когда задание вызывается с этим изменением, я вижу ошибку 'ENDCMTCTL не разрешен. Ожидающие изменения активны. ' в журнале работы, и я не вижу обновления, которые я делаю на PGM1 на FILE1. Поможет ли изменение опции компиляции на COMMIT (* CHG) решить эту проблему? Будет ли этот параметр обновлять исходный цикл выполнения задания?

1 Ответ

2 голосов
/ 10 января 2020

NO.

При изменении параметра компиляции на COMMIT(*CHG) программа запускается только с использованием управления фиксацией. Похоже, вы уже используете контроль обязательств и внесли в него некоторые изменения. Итак, вам нужно зафиксировать изменения перед вызовом ENDCMTCTL. Вы можете сделать это с помощью команды COMMIT в вашем CL непосредственно перед ENDCMTCTL. Если вы этого не сделаете, ROLLBACK произойдет автоматически после завершения задания, и вы потеряете все свои изменения.

...