Receiving a "Error code 153 Subscript out of Range" error
Forum » Forum / Help » Receiving a "Error code 153 Subscript out of Range" error
Started by: Douglas B (guest)
On: 1243628539|%e %b %Y, %H:%M %Z|agohover
Number of posts: 4
rss icon RSS: New posts
Summary:
When running PSPBARUN suddenly we started getting the Subscript out of range error.
Receiving a "Error code 153 Subscript out of Range" error
Douglas B (guest) 1243628539|%e %b %Y, %H:%M %Z|agohover

The error looks like this.

Object Code error : file '/opt/psoft/pshcm/ptprd/cblbin/PSPBAELT.gnt'
error code: 153, pc=0, call=1, seg=0
153 Subscript out of range (in PSPBAELT.cbl, line 8276)

I have increased the occurs for PLAN-DATA in PSCPARTC copybook along with the max count but that doesn't seem to be the issue. Curious as to where I should check next.

Reply  |  Options
Unfold Receiving a "Error code 153 Subscript out of Range" error by Douglas B (guest), 1243628539|%e %b %Y, %H:%M %Z|agohover
Re: Receiving a "Error code 153 Subscript out of Range" error
PrajPraj 1243687729|%e %b %Y, %H:%M %Z|agohover

I imagine that you've already traced the process when this happens? I'm certainly no COBOL expert but I would suggest checking if the error is being caused by bad data?

There seems to be some really good information in Metalink Doc ID 620884.1 that might be worth checking out.

Also, a full recompile of all COBOLS and reloading of all stored statements from DMS might be helpful.

Reply  |  Options
Re: Receiving a "Error code 153 Subscript out of Range" error
Douglas B (guest) 1243898636|%e %b %Y, %H:%M %Z|agohover

Working through Metalink now but our Sys admins don't know the linux commands to compile a source code with the listing option on.

Reply  |  Options
Unfold Re: Receiving a "Error code 153 Subscript out of Range" error by Douglas B (guest), 1243898636|%e %b %Y, %H:%M %Z|agohover
Re: Receiving a "Error code 153 Subscript out of Range" error
Abhishek (guest) 1282192672|%e %b %Y, %H:%M %Z|agohover

Error while running Payroll process:
Object Code error : file '/psoft/psofthrf/hr/psbdl90/cblbin/GPPUACCM.gnt'
error code: 153, pc=0, call=1, seg=0
153 Subscript out of range (in GPCCMSGS.cbl, line 34)
Cause
The error occurs on the following line in GPCUMSGS:
"IF NOT PYE-CALC-STAT-BYPASS-PMT OF DPDM(L-PMT-PTR)"
Either the array(L-PMT-DATA) holding PYE-CALC-STAT-BYPASS-PMT count is less than L-PMT-PTR value OR L-PMT-PTR is passed as zero.
GPCDPDM(L-PMT-DATA) refreshes at Payee level and 200 is the default value. This array holds the number of segments processed for a single payee including retro, current + one history row.
Tables:
GP_PYE_PRC_STAT
GP_PYE_SEG_STAT
An array with a refresh level of "Payee" will have its size tested by the most complex Payee encountered; the number of payees processed does not matter.
Typically, the most challenging Payee will be the one with the most retro periods and/or payee data such as PI. These are usually the most difficult arrays to predict.
Assuming the calendar in question is processing Retro as well. Occurs and Max size of L-PMT-MAX & L-PMT-DATA in GPCDPDM increased to 50000, but payroll process run to same error which meant the L-PMT-PTR is not the culprit.

On analyzing trace:


— Last SQL statement GPPUACCM_S_GETACTB [SELECT A.PIN_NUM ,A.PIN_MBR_NUM ,A.BGN_DT ,A.END_DT ,A.ACM_SIGN ,A.ENTRY_TYPE_PCT ,A.PCT_TO_ACM ,A.PIN_PCT_NUM ,B.ACM_TIMING_OPTN FROM PS_GP_ACM_MBR A, PS_GP_ACCUMULATOR B, PS_GP_PIN C WHERE A.PIN_NUM = B.PIN_NUM AND B.ACM_TIMING_OPTN <> '2' AND A.PIN_NUM = C.PIN_NUM AND C.PIN_NUM < 50000000 AND (C.USED_BY = 'A' OR C.COUNTRY = :1) AND EXISTS (SELECT D.PIN_NUM FROM PS_GP_PIN D WHERE A.PIN_MBR_NUM = D.PIN_NUM AND (D.USED_BY = 'A' OR D.COUNTRY = :2) ) ORDER BY A.PIN_MBR_NUM, B.ACM_TIMING_OPTN, A.PIN_NUM] is aborting after fetching 13000 rows repeatedly.
— Checked COBOL DEFINITIONS FOR PS_GP_ACM_MBR in GPPUACCM.cbl.
— Copy book cobol for 'GPPUACCM_S_GETACTB' stored statement is GPCUACTB.
— In copy book cobol file GPCUACTB array ACTB-CNT has been defined with Occurs and Max value as 13000.

Solution
1. Open GPCUACTB.cbl file in edit mode.
2. Increase the MAX and OCCURS value of ACTB-CNT array from 13000 to 50000 in GPCUACTB.cbl file.
3. Save the GPCUACTB.cbl file.
4. Recompile all cobol file.

Reply  |  Options
Unfold Re: Receiving a "Error code 153 Subscript out of Range" error by Abhishek (guest), 1282192672|%e %b %Y, %H:%M %Z|agohover
New Post
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License