The ESF Manager caches results from ESMs to reduce the number of actual queries to the ESMs, which are typically very slow (orders of magnitude slower than returning cached results, in some cases). This file implements the cache.
There are actually two specific caches implemented here: one for the results of VERIFY calls, and the other for the results of AUTH calls. For performance reasons, a substantial part of the caching code is specific to these caches, rather than providing a general-purpose caching mechanism.
When running in the CAS environment, the cache exists in one or more blocks of named shared memory and is accessed by one or more single- threaded processes. Serialization is done using the CAS enq/deq locking mechanism, via cover routines in the ESF Environments module (saf-env.c).
When running in the MFDS environment, the cache is held in process private memory, but is accessed by multiple threads. Serialization is done with OS or COBOL RTS mutexes, again via cover routines in the Environment module.
Definition in file saf-cache.c.
Go to the source code of this file.
Functions | |
mf_uns32 | SafCacheInit (void) |
ESF Cache Initialization. |
mf_uns32 SafCacheInit | ( | void | ) |
ESF Cache Initialization.
This function is invoked by the ESF Manager Initialization routine to initialize the cache facility.
Definition at line 119 of file saf-cache.c.
References SafINIT_OK.