THE INFORMATION IN THIS ARTICLE APPLIES TO:
- EFT Server v6.3 and later
DISCUSSION
The following registry settings control the behavior of the queue used to write to the ARM database. If the queue backs up, it will make threads wait until space is available. If you have enabled DEBUG logging for ARM (see "Logging" below), when you start EFT Server, it will log messages indicating that these registry settings are enabled.
32-bit:
HKEY_LOCAL_MACHINE\SOFTWARE\GlobalSCAPE Inc.\EFT Server 4.0\64-bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GlobalSCAPE Inc.\EFT Server 4.0\ARMQueueSize
- The maximum size of the ARM auditing queue. You should first enable DEBUG logging and set the “ARMLogMinStalledThreads” registry setting (below) to 1, then review the EFT.log file and see if it is logging WARN messages about stalled threads. This would be evidence that the queue is falling behind.
- Type: REG_DWORD
- Default when not specified: 10 (1000 in v7 and later)
- Minimum allowed when specified: 10 (1000 in v7 and later)
ARMLogStalledThreadMinDuration
- Type: REG_DWORD
- Default when not specified: 1000 (1 second)
- Minimum allowed when specified: 1000 (1 second)
- The duration to use to determine if a thread should be considered “stalled.” Meaning if this is set to 1000 then any thread that waits longer than 1 second is classified as stalled. This is used just for logging purposes.
ARMLogMinStalledThreads
- Type: REG_DWORD
- Default when not specified: 0
- The number of stalled threads that must be present before logging. If it is set to 1 or higher, information about stalled threads is logged to EFT.log under the ARM logger. Set this to 1 temporarily to see if anything shows up in the log. Be aware that in extreme situations this could, in theory, make it log a ton of WARN messages. If so then a higher value should be used to lessen the verbosity.
Logging
In the logging.cfg file (e.g., C:\ProgramData\Globalscape\EFT Server Enterprise\logging.cfg), enable DEBUG logging for the "ARM" log to output statistical information concerning the size of the queue and whether threads are stalling.
Log Messages
The following log message are created when the queue is filling up and at server startup:
- A WARN level message to the "ARM.Queue" log when the queue is filling up and threads are backing up waiting to audit. You have to set "ARMLogMinStalledThreads" to 1 or greater to enable this.
For example:
05-16-12 10:57:52,258 [1316] WARN ARM.Queue <> - The ARM queue had 8 threads waiting over 1001 seconds over the last 301 milliseconds
- A DEBUG level message to the"ARM.Queue" log with statistics for the queue. Output every 5 minutes.
For example:
05-16-12 10:57:52,258 [1316] DEBUG ARM.Queue <> - Queue stats over the last 301 seconds:
10094 items enqueued
11 is the largest recorded queue size
8 threads waited over 1001 milliseconds
average queue size 4.53
- (Logged at Server start) A DEBUG level message to "ARM.Queue" log displaying the queue size if the "ARMQueueSize" registry key is specified and value is > 10.
For example:
05-16-12 10:47:51,320 [1560] DEBUG ARM.Queue <> - Queue size set to 11
- (Logged at Server start) A DEBUG level message to "ARM.Queue" log displaying the queue size if the "ARMLogStalledThreadMinDuration" registry key is specified an value > 1000:
For example:
05-16-12 10:47:51,320 [1560] DEBUG ARM.Queue <> - Stalled thread minimum duration set to 1001
- (Logged at Server start) A DEBUG level message to "ARM.Queue" log displaying the queue size if the "ARMLogMinStalledThreads" registry key is specified and value > 0
For example:
05-16-12 10:47:51,320 [1560] DEBUG ARM.Queue <> - Minimum number of stalled threads to log set to 1ARMLogMinStalledThreads > 0 output