The file with a prefix of RCD is an on-disk client temporary
r-code swapping file. There is no memory mapping involved in the creation of these files.
- Prior to OpenEdge 10.1C, the srt system file is used for both large sorts and keeping a cache of .r's used during an ABL session.
- In OpenEdge 10.1C a new client temporary file, rcd, was introduced to offload some of the functionality of the srt file. The srt file can grow to 2^63 bytes if permitted by the underlying operating system and disk availability. It no longer caches used r-code and is only used for sorting on the client or server side. Used r-code is cached in the rcd system file which has a 2GB filesize limit.
The AVM swaps unlocked r-code segments to the rcd file from the in-memory r-code execution buffer when space is needed for loading new r-code segments. The memory utilized by the r-code execution buffer is governed by
-mmax, which is a soft limit (unless restricted with the -hardlimit parameter).
- -mmax is increased during session execution when there are no unlocked segments of sufficient size to swap to the rcd file. Increasing the initial -mmax parameter depending on available memory and the size of the application r-code, will cause less disk i/o and reduce the size of rcd files. For further information refer to Article What is the -mmax parameter?
- The more segments swapped, the larger the rcd file will grow. For example refer to Article Temp file disk space gets all used by rcd* files When the size of rcd files is a concern, procedure libraries will reduce the .rcd file size.
- The .rcd files only expand, they do not shrink again and are removed once the session terminates which is in-line with all client-temp files. A file should not be stored more than once in the .rcd file, no matter how many instances of the program/class are running.
To identify r-code swapping from -mmax:Output from
progetstack will show the running instances, not the number of times a program is called from a .rcd file.
For information on which programs are being frequently swapped in the .rcd file,
- The output from -y and -yx can be used to identify frequently used programs that could be put into a procedure library rather
- Enable client logging with entrty types: 4GLTrace,FileID. 4GLTrace will show which procedures are run, if these trigger activity on the session's RCD* file or a .pl file that indicates segments are being swapped.