If you get an ABEND on the Test or Production IDMS systems, a dump will be printed on the IDMS log. If you would like to see the dump, tell a DBA group member the time of day that the ABEND occurred, and he/she will print it out for you. Or use TSO option DB to print it.
- Find User Register 9 at the beginning of the dump. It contains the address of the OTB. Go to OTB.
- OTB - Online Terminal Block. The dialog is found at offset 04. Add hex '1C' to the contents of Register 9 to get the address of the address of the address of the current VDB. Go to the VDB.
- VDB - Variable Dialog Block. Add hex '20' to the beginning of the VDB to get the offset of the current CME from the FDB (Fixed Dialog Block). Find this offset in the ADSORPTS FDB listing of the dialog. Then locate the statement in in the process itself.
- Records - are in the RBB area, which can be found by scanning the right-hand side of the dump for 'RDB'. Find the record name you want by scanning within the RBB area. Add hex '28' to the address of the record name to locate the beginning of the record data.
Hex Char Hex Char Hex Char Hex Char
C1 A D1 J F0 0
C2 B D2 K E2 B F1 1
C3 C D3 L E3 B F2 2
C4 D D4 M E4 B F3 3
C5 E D5 N E5 B F4 4
C6 F D6 O E6 B F5 5
C7 G D7 P E7 B F6 6
C8 H D8 Q E8 B F7 7
C9 I D9 R E9 B F8 8
Bits Hex Decimal Bits Hex Decimal
0000 00 0 1001 09 9
0001 01 1 1010 0A 10
0010 02 2 1011 0B 11
0011 03 3 1100 0C 12
0100 04 4 1101 0D 13
0101 05 5 1110 0E 14
0110 06 6 1111 0F 15
0111 07 7 10000 10 16
1000 08 8 10001 11 17
If you should receive an abend on online Test IDMS, these are some of the steps to take in resolving the problem:
- Note the time of day that the abend occurred so that you won't have to repeat it in case a log dump is needed.
- Look up the abend code in the IDMS Error Codes and Messages manual. Often this alone will give you enough information to correct the problem.
- Regenerate the dialog with SYMBOL TABLE YES, DIAGNOSTIC YES and re-execute the dialog. It should display the statement in error.
- If you need more information to solve the problem, execute the dialog as follows: ADS dialogname TRACE=ALL. This will write a trace of the program to the log. Then execute task OLP to look at the log online or TSO option DB to print the trace.
- Be very careful to distinguish between D002 and D004 abends. A D002 abend is a general purpose abend code while a D004 abend is a runaway task, meaning that your dialog is probably in a loop. Do not rerun a dialog if it gets a D004 abend.
Abends are to be expected on the test system because programs are in the process of being debugged. However, too many abends can slow down everyone's work. When a program abends, IDMS must (1) read the journal file records to apply the before-images to the database, and (2) write a dump to the IDMS log, which takes several seconds and prevents other messages from being written until it finishes. If several dumps occur in rapid succession, the log may completely fill up before the archive job can empty
it. When this happens, IDMS stops all work until the log is empty.