What is the CacheJournal.dat file and what role does it have in distributing files to remote cache agents?
The CacheJournal.dat file is used by the root CacheAgent to keep the remote cache agents updated during startup.
As soon as a new file is added or updated, the file transmitter, with the help of the event transmitter, sends the file to all remote Cache Agent listeners. During this time the File Transmitter adds an entry into the CacheJournal.dat, indicating which a new MD5 (a file/set of object properties) has been added or/updated. When a remote Cache Agent requests new files from the root Cache Agents the CacheJournal.dat is used.
The remote Cache Agent requests new files as-of a certain date-time, the root Cache Agent references the CacheJournal.dat and selects all MD5's after that date-time and sends the requested files.
If no files are found in the CacheJournal.dat, irrespective of whether the file is empty or there really are no files after that time, then no files are sent.
If the remote Cache Agent does not have the file requested it asks the root Cache Agent, and the root Cache Agent provides that file from the StarTeam vault, irrespective of whether that entry exists or not in CacheJournal.dat . No entry is made in the CacheJournal.dat during such a request.
New entries in the CacheJournal.dat will be made only when a new file (or object property) is added or updated.