ci-server-engineer/.claude/skills/high-availability/tasks/hac-checks.md
cliu bf7d88a027 R1.05 re-check batch 3: alarms, audit, authorization, classes, HAC, reporting, pyTOOLS
Full manual diffs (L15, C20, E30, L25, J40, C10 §2, L10, P10, P11, J20,
C30, P20, R40, E10) and read-only checks on the shared R1.05 test server.
Skills and summaries moved to R1.05; new skill pytools (IM 36K10P40) from
docs (no Python on the test server). Issues ISS-132..181; corrections to
version-differences (E10, E30, P11, dss_ath_grp_u0104); C10 summary lists
the 3 new authorization actions; r105-verification V10-V17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 10:21:36 +11:00

66 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
task: Check HAC on a system (licence, processes, hac.sup, scripts, HMI properties, logs)
version: R1.05 (first written for R1.03)
source: IM 36K10J20-01EN 4th Edition (Feb. 2026) §1.3–§1.5, §2, §4.1.4, §6.1 (unchanged since the 3rd Edition); checked read-only on the R1.03 test system 2026-10-01 and the R1.05 test server 2026-10-09
status: verified read-only on R1.03 (2026-10-01) and on the R1.05 test server (2026-10-09), both single servers without HAC; the checks on a running pair (§3) are not tested (no redundant pair)
---
# HAC checks
All read-only. Only read files, variables and the process list: do not run `hac*` tools
(`hacwcmd`, `hacitmval`, `hachmfcmd`, `hacwdg -d` …) just to check, they talk to (or start)
HAC processes.
## 1. Is HAC in use?
| Check | Command / file | HAC in use when … |
|---|---|---|
| Licence | `dir %TLS_ROOT_PATH%\tls\sup\hacini.sup` | the file exists (licence files are `<tool>ini.sup`) |
| Start script | `type %TLS_ROOT_PATH%\tls\com\ci_start.cmd` | it is a copy of `hacw_standby` (title *CI Server_in stand-by mode*, starts `haclog`, `lockmgr`, `isfjrn`) |
| Server number | `echo %CI_PRIM%` | 0 primary, 1 secondary, 2, 3 |
| Processes | `tasklist /FI "IMAGENAME eq hac*"` | `hacwdg`, `hacrec`, `haclog`, `hacmir`, `hacwagt`, `hacwitm` run |
| Extension scripts (R1.05) | `dir %TLS_ROOT_PATH%\tls\com\*_hacw_*.cmd` | project scripts run on activate/deactivate (ISS-160) |
R1.03.00 test system (2026-10-01) and R1.05.00 test server (2026-10-09): no `hacini.sup`,
normal `ci_start.cmd` (title *CI Server*), `CI_PRIM` and `TLS_BACKUP_PATH` unset, no `hac*`
process, no `*_hacw_*.cmd` — HAC not used. Note: `isfjrn` is started by `database_start.cmd`
on every node, so an `isfjrn` process alone does not mean HAC is used.
## 2. Configuration
- `tls\sup\hac.sup`: read with the Setup File Editor or
`findstr /v /b "!" %TLS_ROOT_PATH%\tls\sup\hac.sup` (active lines only). Check `MODE`,
`HAC_HOSTS` (real host names, not `SERVER_A`…), `PRIMARY`/`SECONDARY` addresses, `IP_DEVICE`
(a real router/switch with priority 1; **no `localhost`** in production), `START_MANUAL`
(`NO` once commissioned), `RECOVERY_ON`, `JOURNAL_ON`, `HMF_DAYS`.
The installed file is a template (`SERVER_A`, `192.168.1.1`, `localhost`, `START_MANUAL =
YES`): if these are still present the pair was never configured. The R1.05 `hac.sup`,
`hac_ees.sup`, `haccache.sup`, `hac.tpl` and `hac_ees.tpl` are identical to R1.03 (hash
comparison, 2026-10-08), so the template values and ISS-053 still apply.
- `hac.sup` must be identical on all servers (it is excluded from the mirror on purpose).
- HAC HMI: `%TLS_WAP_PATH%\cfg\jhacProperties\application.properties` — `primary=`,
`secondary=` (addresses of every network), `port1`/`port2` (16000), `logport` (16001),
`ownport`/`ownports` (16010, 32: the HMI's own UDP ports 16010–16041). Same file content
on R1.03 and R1.05 (2026-10-09). On R1.05 `hacw_hmi` also loads `tls\exe\lib\*`: the HMI
needs a complete CI Server installation on that machine (ISS-161).
- Firewall: UDP 16000–16006 between the servers, UDP 16010–16041 for HAC HMI stations,
TCP 34489 (history merge), ICMP between the servers.
- Extension scripts (R1.05): any `<prefix>_hacw_activate.cmd` / `<prefix>_hacw_deactivate.cmd`
in `tls\com` runs on every switchover; read them, they are part of the configuration and
must be the same on all servers (ISS-160).
## 3. State and logs (running pair; not tested — no redundant pair on R1.03 or R1.05)
- HAC HMI: `hacw_hmi` (not in the start menu). Per server: responsive, operational status
(Standby / Activating / Active / Deactivating), mode (Automatic / Manual), CI Server / custom /
IP health, mirror mode and status (consistent = black text), recovery table, IP devices, log.
- Status items if configured: `<section>.OPER_MODE` (87 manual, 88 automatic), `.OPER_STAT`
(95 active, 99 standby), `.CI_STAT`/`.IP_STAT` (90 healthy, 89 fault), `.DATA1_MODE`/
`.DATA1_STAT` (mirror) — read with `itmval -g`.
- Logs: `%TLS_LST_PATH%\hac_log_<n>.txt` (cyclic; `hac_log_0.txt` names the current
page), `hacmir.log`/`hacmir_old.log` (mirror), `%TLS_LOG_PATH%\hacw_standby.log`,
`hacw_activate.log`, and `umhlog.log` (`HAC*`, `ISFJRN` messages; ISFJRN names the journal
report `<DSSSDA>_jrn.lst` after an unclean shutdown).
- Watchdog start problems: `hacwdg -d` in a console shows initialization errors (only on a
HAC server being commissioned, with the user's approval; it starts a Watchdog).