View previous topic :: View next topic
|
Author |
Message |
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
Hi!
I am analysing an abend, but it didn't give me any hint about what it is. I have 2 input files giving one output file. The program is made in COBOL. The output file is empty.
Does anyone have any idea about what it can be?
thank you |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello and welcome to the forums,
Why do you believe you are working on an abend?
Quote: |
Does anyone have any idea about what it can be? |
Yes, what is wrong can be determined. . .
Re-compile the with this
Code: |
DISPLAY 'PROGRAM STARTED'. |
as the first instruction in the PROCEDURE eivision.
Submit the jcl (post the jcl here also using the "Code" tag).
Post what is in the output queue when this job is run - there will be at least 3 queued output files.
You need to remove your contzct info from your signature. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
I just noticed your title - R0028 abend code. Where do you see this? |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
Quote: |
Does anyone have any idea about what it can be? |
You need to look at the program and see WHY it abended with that code!
Awaiting your reply. |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
Hello, CICS Guy, I've already did it, but I don't have anything in dumpmaster about that. Actually, the process didn't stopped, the next step ran normally, so for CA-7 it was not considered as an abend. But we need to discover why the output file is empty and the code is 0028.
Code: |
.05.25.45 JOB17277 MVS0010I CHFAPZSQ 09.092 H JS010 PS120 ** R0000 **
.05.25.45 JOB17277 MVS0010I CHFAPZSQ 09.092 H JS010 PS130 ** R0000 **
.05.25.45 JOB17277 MVS0010I CHFAPZSQ 09.092 H JS010 PS140 ** R0028 **
.05.25.46 JOB17277 MVS0010I CHFAPZSQ 09.092 H JS010 PS150 ** R0000 **
.05.25.46 JOB17277 IEF404I CHFAPZSQ - ENDED - TIME=05.25.46
.05.25.46 JOB17277 MFA1032I J17277 CHFAPZSQ CL=H ENDED AT 05:25:46 MAXRC=R0028
.05.25.46 JOB17277 $HASP395 CHFAPZSQ ENDED 2,149 LINES 0 CARDS |
Code: |
.****************************************
.* START OF WPZPBY18 PROGRAM *
.* *
.****************************************
. PROCESS DATE: 20090402
.****************************************
.* END OF WPZPBY18 PROGRAM *
.* *
.****************************************
.* WPZPBY18 STATISTICS *
.****************************************
. - RECS. READ I-SAVINGS: 000000132
. - RECS. READ I-VOLPROD: 000000041
. - RECS. WRITTEN O-SAVINGS: 000000000
.**************************************** |
Dick Scherrer, as you can see in the pictures, the program has already a "start program" display. Well, I think i'll put some more displays into the program while you answer my question.
Thanks for all! |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
This is an application program. If it is COBOL, somewhere in the code it is setting RETURN-CODE to 28. If it is another language, the equivalent is being done by the program code. You need to find what conditions cause this to happen. This is not an error anyone on this forum can help you with as it is very specific to your program running on your site, not a utility or other tool |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
Yes, it is a COBOL program. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
So pull up your source code, find the MOVE 28 TO RETURN-CODE and trace back to figure out why that happened. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Have you verified the record counts for the input files is the same as the number of records in the files?
Might the 28 be caused by zero records being written to the output file?
Might there be nothing wrong at all - other than understanding the rc=28? |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
Yes, I am including some displays and call abend rotine, so I can understand better why rc=28 code. As sson as I ran the progam again, i tell you.
Thanks, |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
JuMarc wrote: |
Yes, I am including some displays and call abend rotine, so I can understand better why rc=28 code. As sson as I ran the progam again, i tell you. |
Don't forget to display the special register RETURN-CODE. |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
Hello, guys,
I did what you told me to do, and included a lot of displays in my program. Then I realized something is wrong when calling the routine WAASDATE. How can I see intern routines? I've already taken a look in Footprint, but there only the includes are expanded, not the internal routines.
The program is abending when calling WAASDATE. The date field in input file is empty, then it gives me RETURN-CODE 28. But when I fill date field with 03.15.2009, the RETURN-CODE is 08. However, I can't know the correct date format, it only shows that is 10 alphanumeric positions.
Then I'd like to see how this routine works to have an ideia how to fix it. Because there is an IF to show the wrong-date when RETURN-CODE is not = 0, but it is showing 9999999... That is set when declaring the field.
Code: |
WORK AREA FOR WAASDATE
01 W-DATE-AREA.
04 W-FUNCTION-CODE PIC X.
04 W-FORMAT-1 PIC XX.
04 W-DATE-1 PIC X(18).
04 W-FORMAT-2 PIC XX.
04 W-DATE-2 PIC X(18).
04 W-RETURN-CODE PIC S9(8) COMP SYNC.
01 W-DOUBLE PIC S9(16) BINARY SYNC VALUE +0. |
Code: |
01 C-WRONG-DATE.
03 C-WRONG-DATEYM.
05 C-WRONG-DATEY PIC X(04) VALUE '9999'.
05 C-WRONG-DATEM PIC X(02) VALUE '99'.
03 C-WRONG-DATED PIC X(02) VALUE '99'.
03 C-WRONG-DATER PIC X(10) VALUE '9999999999'. |
Code: |
S0020-EFDT-PLUS-11-MONTHS.
*
MOVE 16 TO DATEJ-FORMAT-CODE
MOVE W-EFCTV-DT TO DATEJ-GIVEN-DATE
MOVE ZERO TO DATEJ-YEARS-ADJU
MOVE 11 TO DATEJ-MONTHS-ADJU
MOVE ZERO TO DATEJ-DAYS-ADJU
CALL 'WAASDATJ' USING
DATEJ-WORK-AREA
END-CALL
IF W-RETURN-CODE = +0
MOVE DATEJ-GIVEN-DATE TO W-DATE-1
ELSE
MOVE C-WRONG-DATE TO W-DATE-1
END-IF
MOVE '0' TO W-FUNCTION-CODE
MOVE '16' TO W-FORMAT-1
MOVE '22' TO W-FORMAT-2
CALL 'WAASDATE' USING W-DATE-AREA
W-DOUBLE
END-CALL
**** here it is returning 28 code *******
IF W-RETURN-CODE = +0
MOVE W-DATE-2 TO W-PLUS-11-MTH
ELSE
MOVE C-WRONG-DATE TO W-PLUS-11-MTH
END-IF
*
MOVE '0' TO W-FUNCTION-CODE
MOVE '16' TO W-FORMAT-1
MOVE '22' TO W-FORMAT-2
MOVE W-EFCTV-DT TO W-DATE-1
CALL 'WAASDATE' USING W-DATE-AREA
W-DOUBLE
END-CALL
IF W-RETURN-CODE = +0
MOVE W-DATE-2 TO W-EFECTIVE-DT
ELSE
MOVE C-WRONG-DATE TO W-EFECTIVE-DT
END-IF
*
*S0020-EFDT-PLUS-11-MONTHS.
EXIT. |
Actually, the program is not abending really, it returns code 28, but continues to run, and the next step of JCL runs too. After know how to fix it, obviously I'll need to include a routine to "take care" of the abend and then stop the program.
Thank you very much, |
|
Back to top |
|
|
William Thompson
Global Moderator
Joined: 18 Nov 2006 Posts: 3156 Location: Tucson AZ
|
|
|
|
If WAASDATE is also a cobol program, check to see if it is setting the COBOL return code in addition to W-RETURN-CODE.
If it is, reset the COBOL return code to zero while correcting the error. |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
Sorry, the routine is external.
Thank you very much, |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
William Thompson wrote: |
If WAASDATE is also a cobol program, check to see if it is setting the COBOL return code in addition to W-RETURN-CODE.
|
This is the problem, I can't see WAASDATE, and I don't know how to find it. A person told me it can be a program that was set togheter the environment and can't see it. Do you know if it's true? |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
JuMarc wrote: |
This is the problem, I can't see WAASDATE, and I don't know how to find it. A person told me it can be a program that was set togheter the environment and can't see it. Do you know if it's true? |
Either way, just "reset the COBOL return code to zero while correcting the error"...... |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
there are a few hits for waasdate in google
my guess is that it is a subroutine for date manipulation written by EDS
I found a few references on WAA.... stuff being written by EDS
( WAAPDSUT is one for example, and in one hit of a WAAPDSUT script there is a reference to WAASDATE ) |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
CICS Guy wrote: |
Either way, just "reset the COBOL return code to zero while correcting the error"...... |
Well, this is not the real problem, we have already forced complete the job, but the process will run this Monthend and we need at least a temporary solution. The problem is my output file is empty and it should not be. The record is not written because the condition code I told before.
Thanks |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
enrico-sorichetti wrote: |
there are a few hits for waasdate in google
my guess is that it is a subroutine for date manipulation written by EDS
I found a few references on WAA.... stuff being written by EDS
( WAAPDSUT is one for example, and in one hit of a WAAPDSUT script there is a reference to WAASDATE ) |
Hi Enrico, you are right, I work for this company! But anybody here can tell me how can I see the code of these subroutines!! I just want to know this... |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
since You work for them,
it would be strange for us to be able to get more info than You |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Suggest you look at the record in the file before the record with the bad date - this will show you the format of the date.
Someone needs to make a decision on what should happen when the input date is missing - should some default date (today?) be used or should the record be skipped, or should the run be terminated (as it is now).
In the problem program you might change the missing date to the default date if such a decison can be made.
Coding around the problem should not be difficult once the "rules" are known.
As others have mentioned, you should be able to find all of the info about an eds module from eds. . . |
|
Back to top |
|
|
JuMarc
New User
Joined: 28 Apr 2009 Posts: 10 Location: São Paulo - Brazil
|
|
|
|
Thank you everybody for all your help. You helped me to have an ideia on how to begin, then I found the issue is in the date. I didn't know WAA* was only EDS utilities. And here we no longer have experienced people, as many of them were dismissed with HP buying. Finally after a great search I found people from other groups that still have these kind of knowledge and will help me in my desk.
Sorry for my small experience.
As soon as I fix the issue. I tell you.
Thanks for while.
* Scherrer, all the records in file has spaces in date field, it's why I couldn't know the format. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Quote: |
all the records in file has spaces in date field, it's why I couldn't know the format. |
Bummer. . .
Good luck - someone will be here when there are questions
d |
|
Back to top |
|
|
|