Synchronization service idle check

The idle check is a self-diagnostics function that runs every 10 seconds to check various states of the service. Its function is to trap logical locks and to ensure service-uptime. Not all of the checks are being performed every 10 seconds because some of them cost CPU-time and because the service has to be tolerant. Here is a list of checks being performed;

Task

Interval

Check for the existence of c:\cisync.debug and put the service into/out of debug mode

10 seconds

Check for the existence of c:\cisync.dump and perform a status dump into the logfile (green star)

10 seconds

If the service is in idle mode and the last database heartbeat was more than 5 minutes
ago then restart the service

10 seconds

Check to see if any of the required firewall ports have been closed and reopen them if necessary (blue star)

20 seconds

If no jobs are either waiting or running but status <> idle then change the status to idle

30 seconds

If in idle state and the last auto-update check was more than 60 seconds ago then run auto-update

10 seconds

If in idle state and the last system update check was more than 60 seconds ago then run a system update

10 seconds

If the clock is five past then log next scheduled jobs

10 seconds

(green star) Should a port in the firewall (used by ciSync) be closed for some reason while the service is running, it is logged and the port reopened.

2011-10-28 08:07:01:459 - Firewall info  : On profile: Domain, port 8037 is open but disabled
2011-10-28 08:07:01:526 - Firewall info  : On profile: Domain, port 8037 is open and now enabled

(blue star) The status dump is a block of status info written to the logfile and looks something like this;

2011-10-27 15:27:46:272 - Status dump    : -------------------------------------------------------------
2011-10-27 15:27:46:274 - Status dump    : Min idletime: 1 minute
2011-10-27 15:27:46:277 - Status dump    : APP runtime: 7 hours, 33 minutes, 40 seconds
2011-10-27 15:27:46:277 - Status dump    : APP Status: Idle
2011-10-27 15:27:46:287 - Status dump    : SQL status: Connected (running:True)
2011-10-27 15:27:46:309 - Status dump    : WCF Status: Opened (General)
2011-10-27 15:27:46:312 - Status dump    : WCF Status: Created (Transfer)
2011-10-27 15:27:46:312 - Status dump    : No Jobs are scheduled
2011-10-27 15:27:46:314 - Status dump    : Last logfile change: 27-10-2011 15:27:46 - 0 seconds ago
2011-10-27 15:27:46:314 - Status dump    : Last status change : 27-10-2011 07:54:13 - 7 hours, 33 minutes, 32 seconds ago (Idle)
2011-10-27 15:27:46:314 - Status dump    : Last autoupdate :    27-10-2011 15:26:54 - 51 seconds ago (interval=1 minute)
2011-10-27 15:27:46:317 - Status dump    : Last heartbeat :     27-10-2011 15:27:38 - 7 milliseconds ago (interval=10 seconds)
2011-10-27 15:27:46:317 - Status dump    : Firerwall status
2011-10-27 15:27:46:495 -   Public       : Port 8036 is open and enabled
2011-10-27 15:27:46:655 -   Domain       : Port 8036 is open and enabled
2011-10-27 15:27:46:811 -   Private      : Port 8036 is open and enabled
2011-10-27 15:27:46:981 -   Public       : Port 8037 is open and enabled
2011-10-27 15:27:47:140 -   Domain       : Port 8037 is open and enabled
2011-10-27 15:27:47:306 -   Private      : Port 8037 is open and enabled
2011-10-27 15:27:47:321 - Status dump    : -------------------------------------------------------------