ABEND=S878 U0000 REASON=00000028
Select messages from
# through # FAQ
[/[Print]\]

MVSFORUMS.com -> Problem Determination

#1: ABEND=S878 U0000 REASON=00000028 Author: kavi PostPosted: Tue Nov 30, 2010 9:07 am
    —
Hi All,

My COBOL program having a internal sort and its abending some times with ABEND=S878 U0000 REASON=00000028. I tried with the Region=0M, but still am getting this abend in Production. If Iam trying to recreat this in test environment, but the job went thru' fine without any issues. Could some one help me in this.

Thanks in Advance,
Kavi

#2:  Author: kolusuLocation: San Jose PostPosted: Tue Nov 30, 2010 11:41 am
    —
kavi,

Is the sort your own logic or you invoking sort using SORT Verb in your program? If your invoking sort then you can provide SORTWK using the DFSPARM statement
Code:

//DFSPARM   DD *
  OPTION DYNALLOC=(SYSDA,16)
//*


Also make sure that your cobol program is compiled with RES compiler option. Check this link for COBOL Storage Requirements.

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ICE1CA50/4.10.1.2

#3:  Author: kavi PostPosted: Wed Dec 01, 2010 12:41 am
    —
Hi Kolusu,

Thanks for the details. My program invoking sort using SORT verb. I discussed with one of my friend, he suggested to use BUFNO for the files. Could you please explain how it differs from BUFNO and SORTWK using DFSPARM.

Thanks, Kavi

#4:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Wed Dec 01, 2010 5:50 am
    —
You get a reason-code=28, which means -- A GETMAIN or STORAGE OBTAIN request with the LOC=EXPLICIT keyword specified failed because part of the requested area exceeds the bounds of the region. Also, REGION=0M may/maynot work, depending on the CLASS in which your job is executing.

1. First suggestion - please post the entire SYSOUT from the failed Job. In doing so, please remove any sensitive data.

2. BUFNO = Buffer Number, which is a DCB parameter while "SORTWK using DFSPARM" will allocate 16 sort-work-files, per the statements koulsu has posted. They are not related to each other, in this case.

#5:  Author: kavi PostPosted: Wed Dec 01, 2010 8:37 am
    —
Hi,

I do not have any Abend related informations in the SYSOUT, whatever i have posted in the subject line is the original error message captured from JESLOG. Since i am not able to recreate this abend in test, I need to wait until the job fails in production, and then try with DFSPARM.
Thanks for the details.

Kavi

#6:  Author: kolusuLocation: San Jose PostPosted: Wed Dec 01, 2010 11:24 am
    —
kavi wrote:
I discussed with one of my friend, he suggested to use BUFNO for the files. Could you please explain how it differs from BUFNO and SORTWK using DFSPARM.


kavi,

BUFNO comes into picture for reducing the I/O. But in this case DFSORT has its own special I/O processing to reduce EXCP and coding BUFNO will not have much impact.

kavi wrote:
Since i am not able to recreate this abend in test, I need to wait until the job fails in production, and then try with DFSPARM.
Kavi


Why do you have to wait for the program to abend? You can add the DFSPARM and it will only reduce the chance of your program failing once again.

Kolusu

#7:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Wed Dec 01, 2010 9:47 pm
    —
kavi wrote:
Since i am not able to recreate this abend in test, I need to wait until the job fails in production, and then try with DFSPARM.
I'm not sure why do you say so -- don't you have any SYSOUT Archival and Retrieval system at your shop, possibly you can get these details from there.

#8:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Wed Dec 01, 2010 10:36 pm
    —
Some more thoughts on this: Check the following:

    1. You said COBOL program, so what were the compile options used at the time of compilation? DATA(31/24) compile option - I hope it is DATA(31) or not specified then it is DATA(31) by default.
    2. You talked about BUFNO, but are you using QSAM or VSAM files in job?
    3. Check the number of sequential files - how many.
    4. What is the BLKSIZE of the QSAM files INPUT/OUTPUT.
    5. Are you using a REGION= on a STEP execution?
    6. Check with your sysprog to see what you can specify for REGION card.

Well, If the answer for point 1 is 24 then if you have large number of BUFFERS or files then you will get a S878.

#9:  Author: kavi PostPosted: Thu Dec 02, 2010 11:39 pm
    —
kolusu/Anuj,

Thanks for the details.

Thanks,Kavi

#10:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Fri Dec 03, 2010 3:04 am
    —
You're welcome. However, have you made any progress, so far?

have a good one,

#11:  Author: kavi PostPosted: Tue Dec 07, 2010 3:04 am
    —
Hi Kolusu/Anuj,

My Program got abended in Production for the same reason after using DFSPARM also. Please refer the below sysout

Code:

SYNCSORT LICENSED
DFSPARM :                                                     
  OPTION DYNALLOC=(SYSDA,16)                                 
PARMLIST :                                                   
SORT FIELDS=(0001,0015,CH,A)                                 
RECORD TYPE=F,LENGTH=(000110,,000110)                         
OPTION SORTOUT=DDNAME                                       


I donot have any abend related informations in SYSOUT, the below is captured from JESLOG

Code:

ABEND=S878 U0000 REASON=00000028


I have cross checked the compiler option and the program was compiled with RES option. Also please let me know how to calculate the number of buffers used in the DFSPARM.


Thanks,Kavi

#12:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Tue Dec 07, 2010 5:05 am
    —
Quote:
    1. You said COBOL program, so what were the compile options used at the time of compilation? DATA(31/24) compile option - I hope it is DATA(31) or not specified then it is DATA(31) by default.
    2. You talked about BUFNO, but are you using QSAM or VSAM files in job?
    3. Check the number of sequential files - how many.
    4. What is the BLKSIZE of the QSAM files INPUT/OUTPUT.
    5. Are you using a REGION= on a STEP execution?
    6. Check with your sysprog to see what you can specify for REGION card.

#13:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Tue Dec 07, 2010 5:11 am
    —
Oh well, you are using SyncSort not DFSort...things will change now, well.

For SyncSort my expereince says that even if you code DYNALLOC=(SYSDA,16) - it won't work if the default DYNALOC is set to off and how about the default RETRY?

#14:  Author: kavi PostPosted: Tue Dec 07, 2010 7:21 am
    —
Hi Anuj,

For your Qusetions

1. Yes its DATA(31)
2 & 3 Seven Input and 2 Output Sequential files and 5 VSAM KSDS files
5. Initialy REGION was not used, but when it was abended I used REGION=0M in the job card, it didn't work.

Am not sure DYNALOC was set to off or not. Can you tell me how to check this?

Thanks,Kavi

#15:  Author: papadi PostPosted: Tue Dec 07, 2010 4:29 pm
    —
Look in the JES output for a SYSOUT (or maybe SYSOU1) that contains info like:
Code:
PRODUCT LICENSED FOR CPU SERIAL NUMBER . . . . PARMLIST :                                           
SORT FIELDS=(0001,0006,CH,A)                         
RECORD TYPE=F,LENGTH=(000006,,)                       
WER045C  END SORT PHASE                               
WER055I  INSERT    1120752, DELETE    1120752         
WER418I  DATASPACE(S) AND/OR HIPERSPACE(S) USED       
WER246I  FILESIZE 6,724,512 BYTES                     
WER054I  RCD IN          0, OUT          0           
WER169I  RELEASE 1.1D BATCH 0426 TPF LEVEL 3A         
WER052I  END SYNCSORT - MSRDSPA1,PAC1,,DIAG=8A00,C8DD,. . .


Posting the info from your problem run may help us help you. . .

Your system support should be able to tell you how parameters are defined.

#16:  Author: kavi PostPosted: Tue Dec 07, 2010 11:43 pm
    —
Hi Papadi,

Since the job was abended in the middle of the process, SYSOUT not having any abend related information. As I said in the earlier post, i do not have any issues in running the job in test environment. So here is the SYSOUT which was captured from test environment.

Code:


WER276B  SYSDIAG= 395612, 1997621, 1997621, 3779925                           
WER164B  13,864K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,           
WER164B     44K BYTES RESERVE REQUESTED, 12,256K BYTES USED                   
WER146B  32K BYTES OF EMERGENCY SPACE ALLOCATED                               
WER110I  DDNAME : RECFM=FB   ; LRECL=   110; BLKSIZE= 27940                 
WER410B  11,768K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE,     
WER410B     0 BYTES RESERVE REQUESTED, 11,768K BYTES USED                     
WER036B  G=49302                                                             
WER177I  TURNAROUND SORT PERFORMED                                           
WER045C  END SORT PHASE                                                       
WER055I  INSERT        315, DELETE          0                                 
WER211B  SYNCSMF  CALLED BY SYNCSORT; RC=0000                                 
WER416B  TOTAL OF 1 EXCP'S ISSUED FOR SORTING                                 
WER246I  FILESIZE 34,650 BYTES                                               
WER054I  RCD IN          0, OUT        315                                 



Could any one help me or provide me the link for, allocating dynamic sortwork files in SYNCSORT.

Thanks, Kavi

#17:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Wed Dec 08, 2010 6:58 am
    —
Okay, DATA(31) means QSAM buffers are above the line so you are not out of sequential storage. However I am ammused that REGION=0M is actually allowed. Most possibly ACS routine must be controlling it?

What are the BLKSIZEs please? The BLKSIZE is available on the JESMSGS for each DDNAME so you can see what each opened file BLKSIZE was. One way of proving it is QSAM memory problem with S878 is to code BUNFO=1 or BUFNO=2 for all QSAM files and rerun.

Do you have any QSAM files concatenated together?

Do you open all SEQ files at once? If not can you determine from the DUMP which file you are at the opening point for? And doesn't the abend offset allow you to pinpoint the actual line of code in the program at failure?

#18:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Wed Dec 08, 2010 6:59 am
    —
kavi wrote:
So here is the SYSOUT which was captured from test environment.
And with this - what progress can we make? Posting the SYSOUT from a test-job, which is not the reason of your actual abend - is of no use. Think, what if instead of suggesting for S878, reason 28, posters starts telling you about S806!?

#19:  Author: kavi PostPosted: Wed Dec 08, 2010 10:01 am
    —
Hi Anuj,

Please find the details below, as I said i donot have any abend related informations in the sysout.

Block size are 27520,28350,28350,28350,27920 for the Input files
Block size are 27920 and 28350 for the output files

Yes three files are concatenated (BLKSIZE =28350)

Yes all SEQ files are opened at once, from the dump the abending statement is SORT.

Code:

SORT xxxx-FILE                                 
    ON ASCENDING  KEY xxxx-KEY                 
        INPUT  PROCEDURE xxxxx-xxxxx THRU
                         xxxxx-xxxxx
        GIVING OUT-FILE.                   


in INPUT PROCEDURE only all the files are opened at once. The following abend info also found in
DUMP
Code:

WER999A JOBNAME,PGM  ,        -  UNSUCCESSFUL SORT 878 S REASON=00000028


Thanks, Kavi

#20:  Author: papadi PostPosted: Wed Dec 08, 2010 2:14 pm
    —
The test posted shows only 315 records - how many are sorted in the production run?

If the number is large, you could try specifying an estimated file size. . .

#21:  Author: Anuj DhawanLocation: Mumbai,India PostPosted: Thu Dec 09, 2010 5:15 am
    —
I suspect that you are running below the line with QSAM buffers but not sure why. Also I assume that the program is linked AMODE(31) RMODE(ANY).

One more suggestion, use these compile options and compile the program again and execute it and see what happens:
Code:
COMPILE PARMS ===> RENT,ADV,NODYNAM,NOSEQ,DATA(31)
LINK EDIT PARMS ===> AMODE(31),RMODE(24).



MVSFORUMS.com -> Problem Determination


output generated using printer-friendly topic mod. All times are GMT - 5 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group