I have huge Enterprise PLI program say ProgQ (load size 00536C70) running in production, when I add 2 PUT SKIP LIST statements(or any 2 executable statements), code just works fine. If add any more executable statements, it fails with S0C4 Reason code 10. This is MPP program running in IMS region (current region size is 8500K, checked by increasing IMS Region to 64M as well) , and is dynamically loaded. Prog A is calling module Module1 and it is loading ProgQ dynamically. I had put all kind of diagnostic statements to get point of failure, I am able to see all the statements until control is returned back from program ProgA(calling program for Prog Q). I suspect load module size is causing issue, but not sure how to prove ? or any solution to this. No PLI/CEE dump is produced, i.e. its not failing in PLI program. I suspect its failing when control is returned back to IMS.
When I switch to MVS PLI any addition of code works just fine.
Any guidance is appreciable. Please let me know if you need more information around the problem.
I don't know the answer but I would check the AMODE/RMODE values for the modules. For example if an AMODE(31) module tries to use one that has been built AMODE(24), it will be able to call it and it will execute, but control may get back to the calling module because the AMODE(24) module's register may not be large enough to store the return address.
Just a thought ...