I have coded a PLI-IMS program. For this, I created a new PSBLIB too. This program worked well in both Development and UAT environments. But, when I moved the code to production and ran it, it is failing due to the below reasons:
Code:
A program-interruption code 0004 (Protection Exception) is associated with this
abend and indicates that:
A protection exception occurred due to one of the following:
- An attempt to access a protected storage location using an incorrect storage
access key.
- An attempt to store, in the access-register mode, by means of an access-list
entry which has the fetch only bit set to one.
- An attempt to store into the range 0-511 or 4096-4607 with low-address
protection enabled.
- An attempt to store into a protected page with DAT on.
The abend was caused by machine instruction 505021F0 (STORE).
NOTE: Source code information for program EPFIV204 could not be presented
because no compiler listing or side-file data sets were provided. The
source line # from the GONUMBER option is 5 for offset X'120'.
I have googled it and searched in all the forums for a clear response, but i didn't find any. Hence, I am writing it here.
Based on the job log information that I pasted above, It seems that there's a problem in the 5th line of the source. And, the 5th line in the code is as below.
*****
Code:
* ***************************** Top of Data ******************************
000100 *PROCESS LIMITS(FIXEDDEC(15,31) FIXEDBIN(31,63));
000200 /*------------------------------------------------------------------*/
000300 /* COPYRIGHT (C) 2012, 2013 IBM CORPORATION, ALL RIGHTS RESERVED */
000400 /*------------------------------------------------------------------*/
000500 EPFIV204: PROC (IVAMOD_PCB_PTR1,
000600 IVAMOD_PCB_PTR) OPTIONS (MAIN) REORDER;
which points to the PCB pointer...I have checked for it. But, it looks fine to me.
I had a thought that it might be due to the wrong data in production. I got the data from production and tested it in UAT...it went fine.
Joined: 10 May 2007 Posts: 2454 Location: Hampshire, UK
Quote:
machine instruction 505021F0 (STORE
Have you looked in the compiler listings for this string and found the relevant line of code.
How did you determine that it was the 5th line of code? Note that compiler directives and comment lines probably do not count as lines of code in this instance. You may be talking about executable code - a PROC statement is really a compiler directive saying program xyz starts from here.
Joined: 10 May 2007 Posts: 2454 Location: Hampshire, UK
Quote:
I tried to look for 505021F0 in the compiler listings. But, I could not find it.
In that case you probably do not have the compiler option set that gives the assembler representation of your code. I am not sure what it is - maybe LIST - but you should check the compiler documentation.