search cancel

2nd record limit in YLSTSGTNXP - What will happen once the max value 999999 has been reached ?


Article ID: 133640


Updated On:




We've had some past correspondences related to YLSTSGTNXP, especially related to C22E 525.  Model Health Monitoring: "Firstly, the field length being 7.0 - this is the maximum as per product design. There are no plans of increasing it for now, given the complexity involved in underlying code and potential problems that changing it might bring in. If it is desired to request this change, then the best way is to raise an Idea on the Idea Wall for the same. The 2nd record in YLSTSGTNXP file is used for allocating low order surrogate - files, fields and associated relations. 1st record is used for allocating the high order surrogates for any entity being created in a model - other than ones for which 2nd record is used. Maximum value for 1st record is 9999990, Current value is 2389705, the difference being 7610285. Highest value for 2nd record is - 999999, Current value is 243484, the difference being 756515. So there is still a very long way to reach the limits. Moreover, when the 1st record reaches the maximum, the next surrogate is arrived at from the 3rd record (as part of C22E 525). It is always a good idea to split the applications across models, based on the underlying functionality to keep the models at manageable levels.  We understand now that the 1st record will reuse the 3rd record once it has maxed out. But how about the 2nd record?  What will happen if the 2nd record has reached its max limit of 999999? 


Release :  ALL

Component : CA 2E 400 Toolkit


Large model.  Possibly reaching the max number of surrogates.


See link for paper on CA 2E Model Clean-up. 

When the 1st record in YLSTSGTNXP reaches a value greater than 9999990, the processing internally resets the value to 2000000. Then the processing tries to look for any unused surrogate numbers in all of the model files, starting from 2000000. The first unused surrogate it encounters in all the model files, is assigned as the the surrogate of the new high order model object (function etc) we are trying to create. Once all of the surrogate numbers are used/reused and the values reaches the maximum value of 9999999, and we still try to create a new high order object then we will get an error on the following lines in the joblog

Receiver value too small to hold result.

FIXEDOVERFLOW at statement 38 in YALCSGTR1I. ONCODE 310.

There is no reuse of the 3rd record for continuing the 1st record, after the 1st record reaches the maximum value of 9999999. Also, the maximum value for the 1st record is 9999999, as opposed to 9999990 which was communicated earlier.

3rd record in YLSTSGTNXP

Coming to the 3rd record, which after C22E 525 is only used for allocating the session surrogates, if it reaches the maximum value of 9999991 and when we try to enter in a new session, the value in the 3rd record gets reset to 2000000 and the values are reused from there on. There is no place in the model where this session surrogate is reused so this will not pose a problem if we reuse the values of 3rd record from 2000000 onwards again.