Kbase P11371: Incremental .df load fails with error 129 for recid > 188 byte
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  3/19/2008 |
|
Status: Verified
FACT(s) (Environment):
Progress 9.1x
OpenEdge 10.0x
OpenEdge 10.1A
SYMPTOM(s):
Incremental .df load exits with error (129)
The total length of the fields in an index exceeds max key size. (129)
Incremental .df load fails with error 129 for recid > 188 bytes
CAUSE:
In versions preceeding OpenEdge 10.1B, this is expected behaviour, a the index limit has been reached.
The sum of the lengths of all fields in an index cannot be more than 188 for an individual record. In this case, records were padded with a significant number of spaces that exceeded 188 bytes. When the load.df tries to build an index for a large field (which exceeds the 188 byte size limitation), it terminates with error message (129).
FIX:
An enhancement has been implemented in the OpenEdge 10.1B in the form of the "proutil -C enablelargekeys" utility only for databases with 4KB or 8KB database blocksize. Once enabled, the new index key is limited to approximately 1970 characters.
Please refer to "OpenEdge Data Management: Database Adminstration" for further information.
Prior to OpenEdge 10.1B, the only fix is to modify the application to put a shorter string to an index.
The errant fields will need to be found through 4GL calls, for example --
By performing a FOR EACH on the table and reading each record in the Index, and checking for which records have a RAW LENGTH > 188 (byte size)
for example:
FOR EACH table NO-LOCK:
IF LENGTH(table.field,"RAW") > 188 THEN DISPLAY RECID(table).
END.
Removing the padding (modify) or removing the record(s) will allow the .df to load