In versions
prior to OpenEdge 10.1B, negative values are then returned due to the construction of Progress (32-Bit) and the data types for many Progress data structures which are therefore limited to the maximum number sizes for 32-bit architectures being 4 billion (unsigned). Since OpenEdge uses a signed integer for these integer values, it will be 2 billion positive and 2 billion negative. Therefore as the values increase to the maximum positive of 2 billion (2^31) the values roll-over and begin decreasing from the maximum negative values. The VST
_ActBILog._BiLog-BytesWrtn for example, cycles through positive and negative values after every 2 billion.
In
OpenEdge 10.1A, to combat this signed integer overflow for customers inconvenienced by having to restart the database simply to clear shared memory counters, an undocumented feature was introduced:
zerostats can be called with either PROUTIL or DBUTIL online [
OE00121165 / PSC00166992]
$ proutil dbname -C zerostats
$ dbutil dbname -C zerostats
After running
zerostats all shared memory (PROMON and VST) counters will be will zero'd out online. Use-Cases:
- When a database has been left running for extended periods that counters overflow to negative numbers. OpenEdge 10.1B introduced 64-bit counters, where many of these integers were subsequently changed to 64-bit (ULONG) and no longer overflow at 2-billion, which negates the need to use the zerostats utility in most cases.
- At any other time a new VST or PROMON baseline is needed when benchmarking metrics.
The
zerostats functionality was further enhanced since
OpenEdge 10.1B01 and 10.1C, to include clearing
_tablestat, _indexstat, _usertablestat and
_userindexstat statistics [OE00134976 / PSC00180699].
Consequences of using zerostats:
- OpenEdge Management also uses the statistics provided by the VSTs. OEM and the VSTs assume that the statistics are sampled from database startup, therefore resetting this baseline online will lead to distorted statistics being reported by OEM or application code that relies on VST reported values.
- Since zerostats will affect the values calculated and displayed by PROMON and VSTs, Administrators must therefore be aware when this command has been run. One way to do so is to inspect the related database .lg file for the following message:
Usr 5 set name to Zero Vst Statistics. (7129)
Since 11.6, 12 the VST: _DbStatus-ZeroStatsDate records the Date/time of the last PROUTIL ZEROSTATS operation