We have a check point restart IMS DB program running in production. We have a common routine whic takes care of XRST and CHKP calls. Initialization para of the program will call the common routine for initial XRST call and later whenever chekpoint needs to be taken this sub routine is called. Main program is compiled with AMODE =31, RMODE= ANY. But the called sub routine was 24 ANY, which should not be the case. Called module should have been compiled with 31, ANY. But any way this was in production for a long time and was running fine.
But recently it started abending regularly with S0C4 in the initial XRST (before doing any other processing) call itself and when we recompiled the subroutine with 31 ANY it went fine. For lat 6 years there is no change in these programs. Only thing happened in between is we upgraded IMS v.8 to IMS.9 and after this program started abending.
Since it went fine on recompilation we are sure that problem is because it is trying to access some memory beyond 16MB addres line.We are not able to find the actual root cause for accessing memory area before 16MB suddenly. Is there any possibility of having this issue because of upgradation of IMS version? If any of you have had such a scenario please advice me to find the root cause.
Joined: 07 Nov 2005 Posts: 1105 Location: The Netherlands at Hole 19
If another application running below 16MB (mode=24) calls the same subroutine this routine also runs below. If it stays resident and your 31 mode application calls it your problem might rise. Did you check at abend time if the routine was in upper or lower memory?