Salesforce

Inconsistent behaviour of PROUTIL when -cpinternal is not specified

« Go Back

Information

 
TitleInconsistent behaviour of PROUTIL when -cpinternal is not specified
URL Name000032161
Article Number000151183
EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
Some options of PROUTIL crash when the correct codepage is not specified, for example:
PROUTIL -C bulkload GPF's when the -cpinternal of the database is not specified.

Other options of PROUTIL exit correctly with an appropriate error message, for example:
PROUTIL -C idxbuild (correctly) aborts with error 8557.
Steps to Reproduce
Clarifying Information
Error MessageUse "-cpinternal UTF-8" with idxbuild only with a UTF-8 database. (8557)
Use "-cpinternal UTF-8" with <db-utility> only with a UTF-8 database. (8557)
Defect NumberEnhancement PSC00244610 / OE00221285
Enhancement Number
Cause
PROUTIL is not aware of the database codepage. An Enhancement Request has been entered for PROUTIL to not require the -cpinternal parameter explicitly, instead detect the correct default value of the database codepage, iow: PROUTIL should be aware of the database codepage instead of the DLC/startup.pf -cpinternal value.
Resolution
This enhancement has not been implemented in the product.  PROUTIL is not aware of the database codepage. If the database codepage is different to the -cpinternal specified in the DLC/startup.pf then it must be specified in the PROUTIL command line to ensure that the command executes correctly and does not introduce unexpected data corruption.  
iow: use the -cpinternal value that matches the codepage of the database, not the client.

The reason that error 8557 is triggered with some PROUTIL Options, is that we need “-cpinternal UTF-8”  during index key operations, because sometimes a code page conversion is needed. Without “-cpinternal UTF-8”, the conversion may fail. Use binary load as example, after loading 1 million records successfully, a conversion error may eventually be encountered and the whole loading process fails. Adding this 8557 message at the beginning of binary load prevents this from happening and saves time by having -cpinternal properly specified at the beginning of the operation.

In OpenEdge 11.4, Enhancement PSC00299582 was Release Noted:

PSC00299582 : Utilities performing index operations on a UTF-8 database requires -cpinternal UTF-8
 
Utilities performing index key operations within PROUTIL require you to include "-cpinternal UTF-8" on the command line when operating on a UTF-8 database. If PROUTIL detects that your database is a UTF-8 database and -cpinternal UTF-8 is not specified, a message is generated and the utility exits.  
The utilities are:  LOAD, IDXACTIVATE, IDXFIX, IDXCHECK, IDXBUILD, CONV1011, PARTITIONMANAGE SPLIT, PARTITIONMANAGE MERGE, PARTITIONMANAGE TRUNCATE, and TPIDXBUILD.
Prior to OpenEdge 11.4, only the following utilities would exit with the 8557 message when -cpinternal was not specified:
conv1011, idxcheck, idxfix, idxbuild, and tpidxbuild
Workaround
Notes
Keyword Phrase
Last Modified Date6/10/2016 8:47 AM

Powered by