Home The Company Publications Products Links Tips Jobs

NAT3199 - Inconsistency in the Inverted List

Last update: 1 June 2005

ADABAS Response 199 or Natural message NAT3199
Paul Sowash reported that his program received the following error, which is running under ADA713 and NAT316:

pgmx 1120 NAT3199 Inconsistency in inverted list index. DB/FNR x/yy.

1110 FIND VENDOR WITH VNUMBER-PFIX = '*'
1120   DELETE
1130   END TRANSACTION
(snip)
1270 END-FIND
Reason for the code: During an update operation, an inconsistency was found in the inverted list index. The leftmost two bytes of additon 2 of the Adabas control block (CB-ADD2) may contain the descriptor name.

As responded by Ki Weingart and discussed on SAG-L since 1996 (see Adabas response code 199), some customers ran into this problem before. See SAG-L, please click.

"The 199 is a self-correcting response code. What happens is that the index (NI) and DATA do not match. Sometimes the index exists but points to a record that does not exist in DATA. ADABAS then issues a response code 199 and deletes the index record thereby rectifying itself. If the DATA record exists but not the index, then ADABAS adds the index and issues a 199."

Jim Poole responded 1999 when I (Dieter Storr) reported a response code 199 and pointed out that ADAICK did not find any error. I restarted the job and it processed the relevant ISN and abended (NAT3199) with another ISN. In this case, I released the descriptor, which caused the error. This happened under ADA527 and ADA622.

"We had a long history of corruption errors (for bad habits not to be published). ADAVAL is a far more robust utility for determining them (checks DS record content against index content) versus ADAICK (checks structure of pointers, lengths, etc).
A rsp. 199 on an update command is a self-correcting response code, the update found an error, backed out the update using the contents of DS (problem fixed, on to the next bad record). You can actually use this technique to fixe isolated errors verus Unload/Load or Release/Invert."

From SL24

Fix for ADA623 - ADARSP199 for update cmd

Symptom:

An Adabas update/delete command (A1/A4/E1) receives Adabas rsp code 199.

Verification:

  • Check the additions 2 field (ADD2) of the Adabas control block. The leftmost 2 bytes of ADD2 should contain the descriptor field name which was detected to be inconsistent.
  • Run utility ADAVAL VALIDATE to check the DE-values in the normal index against the DATA records.

Resolution:

  • If ADA621 is installed: Apply zap AN21041 and re-start Adabas nucleus
  • Delete the descriptor reported in the ADD2 field (ADADBS RELEASE) and recreate the descriptor using utility ADAINV.
  • If the 'problem' descriptor is unknown:
    1. Unload the Adabas file with utility ADAULD
    2. Delete the file with ADADBS DELETE
    3. Re-load the file using ADALOD LOAD and provide input from step a)
Note: Although the actual update command is not completed (back out), the Adabas nucleus corrects the inconsistent DE-value in the NI automatically by adding the missing DE-value into the index. Therefore the next update command on the same ISN will not receive the rsp-199 again. However, the incorrect DE- value encountered remains in the index and is detected by utility ADAVAL.

Early Warning - ADA742-004:

Apply zaps AN742302 and AU742132 / Use V743 ADALCO

Problem-No : 263886 INDEX INCONSISTENCY, RSP-175/-199
Given a particular distribution of descriptor values and ISN lists over multiple INDEX blocks, a specific INDEX update could introduce a rule violation in the INDEX structure. This rule violation alone would not cause any noticable errors, but a further certain sequence of updates might make the INDEX inconsistent and cause errors.

Possible error symptoms were:

  • A descriptor value present in the INDEX might not be found in a direct search for this value.
  • Response code 199 could occur on an attempt to delete a descriptor value/ISN from the INDEX.
  • Response code 113 or 175 could occur when reading records via the INDEX.
  • ADAICK ICHECK reported ERROR-125, MI/NI ISNS DO NOT AGREE.
  • ADAVAL reported mismatches between the INDEX and DATA STORAGE.
This error was rare and involved the occurrence of all of the following elements:
  • Many DATA storage records containing the same descriptor value.
  • The ISN list for this descriptor value spreading over more than two NORMAL INDEX blocks and more than one MAIN INDEX block.
  • Batches of updates involving this descriptor value where by groups of ISNS were repeatedly inserted and removed from the INDEX.
SAG recommend to check the INDEX of your database with the checkutility ADAICK (zap AU742132 applied). In case of inconsistencies these have to be corrected by either reinverting the descriptor (ADAINV or online invert) or unload and reload the file (ADAULD/ADALOD).

Note: The corrections are only valid for Adabas Version 7.4.2.

Early Warning - ADA743-001:

Apply zaps AN743078 and AU743042

Problem-No : 264110 INDEX INCONSISTENCY, RSP-175/-199
Same description as "Early Warning - ADA742-004."

For ADAICK: zap AU743042 applied.

Comments from Dieter Storr:
I am wondering whether Adabas version 8 will solve the problem.

Top Page


Back to NATURAL Tips, Tricks, Techniques -- Overview