Jetzt liegt es ggf. an der Aktivierungsgruppe !
Jede Aktivierungsgruppe hat eine eigene COMMIT-Definition, so dass ein COMMIT nur dann funktioniert, wenn in dieser Aktivierungsgruppe auch was zu committen ist.

Bevor du STRSQL aufrufst gib mal folgendes ein:
COMMIT
ENDCMTCTL

Innerhalb STRSQL benötigst du eigentlich kein Commit, wenn die Einstellung (F13) für Commit *NONE ist.
Ansonsten ändere dieses oder verwende ein COMMIT nach verändernden SQL-Befehlen.

Anscheinend wird in deiner Anmeldeprozedur ein STRCMTCTL aufgerufen um die Transaktionssteuerung zu aktivieren.
Ohne STRCMTCTL wird zwar journalisiert, aber alle Änderungen sind sofort gültig.
Mit STRCMTCTL hilft die Journalisierung um im Fehlerfall einen ROLLBACK durchzuführen. Dann werden alle Änderungen seit dem letzten Commit rückgängig gemacht.

Per DSPJOB (16) siehst du ob Commitsteuerung aktiv ist.
Mit STRCMTCTL startest du diese, mit ENDCMTCTL wird diese beendet, was allerdings nur nach einem Commit/Rollback möglich ist.