MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

S0CB

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Job Control Language(JCL)
View previous topic :: View next topic  
Author Message
anita_m
Beginner


Joined: 20 Sep 2006
Posts: 41
Topics: 12
Location: Venus

PostPosted: Thu May 24, 2007 10:38 am    Post subject: S0CB Reply with quote

I am getting following abend on execution of a program PGMXXX.

Sysout
Code:

CEE3211S The system detected a decimal-divide exception (System Completion Code=0CB). From compile unit PGMXXX at entry point PGMXXX at compile unit offset at address 25101254.                                                   



Abendaid :

Code:

*            Analysis of Error            *                           
*******************************************                           
                                                                       
The failing operand is located in the Constant Global Table (CGT) and 
contains X'0F'.  The operand is at displacement 176 from register 10   
which points to the CGT.  The failing operand is located in the CGT due
to optimization or because it is a constant.  Refer to the compiler   
listing to determine the field in error.                               


Now is there a way to know which field is causing this. There are a lot of decimal fields being used in this program. I dont know what a CGT is.
[/code]
Back to top
View user's profile Send private message
Nic Clouston
Advanced


Joined: 01 Feb 2007
Posts: 1075
Topics: 7
Location: At Home

PostPosted: Thu May 24, 2007 10:42 am    Post subject: Reply with quote

I think - but I am almost certain to be wrong - that you are dividing by 0. I have not used Abendaid in donkey's year so cannot help on the finding of the variable at fault.
_________________
Utility and Program control cards are NOT, repeat NOT, JCL.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Thu May 24, 2007 10:57 am    Post subject: Reply with quote

anita_m,

Read this

http://www.mvsforums.com/helpboards/viewtopic.php?p=965#965


Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
anita_m
Beginner


Joined: 20 Sep 2006
Posts: 41
Topics: 12
Location: Venus

PostPosted: Thu May 24, 2007 11:00 am    Post subject: Reply with quote

I receive an amount field with a squiggle at the end-> 1234567890{
It is to be converted to S9(9)V99 comp-3.

So in easytrieve,
I defined this amount field as 11N then moved it to a 6 P 2 using '=' operater
6 P 2 = 11N

This could be the cause of this abend. But I dont know how to solve it.
Back to top
View user's profile Send private message
anita_m
Beginner


Joined: 20 Sep 2006
Posts: 41
Topics: 12
Location: Venus

PostPosted: Thu May 24, 2007 11:07 am    Post subject: Reply with quote

This program has only adds and moves. This is an exisitng production program too. Hence I think the data I am loading in is the problem.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Thu May 24, 2007 11:44 am    Post subject: Reply with quote

Quote:

So in easytrieve,
I defined this amount field as 11N then moved it to a 6 P 2 using '=' operater
6 P 2 = 11N


The example data you have shown is a SIGNED numeric field. So in your easytrieve define it as 11 N 0 and move that 6 P 2 and you shouldn't have any problem

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
anita_m
Beginner


Joined: 20 Sep 2006
Posts: 41
Topics: 12
Location: Venus

PostPosted: Thu May 24, 2007 2:39 pm    Post subject: Reply with quote

I am doing following conversion in easytrieve
Code:
6 P 2 =  11 N 0
4 P 0 =  7  N 0


But the cobol that follows it still abends with S0CB. I found the following too in abendaid. But dont know what it means
Code:
S0CB     matched an entry in table CWTABS01:
   S=(N,Y,Y),U=(D,Y,Y)                       

How do we get to COMPUWARE/VF ENTRY PANEL to set up abend aid as shown in the link? Also what should be my DDIO library?
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Thu May 24, 2007 3:26 pm    Post subject: Reply with quote

anita_m,


Did you check this ?

This ABEND is caused by a decimal divide exception. A Quotient exceeds the specified data field size. Dividing by zero is the most common cause of this ABEND. Correct the program logic error that caused the divide exception and resubmit the job. (Reason Code B)

also add ON EXCEPTION clause for all the statements where you are dividing

Quote:

How do we get to COMPUWARE/VF ENTRY PANEL to set up abend aid as shown in the link? Also what should be my DDIO library?


Every shop has their own setup. Did you try asking around your co-workers?

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
anita_m
Beginner


Joined: 20 Sep 2006
Posts: 41
Topics: 12
Location: Venus

PostPosted: Thu May 24, 2007 3:28 pm    Post subject: Reply with quote

This is how I found the error.
- Went to program listing
- F 'HEXLOC'
Code:
LINE #  HEXLOC  VERB                        LINE #  HEXLOC  VERB
000405 0005E0 PERFORM                       000564 0005E0 OPEN   
000573 00063E DISPLAY                       000575 000648 DISPLAY
000601 000652 DISPLAY                       000602 00065C DIVIDE
000406 000680 PERFORM                       000408 00068C PERFORM
000592 000690 PERFORM                       000595 0006A0 CLOSE 
000419 00076C DISPLAY                       000420 00077A IF     
000422 000786 MOVE                          000423 00078C MOVE   
000425 0007D4 IF                            000427 0007DE DISPLAY
000431 0007F6 DISPLAY                       000433 000800 PERFORM
000602 00080A DIVIDE                        000603 000824 STOP   
000436 000838 PERFORM                       000438 000844 ADD   
- Sysout displays "offset +00000814" hence I chose the hexloc range of 00080A to 000824, between which 000814 lies
- Hence the abend is between the line numbers 000602 to 000603, which correspond to the hexloc
- F '0602' in listing
Following code caused the abend.
Code:
000600                9999-ABORT.                                           
000601                    DISPLAY 'PGMXXX FORCED 0CB ABORT ' UPON CONSOLE.
000602                    DIVIDE WA-ABEND-ZERO INTO WA-ABEND-CODE.         
000603                    STOP RUN.                                         
000604                                                                     
So yes it literally was due to a divide by zero. It had been just another way of executing an abend para!

Thanks for all your help.
Back to top
View user's profile Send private message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Thu May 24, 2007 3:29 pm    Post subject: Reply with quote

6 P 2 is the same as PIC S9(09)V99. (7 P 2 would be PIC S9(11)V99)
11 N 0 is PIC 9(11).

Looks like the 2 high order are being truncated.
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
Phantom
Data Mgmt Moderator
Data Mgmt Moderator


Joined: 07 Jan 2003
Posts: 1056
Topics: 91
Location: The Blue Planet

PostPosted: Thu May 24, 2007 3:32 pm    Post subject: Reply with quote

Quote:

6 P 2 is the same as PIC S9(09)V99. (7 P 2 would be PIC S9(11)V99)


I thought 6 P 2 = PIC S9(08)V99 COMP-3 and 7 P 2 = PIC S9(09)V99 COMP-3. Am I wrong Question

Thanks,
Phantom
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Thu May 24, 2007 3:40 pm    Post subject: Reply with quote

Quote:

I thought 6 P 2 = PIC S9(08)V99 COMP-3 and 7 P 2 = PIC S9(09)V99 COMP-3. Am I wrong


You are wrong. for easytrieve the length definiton is is the total bytes a comp-3 occupies but not the integer portion value.

6 P 0 = total of 6 bytes with no decimals which = S9(11) comp-3. and not S9(6) comp-3.

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Phantom
Data Mgmt Moderator
Data Mgmt Moderator


Joined: 07 Jan 2003
Posts: 1056
Topics: 91
Location: The Blue Planet

PostPosted: Thu May 24, 2007 3:44 pm    Post subject: Reply with quote

Oh great !!!

Thanks for enlightening me!

Regards,
Phantom
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Job Control Language(JCL) All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group