sqlinsight-pro/src/SQLInsight.Agent
Søren Eggert Lundsteen Olsen 66ed4e11b3 Review 1.4: AX 3.0/4.0 local times in the AX time zone, with its DST rules
Axapta 3.0 and AX 4.0 store batch and cleanup times as a local date plus
seconds. They were turned into UTC with the SQL Server's offset at collection
time, so every time from the other side of a DST change was an hour off (a job
planned 01:50 CET on the spring night looked 70 minutes late at 03:00 CEST),
and a SQL Server running UTC behind a CET AOS shifted every time.

AxLocalTime converts with the rules of the AX time zone on that date:
SQLInsight:DynamicsAx:LocalTimeZone (Windows or IANA id), else the agent's own
zone when its offset matches the SQL Server's, else the server's offset (to the
nearest quarter hour) with a Danish data note. The skipped spring hour and the
repeated autumn hour get standard time (deterministic, never throws, never a
false "late"); seconds outside 0..86400 are unknown and 86400 is midnight. The
AX 3.0 cleanup time is local by version, also when LATESTCLEANTIME is missing.
AX 2009+ UTC times are untouched. Also: remaining numbers cannot overflow for
HIGHEST = Int64.MaxValue, and run keys use the invariant culture.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 14:19:17 +02:00
..
Configuration Review 1.3: a request that fails in an unexpected way is completed as failed, not left Running 2026-10-02 13:22:43 +02:00
CustomRules Installer creates the repository database, logins and rights itself 2026-10-01 08:18:26 +02:00
Hub Repository and agent: Dynamics AX history (migration 0017), seeding, hub opt-in 2026-10-02 13:53:34 +02:00
Monitoring Repository and agent: Dynamics AX history (migration 0017), seeding, hub opt-in 2026-10-02 13:53:34 +02:00
Properties Fase 0: solution structure, capability model, rule engine, least-privilege script 2026-09-29 05:40:49 +00:00
Reports Fase 4: management and compliance reports as PDF 2026-09-29 10:09:10 +00:00
Security Privilege audit: sysadmin and server roles with AD unfolding 2026-10-02 08:39:56 +02:00
Setup Review 1.3: one implementation of a service account's SQL login 2026-10-02 13:22:41 +02:00
Updates MSI installer for Agent and Web 2026-09-29 11:31:28 +00:00
AgentOptions.cs Review 1.4: AX 3.0/4.0 local times in the AX time zone, with its DST rules 2026-10-02 14:19:17 +02:00
appsettings.Development.json Fase 0: solution structure, capability model, rule engine, least-privilege script 2026-09-29 05:40:49 +00:00
appsettings.json Review 1.4: AX 3.0/4.0 local times in the AX time zone, with its DST rules 2026-10-02 14:19:17 +02:00
InstallerSettings.cs MSI installer for Agent and Web 2026-09-29 11:31:28 +00:00
Program.cs Agent: instances from the repository, request queue, sealed passwords, AX hub opt-in 2026-10-02 13:22:41 +02:00
SQLInsight.Agent.csproj Agent: instances from the repository, request queue, sealed passwords, AX hub opt-in 2026-10-02 13:22:41 +02:00