When CACHE means cache and not Caché

I only recently noticed the presence of a local database named CACHE alongside the more familiar CACHESYS, CACHELIB, CACHETEMP and CACHEAUDIT.

A bit of digging through the documentation archive led me to conclude that the CACHE database arrived in 2010.2, where the release notes say:

 

Note the lack of an accent on the words I have highlighted.

The above documentation is incorrect when it says "this database is mounted as read-only". In fact it is mounted RW. But the %DB_CACHE security resource that controls access to it only grants R as its public permission. In other words, every process can read code or data from it but only processes with additional privileges can write to it.

It seems that the ^%cspSession global was relocated from CACHETEMP to CACHE. In CACHETEMP it would have been writable by every process; in CACHE it is better protected.

  • 0
  • 0
  • 282
  • 1

Comments

I should also note that the data in the CACHE database is not completely ignored at startup (if it is there), as is the case for CACHETEMP. No matter what is in CACHETEMP when Caché starts up, Caché treats it as if it is empty.