Duplicate Record Key Causes Upgrade Failure
search cancel

Duplicate Record Key Causes Upgrade Failure

book

Article ID: 406771

calendar_today

Updated On:

Products

CA 2E

Issue/Introduction

When trying to upgrade to 2E 8.7.4 from 8.7 the upgrade fails.

The joblog contains the following error:

Duplicate record key in member YCONDTA00L

This article will explain why this issue is occurring and how to resolve the issue

Environment

Upgrading 2E from 8.7 to 8.7.4

Cause

This occurs due to the historical existence of 'MS' and 'MT' records in the YCONDTARFP file and any conditions that might already be using these constants in the YCONDTARFP file

Resolution

In order to successfully complete the upgrade, we suggest amending the related program to reuse the existing constants if they existed in the model.

If the constants do not exist in the model, then the 2E 8.7.4 upgrade process will create the constants in the model.

The following command will identify existing 'MS' and 'MT' constants in the YCONDTARFP file, existing conditions which are using these constants, and which fields those conditions might be associated.

SELECT * FROM YCONDTARFP WHERE CON in ('MS', 'MT')

If this command finds values other than 1003236 (for 'MS'), 1003237 (for 'MT') then the constants have been added historically.

If they did not exist before the upgrade, they will be added to the YCONDTARFP file. 

To find existing conditions from the YCNDDTARFP which use the 'MS', 'MT' constants you can use this command:

SELECT * FROM YCNDDTARFP WHERE
@@OBJ1 IN (SELECT @@CON FROM YCONDTARFP WHERE CON in ('MS', 'MT'))

If 'MS', 'MT' do not exist before the upgrade and have been added during the upgrade, there will be 2 entries:

1003238 (for *MSECONDS) 

1003244 (for *MONTHS)

added for the object surrogate 874 (the newly added field "*Diff Unit") which uses the surrogates of the newly created 'MS', 'MT' constants, in the YCNDDTARFP file.

If these already existed, then the existing surrogates for the constants 'MS' and 'MT' will be reused while creating the 2 new entries 1003238 (for *MSECONDS) and 1003244 (for *MONTHS) added for the object surrogate 874 (the newly added field "*Diff Unit"), in the YCNDDTARFP file.

Additional Information