A recent AS/400 upgrade from V2R1.1 to V2R2 revealed a subtle change that may cause a problem for an unsuspecting programmer. Apparently, IBM has chosen to change one of the defaults in the Create SQL RPG Program (CRTSQLRPG) command. The COMMIT parameter default has been changed from *NONE to *CHG.
RPG programs with embedded SQL statements which selected records from unjournaled database files via DECLARE CURSOR, OPEN CURSOR and FETCH CURSOR were in production on our system. After V2R2 was installed, one of these programs was recompiled, using option 14 of PDM, and the program was submitted to batch. It ended normally, without any halts. However, for no apparent reason, records were no longer being selected for processing.
We then ran this program interactively and the informational message CPF4328 was issued, followed by SQL0501 ("Cursor not open"). Then, the program ended with the message CPF4328 ("This is the first open of a file under commitment control and the file is not journaled"). We asked ourselves: "Commitment control? Why is the file under commitment control?" The answer, it seems, is that IBM assumes it is under commitment control.