The Enterprise/Logic server JDE.LOG log is full of thousands of lines the same message:
JDB9900999999 - System cache is full
What does this message mean and how can it be eliminated?
The error with "System cache is full" does not mean that it is from the JDE kernel or "system" code. The error can come from any jdeCache usage, from Apps, BSFNs, and Tools code. Any call to jdeCacheAdd() or JDECM_CacheAdd(), could result in a code path to the error. The following are some issues that can cause this message in the log. Note: Some of the causes listed below do not have a direct solution.
Scenario 1:
The error could happen if the nTotalMemoryUsed starts at size zero, and the very first usage comes in with a negative nDataSize. However, there is a test for nDataSize <= 0, which should log a different error.
Scenario 2:
The error could happen if the actual cache memory usage became larger than 2147483647, at which point the nTotalMemoryUsed would become a negative number. However, it would likely be a large negative number, and would not trigger the error until it was increased enough to be larger than -1000. The error could be created by having nDataSize of (2147483647 minus {1, or 2, or 3, ... through 499}). Adding the second record should trigger the error.
Scenario 3:
It can be caused if the previous cache memory was deleted (such as RBTREE_Delete()), and the nNodeDataSize was too large, or the function was called too many times, resulting in a negative nTotalMemoryUsed. This might happen if the nDataSize was not consistent, and data was added using different sizes, and that resulted in incorrect sizes being subtracted as records were dropped.