Even after I make a change, I expect that you'll find  that a value of 1 is way to small for the number of virtual machine instructions to be executed between each callback.  Calling back into Rexx after every virtual machine instructions is certain to introduce a lot of over-head.

Yes, I'm fully aware that 1 is far to small but I used that as a starting point while I tried this out for the first time. I've since found that 1000 seems to be a usable value with very little overhead when just adding 1 to a counter as in my example. So running the same program with an interval of 1000 reveals that 13,000,000+ virtual machine instructions are needed for this particular SQL statement. It still runs in 1 second so one can't complain :)
If you would have a small test program you can send me for this, it would help.  ;-)

I will see what I can do.