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.

Scenario 4:
A memory overwrite, from somewhere else, could write over nTotalMemoryUsed , and change it to a small negative number.

The function JDECM_GetMemoryStats() can be called to get nTotalMemoryUsed size.

CMTRACE can be turned on, to track if there was a negative data size or negative total memory.  The functions jdeCacheAdd() or JDECM_CacheAdd() will call JCACH_CacheAddInt(), which will display "JDECM_SUCCESS: Add rec size:%d Total mem:%d Total recs:%d", where "rec size" is the nDataSize being added and the "Total mem" is the nTotalMemoryUsed.

For this type of message, contact Oracle Global Support for further assistance. 

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.



arrow
arrow
    全站熱搜
    創作者介紹
    創作者 史特林 的頭像
    史特林

    史特林研究室

    史特林 發表在 痞客邦 留言(0) 人氣()