View previous topic :: View next topic |
Author |
Message |
anita_m Beginner

Joined: 20 Sep 2006 Posts: 41 Topics: 12 Location: Venus
|
Posted: Thu May 24, 2007 10:38 am Post subject: S0CB |
|
|
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 |
|
 |
Nic Clouston Advanced
Joined: 01 Feb 2007 Posts: 1075 Topics: 7 Location: At Home
|
Posted: Thu May 24, 2007 10:42 am Post subject: |
|
|
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 |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
|
|
Back to top |
|
 |
anita_m Beginner

Joined: 20 Sep 2006 Posts: 41 Topics: 12 Location: Venus
|
Posted: Thu May 24, 2007 11:00 am Post subject: |
|
|
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 |
|
 |
anita_m Beginner

Joined: 20 Sep 2006 Posts: 41 Topics: 12 Location: Venus
|
Posted: Thu May 24, 2007 11:07 am Post subject: |
|
|
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 |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
|
Posted: Thu May 24, 2007 11:44 am Post subject: |
|
|
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 |
|
 |
anita_m Beginner

Joined: 20 Sep 2006 Posts: 41 Topics: 12 Location: Venus
|
Posted: Thu May 24, 2007 2:39 pm Post subject: |
|
|
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 |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
|
Posted: Thu May 24, 2007 3:26 pm Post subject: |
|
|
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 |
|
 |
anita_m Beginner

Joined: 20 Sep 2006 Posts: 41 Topics: 12 Location: Venus
|
Posted: Thu May 24, 2007 3:28 pm Post subject: |
|
|
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 |
|
 |
dbzTHEdinosauer Supermod
Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
|
Posted: Thu May 24, 2007 3:29 pm Post subject: |
|
|
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 |
|
 |
Phantom Data Mgmt Moderator

Joined: 07 Jan 2003 Posts: 1056 Topics: 91 Location: The Blue Planet
|
Posted: Thu May 24, 2007 3:32 pm Post subject: |
|
|
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
Thanks,
Phantom |
|
Back to top |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
|
Posted: Thu May 24, 2007 3:40 pm Post subject: |
|
|
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 |
|
 |
Phantom Data Mgmt Moderator

Joined: 07 Jan 2003 Posts: 1056 Topics: 91 Location: The Blue Planet
|
Posted: Thu May 24, 2007 3:44 pm Post subject: |
|
|
Oh great !!!
Thanks for enlightening me!
Regards,
Phantom |
|
Back to top |
|
 |
|
|