Das Problem mit dem Mischen SQL/Native besteht immer wieder, ins besonders wenn eine Anwendung share verwendet.
So lange die aufgerufenen Alt-Programme keine Datenveränderungen vornehmen sollen, kannst du share(*no) verwenden.

Bei Share(*no) kann es bei Mehrfachopen zu Deadlocks bei Read/Chain/Update kommen.

Share(*yes) wirkt nicht bei SQL, da sonst Optimierungen nicht möglich wären.

Du kannst dir nur mit eigener ACTGRP für dein SQLRPGLE behelfen (also nicht *CALLER).