Galaxy Repository diagnostic generation
- Last UpdatedJul 22, 2024
- 2 minute read
Diagnostic information is continuously sent by the Galaxy Repository service to a shared memory segment that functions as a circular buffer. This shared memory segment is backed by a file on disk, and can be used to troubleshoot error conditions. The shared memory segment is designed with a small footprint to minimize any impact to the aaGR process. By default, the shared memory segment uses only 8192 bytes, allowing it to hold 4096 double-byte diagnostic data. The shared memory segment is accessible through the global ID “Global\0xdeadbeef:PS”.
The backing file to the shared memory segment is created in the ArchestrA temporary folder, although a different location can be specified as an override. Overrides to the operational constraints to diagnostic generation, including the backing file location, may be specified in the Windows Registry, under the location:
HKLM\SOFTWARE\Wow6432Node\ArchestrA\Framework\GR\Diagnostics
The diagnostic configuration registry values are as follows:
-
File [REG_SZ]: Fully qualified path to the location of the backing file
Default: The temp file is located in the ArchestrA temp folder.
-
ID [REG_SZ]: Unique global identifier to associate with the shared memory segment.
Default: Global\0xdeadbeef:PS
Note: The string ":PS" is appended automatically to the value of the user-specified ID.
-
Size [REG_DWORD]: Size of the shared memory segment in double-byte characters
Default: 4096
Note: The recommended size is 4096, but should never be set to exceed 8192.
-
Append [REG_DWORD]: If true (1), diagnostic information is appended to the backing file when the aaGR process restarts. If false (0), the backing file is recreated during a restart.
Default: true (1)
-
FlushCadence [REG_DWORD]: Determines when the contents of the shared memory segment are flushed to disk. FlushCadence accepts an unsigned long (DWORD) that represents a [wide] character count. When the number of characters written to the memory-mapped file (as measured from the last time that it was flushed to disk) equals the stipulated FlushCadence, the contents of the shared memory segment are flushed to disk. A FlushCadence value of 0 causes the flush to occur when end-of-segment is reached, and before the write wraps to the beginning of the segment.
Default: 0
Note: The default setting of 0 means that flush occurs when the end of the segment is reached, and before writing resumes at the beginning of the segment. If set to a non-default value, the dirty contents of the shared memory segment are flushed to disk when the contents of the segment crosses the FlushCadence value.