IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to find the DATA EXCEPTION error.


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
natinuk

New User


Joined: 23 Nov 2006
Posts: 22
Location: India

PostPosted: Thu Jan 25, 2007 3:23 pm
Reply with quote

i am getting the following error.
IBM537I 'ONCODE'=8097 DATA EXCEPTION
AT OFFSET +0003D0 IN PROCEDURE WITH ENTRY NATX010

How to find the line number using the above offset address.

Thanks in advance
Nat
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Thu Jan 25, 2007 6:17 pm
Reply with quote

natinuk wrote:
i am getting the following error.
IBM537I 'ONCODE'=8097 DATA EXCEPTION
AT OFFSET +0003D0 IN PROCEDURE WITH ENTRY NATX010

How to find the line number using the above offset address.
Look at the listing, at +3d0 into the named procedure.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Jan 25, 2007 8:23 pm
Reply with quote

Do you have Abend Aid; the statement# is displayed. Using the listing find as follows:
Code:
 -              TABLES OF OFFSETS AND STATEMENT NUMBERS                         
0                                                                               
-              WITHIN PROCEDURE PBA00                                           
0OFFSET (HEX)       0     A8     B8     BC     E8    14E    198    1A0    1DA   
 STATEMENT NO.      1     30     46     50     51     52     84    146    147   
0OFFSET (HEX)     946    A5E    ACE    ACE    AD2    AD6    ADA    ADA         
 STATEMENT NO.    154    155    156    152    156    152    156    611         
-              WITHIN PROCEDURE MOD_TEXT                                       
0OFFSET (HEX)       0     5A     C0    122    184    1E6    248    2AA    30C   
 STATEMENT NO.     12     13     14     15     16     17     18     19     20   
-              WITHIN PROCEDURE MID_IN_MOD                                     
0OFFSET (HEX)       0     5A    2C2    2DA                                     
 STATEMENT NO.     42     43     44     45                                     
-              WITHIN ON UNIT BLOCK 4                                           
0OFFSET (HEX)       0     74     78     DC                                     
 STATEMENT NO.     46     47     48     49                                     
-              WITHIN PROCEDURE INIT_EXIT                                       
0OFFSET (HEX)       0     5A     68     8A     AC     CE     F0    112    112   
 STATEMENT NO.    157    158    159    160    161    162    163    164    165   
0OFFSET (HEX)     15C    16A    17C    18A    192    19A    19E    1A6    1B0   
 STATEMENT NO.    171    172    173    174    175    176    177    178    179   
0OFFSET (HEX)     252    256    30E    39E    3A8    3C4    3D6    3F2    3F2   
 STATEMENT NO.    184    185    186    187    188    189    190    189    190   
0OFFSET (HEX)     4A4    4A8    4A8    4C2    4DC    4E4                       
 STATEMENT NO.    195    193    194    195    196    197                       
-              WITHIN PROCEDURE EINGABE_OK                                     
0OFFSET (HEX)       0     68     86     E0    90E    920    932    944    976   
 STATEMENT NO.    198    199    200    201    202    203    204    205    206   


Find the offset within the named procedure; the statement# is the one you need. After finding the statement you will surely need to find the content of the field(s) in error. You may find them in your dump (static) at the address indicated in the VARIABLE STORAGE MAP of your compile listing like this:
Code:
 15688-235 IBM PL/I for MVS & VM          /*************************************
-                                  VARIABLE STORAGE MAP                         
-IDENTIFIER                        LEVEL         OFFSET       (HEX)   CLASS     
                                                                               
 TPLA001_I                             1           4416        1140   STATIC   
 ID                                    1           4416        1140   STATIC   
 HISTKEZ                               1           4418        1142   STATIC   
 STATUS                                1           4420        1144   STATIC   
 SABE                                  1           4422        1146   STATIC   
 LTERM                                 1           4424        1148   STATIC   
 ADAT                                  1           4426        114A   STATIC   
 AEDA                                  1           4428        114C   STATIC   
 F11DTM                                1           4430        114E   STATIC   
 GESKEZ                                1           4432        1150   STATIC   
 BEARB                                 1           4434        1152   STATIC   
 WAEHRUNG                              1           4436        1154   STATIC   
 GPNR                                  1           4438        1156   STATIC   
 SCHABLONE                             1           4440        1158   STATIC   
 OBERFL01                              1           4442        115A   STATIC   
 CS_HOST                               1           4444        115C   STATIC   
 TPLA001                               1           4446        115E   STATIC   
 ID                                    1           4446        115E   STATIC   
 HISTKEZ                               1           4469        1175   STATIC   
 STATUS                                1           4470        1176   STATIC   
 SABE                                  1           4471        1177   STATIC   
 LTERM                                 1           4486        1186   STATIC   
 ADAT                                  1           4509        119D   STATIC   
 AEDA                                  1           4519        11A7   STATIC   
Back to top
View user's profile Send private message
natinuk

New User


Joined: 23 Nov 2006
Posts: 22
Location: India

PostPosted: Thu Jan 25, 2007 8:49 pm
Reply with quote

This is the Offset address for my procedure. PLease tell how to locate the Offset address 3D0here.

OFFSET (HEX) 0 F2 F6 100 10A 114 11E 128
STATEMENT NO. 1 77 81 82 83 84 85 86
OFFSET (HEX) 1D4 1E6 22A 248 284 288 288 2C4
STATEMENT NO. 94 95 96 97 98 99 100 101
OFFSET (HEX) 332 33C 342 348 35A 364 36A 378
STATEMENT NO. 109 110 111 112 113 114 115 116
OFFSET (HEX) 3CE 3D4 3DE 3E4 3EE 3FA 404 408
STATEMENT NO. 124 125 126 127 128 129 130 131
OFFSET (HEX) 43E 44A 454 45E 468 4AC 4B6 4FA
STATEMENT NO. 139 140 141 142 143 144 145 146
WITHIN ON UNIT BLOCK 2
OFFSET (HEX) 0 70 74 A0
STATEMENT NO. 77 78 79 80

Bitneuker wrote:
Do you have Abend Aid; the statement# is displayed. Using the listing find as follows:
Code:
 -              TABLES OF OFFSETS AND STATEMENT NUMBERS                         
0                                                                               
-              WITHIN PROCEDURE PBA00                                           
0OFFSET (HEX)       0     A8     B8     BC     E8    14E    198    1A0    1DA   
 STATEMENT NO.      1     30     46     50     51     52     84    146    147   
0OFFSET (HEX)     946    A5E    ACE    ACE    AD2    AD6    ADA    ADA         
 STATEMENT NO.    154    155    156    152    156    152    156    611         
-              WITHIN PROCEDURE MOD_TEXT                                       
0OFFSET (HEX)       0     5A     C0    122    184    1E6    248    2AA    30C   
 STATEMENT NO.     12     13     14     15     16     17     18     19     20   
-              WITHIN PROCEDURE MID_IN_MOD                                     
0OFFSET (HEX)       0     5A    2C2    2DA                                     
 STATEMENT NO.     42     43     44     45                                     
-              WITHIN ON UNIT BLOCK 4                                           
0OFFSET (HEX)       0     74     78     DC                                     
 STATEMENT NO.     46     47     48     49                                     
-              WITHIN PROCEDURE INIT_EXIT                                       
0OFFSET (HEX)       0     5A     68     8A     AC     CE     F0    112    112   
 STATEMENT NO.    157    158    159    160    161    162    163    164    165   
0OFFSET (HEX)     15C    16A    17C    18A    192    19A    19E    1A6    1B0   
 STATEMENT NO.    171    172    173    174    175    176    177    178    179   
0OFFSET (HEX)     252    256    30E    39E    3A8    3C4    3D6    3F2    3F2   
 STATEMENT NO.    184    185    186    187    188    189    190    189    190   
0OFFSET (HEX)     4A4    4A8    4A8    4C2    4DC    4E4                       
 STATEMENT NO.    195    193    194    195    196    197                       
-              WITHIN PROCEDURE EINGABE_OK                                     
0OFFSET (HEX)       0     68     86     E0    90E    920    932    944    976   
 STATEMENT NO.    198    199    200    201    202    203    204    205    206   


Find the offset within the named procedure; the statement# is the one you need. After finding the statement you will surely need to find the content of the field(s) in error. You may find them in your dump (static) at the address indicated in the VARIABLE STORAGE MAP of your compile listing like this:
Code:
 15688-235 IBM PL/I for MVS & VM          /*************************************
-                                  VARIABLE STORAGE MAP                         
-IDENTIFIER                        LEVEL         OFFSET       (HEX)   CLASS     
                                                                               
 TPLA001_I                             1           4416        1140   STATIC   
 ID                                    1           4416        1140   STATIC   
 HISTKEZ                               1           4418        1142   STATIC   
 STATUS                                1           4420        1144   STATIC   
 SABE                                  1           4422        1146   STATIC   
 LTERM                                 1           4424        1148   STATIC   
 ADAT                                  1           4426        114A   STATIC   
 AEDA                                  1           4428        114C   STATIC   
 F11DTM                                1           4430        114E   STATIC   
 GESKEZ                                1           4432        1150   STATIC   
 BEARB                                 1           4434        1152   STATIC   
 WAEHRUNG                              1           4436        1154   STATIC   
 GPNR                                  1           4438        1156   STATIC   
 SCHABLONE                             1           4440        1158   STATIC   
 OBERFL01                              1           4442        115A   STATIC   
 CS_HOST                               1           4444        115C   STATIC   
 TPLA001                               1           4446        115E   STATIC   
 ID                                    1           4446        115E   STATIC   
 HISTKEZ                               1           4469        1175   STATIC   
 STATUS                                1           4470        1176   STATIC   
 SABE                                  1           4471        1177   STATIC   
 LTERM                                 1           4486        1186   STATIC   
 ADAT                                  1           4509        119D   STATIC   
 AEDA                                  1           4519        11A7   STATIC   
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Thu Jan 25, 2007 8:54 pm
Reply with quote

natinuk wrote:
This is the Offset address for my procedure. PLease tell how to locate the Offset address 3D0here.

Code:
OFFSET (HEX)       0     F2     F6    100    10A    114    11E    128   
STATEMENT NO.      1     77     81     82     83     84     85     86   
OFFSET (HEX)     1D4    1E6    22A    248    284    288    288    2C4   
STATEMENT NO.     94     95     96     97     98     99    100    101   
OFFSET (HEX)     332    33C    342    348    35A    364    36A    378   
STATEMENT NO.    109    110    111    112    113    114    115    116   
OFFSET (HEX)     3CE    3D4    3DE    3E4    3EE    3FA    404    408   
STATEMENT NO.    124    125    126    127    128    129    130    131   
OFFSET (HEX)     43E    44A    454    45E    468    4AC    4B6    4FA   
STATEMENT NO.    139    140    141    142    143    144    145    146   
              WITHIN ON UNIT BLOCK 2                                   
OFFSET (HEX)       0     70     74     A0                               
STATEMENT NO.     77     78     79     80                               


Looks like 109...
Back to top
View user's profile Send private message
natinuk

New User


Joined: 23 Nov 2006
Posts: 22
Location: India

PostPosted: Thu Jan 25, 2007 9:04 pm
Reply with quote

Then how to find the statement fields in variable storage map.

IDENTIFIER LEVEL OFFSET (HEX) CLACLASS

FEEVSAM_FOUND 1 216 D8 AUTO
NO 1 217 D9 AUTO
YES 1 218 DA AUTO
FEEVSAM_REC 1 224 E0 AUTO
KEY 1 224 E0 AUTO
ACCNTNR 1 224 E0 AUTO
FEE_FILLER1 1 231 E7 AUTO
FEE_INC 1 232 E8 AUTO
FEE_PRN 1 238 EE AUTO
FEE_FILLER2 1 244 F4 AUTO
SEQ_NUM 1 1424 590 STATIC
SEQNR 1 1424 590 STATIC
FILLER 1 1427 593 STATIC
DIV 1 1420 58C STATIC
SIX 1 1380 564 STATIC
FIVE 1 1376 560 STATIC
FOUR 1 1372 55C STATIC
THREE 1 1368 558 STATIC
REPL 1 1416 588 STATIC
DLET 1 1412 584 STATIC
ISRT 1 1408 580 STATIC
GHN 1 1404 57C STATIC
GHNP 1 1400 578 STATIC
GHU 1 1396 574 STATIC
GNP 1 1392 570 STATIC
GN 1 1388 56C STATIC
GU 1 1384 568 STATIC
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Jan 25, 2007 10:19 pm
Reply with quote

William Thompson wrote:
natinuk wrote:
This is the Offset address for my procedure. PLease tell how to locate the Offset address 3D0here.

Code:
OFFSET (HEX)       0     F2     F6    100    10A    114    11E    128   
STATEMENT NO.      1     77     81     82     83     84     85     86   
OFFSET (HEX)     1D4    1E6    22A    248    284    288    288    2C4   
STATEMENT NO.     94     95     96     97     98     99    100    101   
OFFSET (HEX)     332    33C    342    348    35A    364    36A    378   
STATEMENT NO.    109    110    111    112    113    114    115    116   
OFFSET (HEX)     3CE    3D4    3DE    3E4    3EE    3FA    404    408   
STATEMENT NO.    124    125    126    127    128    129    130    131   
OFFSET (HEX)     43E    44A    454    45E    468    4AC    4B6    4FA   
STATEMENT NO.    139    140    141    142    143    144    145    146   
              WITHIN ON UNIT BLOCK 2                                   
OFFSET (HEX)       0     70     74     A0                               
STATEMENT NO.     77     78     79     80                               


Looks like 109...


Bill sorry: 124
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Jan 25, 2007 10:22 pm
Reply with quote

TS: in your listing find statement 124 and locate the fields used. Look for the fields you want to examine in the variable map and find their location. After that we will have to locate the content of those fields in your dump. This location would be the entry point of your module with the hex offset of the field added to this address.
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Thu Jan 25, 2007 10:25 pm
Reply with quote

This statement 124 I assume is part of
Code:
WITHIN PROCEDURE NATX010                                       
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Thu Jan 25, 2007 10:46 pm
Reply with quote

Bitneuker wrote:
William Thompson wrote:
Looks like 109...


Bill sorry: 124
Oh well, I'm dyslexic....... icon_wink.gif
Back to top
View user's profile Send private message
Bitneuker

CICS Moderator


Joined: 07 Nov 2005
Posts: 1104
Location: The Netherlands at Hole 19

PostPosted: Fri Jan 26, 2007 6:19 pm
Reply with quote

[quote="natinuk]Then how to find the statement fields in variable storage map. [/quote]
Code:

IDENTIFIER                        LEVEL         OFFSET       (HEX)   CLACLASS
                                                                       
FEEVSAM_FOUND                         1            216          D8   AUTO 
NO                                    1            217          D9   AUTO 
YES                                   1            218          DA   AUTO 
FEEVSAM_REC                           1            224          E0   AUTO 
KEY                                   1            224          E0   AUTO 
ACCNTNR                               1            224          E0   AUTO 
FEE_FILLER1                           1            231          E7   AUTO 
FEE_INC                               1            232          E8   AUTO 
FEE_PRN                               1            238          EE   AUTO 
FEE_FILLER2                           1            244          F4   AUTO 
SEQ_NUM                               1           1424         590   STATIC
SEQNR                                 1           1424         590   STATIC
FILLER                                1           1427         593   STATIC
DIV                                   1           1420         58C   STATIC
SIX                                   1           1380         564   STATIC
FIVE                                  1           1376         560   STATIC
FOUR                                  1           1372         55C   STATIC
THREE                                 1           1368         558   STATIC
REPL                                  1           1416         588   STATIC
DLET                                  1           1412         584   STATIC
ISRT                                  1           1408         580   STATIC
GHN                                   1           1404         57C   STATIC
GHNP                                  1           1400         578   STATIC
GHU                                   1           1396         574   STATIC
GNP                                   1           1392         570   STATIC
GN                                    1           1388         56C   STATIC
GU                                    1           1384         568   STATIC


So if you want to find the address of variable 'FIVE' add 560 (HEX) to the entry point address.........
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts How to save SYSLOG as text data via P... All Other Mainframe Topics 4
No new posts Store the data for fixed length COBOL Programming 1
No new posts Error to read log with rexx CLIST & REXX 11
No new posts Error when install DB2 DB2 2
No new posts Data set Rec-Cnt and Byte-Cnt Testing & Performance 2
Search our Forums:

Back to Top