ci-server-engineer/.claude/skills/system-check/SKILL.md
2026-10-01 17:52:25 +10:00

6.5 KiB
Raw Permalink Blame History

name description version source status
system-check Read-only check of a CI Server machine, run before any CI Server work. Use when the user asks which CI Server version is installed, whether CI Server is running, where it is installed, whether time is synchronized, or before starting any task in another skill. Also covers starting CI Server (needs administrator rights). Target version R1.03. R1.03 IM 36K10J10-01EN §1.2, §1.4, §3.6, §3.7; practiced on the test system 2026-09-29/30 verified (2026-09-30)

System check

Run this read-only check before any CI Server work. It changes nothing.

1. Installed version

PowerShell:

$keys = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*','HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*')
foreach ($k in $keys) { foreach ($i in (Get-ItemProperty $k -ErrorAction SilentlyContinue)) { if ($i.DisplayName -match 'CI Server') { "{0} | {1}" -f $i.DisplayName, $i.DisplayVersion } } }

Expected for this repo: CI Server R1.03.00 (r10200M) | 1.03.00. Anything else: warn the user that the repo targets R1.03.

From the running system (preferred when CI Server is running): export the local node dataset and read VERSION_MAJOR, VERSION_MINOR, VERSION_PACK (1, 3, 0 = R1.03.00).

dssqld -e local_node.qli -d LOCAL_NODE_DF -c -l local_node.lst

Run it in a scratch folder; it only reads. The same row shows the node name, node number and licence state (NAME/NODE_NAME = UNLICENCED means no licence is registered). dssqld -f -l dict.lst dumps the full data dictionary (all datasets and fields) if you need to find another dataset.

Per-component versions (rewritten at every start): %TLS_ALLUSERS_PATH%\lst\tls_versions.lst, one line per component: <file>,<version>,<size>,<build date>. On the test system all 110 lines read R1.03.00; a different version on some lines means a patch is installed.

Message log: %TLS_LOG_PATH%\umhlog.log holds CI Server messages (--> From: <PROCESS> (<node>) on <time> then <FAC>-<I|W|E>-<CODE>, <text>). Read it after starting CI Server to spot errors (e.g. EQP-E-SLV_COM_BAD = no communication with a station). It can contain connection strings with passwords; never copy those into the repo.

2. Install paths (environment variables)

Variable Typical value Holds
TLS_ROOT_PATH / TLS_ITROOT_PATH C:\Program Files (x86)\Yokogawa\CIServer Program: tls\com (start scripts), tls\exe (tools), tls\sup (setup files)
TLS_ALLUSERS_PATH C:\Users\Public\Yokogawa\tls Data root
TLS_DAT_PATH …\tls\dat Database
TLS_HIS_PATH …\tls\his History
TLS_SAV_PATH …\tls\sav Saved data
TLS_LOG_PATH, TLS_LST_PATH …\tls\log, …\tls\lst Logs and listings
TLS_WAP_PATH …\tls\wap Web application files

tls\com and tls\exe are on PATH, so tools such as dssqld and itmval run from any prompt. Setup files (*.sup) are plain text (CRLF); edit them with the Setup File Editor.

3. Is CI Server running?

  • Windows service StartCIServer ("CI Service"), start type Manual on the test system.
  • Running processes live under …\Yokogawa\CIServer\tls\exe. None running = CI Server stopped.
  • Most tools (dssqld, itmval, …) need CI Server running.
  • Starting it needs administrator rights (the service runs as .\CIX_PROCESS, binary tls\exe\ciserv.exe). From a non-elevated shell Start-Service StartCIServer fails with "Cannot open StartCIServer service". Start it from an elevated prompt: Start-Service StartCIServer (or Services › CI Service › Start).
  • Unlicensed systems shut down about 1 hour 10 minutes after start. All CI Server processes exit, the StartCIServer service still shows Running, and every tool fails with umh_panic: <tool>, license expired. To recover, stop then start the CI Service (elevated): Stop-Service StartCIServer then Start-Service StartCIServer. Before a long task on an unlicensed system, note the start time ((Get-Process ciserv).StartTime) and restart first if the hour is nearly up. Time left is in the health snapshots: License time left : <s> in %TLS_LOG_PATH%\smd_<node>_LOW_smdsnp_general.log (3600 s after a start, −600 per 10 min); *** license problem : 3 *** once it has run out. The count pauses while the PC sleeps (observed 2026-10-01: a run started 17:25 ran out at 09:52 the next morning after a sleep); some processes (e.g. umh) stay attached, but dssqld/itmval fail and the log shows ISF-F-LIC_PROB, DATABASE Service is not licensed.
  • Stop-Service StartCIServer can fail with Cannot stop StartCIServer service although CI Server does restart (seen 2026-10-01: the error was shown, the service stayed Running, and all processes had new PIDs and a new STARTUP_TIME in LOCAL_NODE_DF within a minute). Check STARTUP_TIME before retrying.
  • Close the Edit Module (and Engineering Module) before stopping CI Server. A local Edit Module is attached to the BUS Service (JWUIGED<pid>, a java.exe in the user's session) and does not stop with the service. The next start then aborts at once; %TLS_LOG_PATH%\ci_start.log shows CI Server is already running / umh_panic: durwfp, CI Server has not been properly stopped, kill the following processes … with the list (seen 2026-10-01: JWUIGED12760 kept UMH, DURTIM, UMHLOG … listed). Fix: close the Edit Module (or end that java.exe), then start again. Avoid durstp -k -p * unless the user approves. The Operator Interface (desktop) and the HTML display connect through the web server and were not in the list.

4. Time synchronization

w32tm /query /status and w32tm /query /configuration (Windows Time must be running). Check the source matches the design (domain controller, NTP server or NOSYNC on Vnet/IP).

Test system results (2026-09-29)

  • Version R1.03.00 (r10200M). Matches the repo.
  • Environment variables and folders as in the table; all tools and setup files named in IM 36K10J10 are present except tmtime (a Vnet/IP station tool, not expected here).
  • CI Service stopped on 2026-09-29; started 2026-09-30 from an elevated session. About 100 processes then run (e.g. ciserv, dssman, itm, alm, his, rptgen, opcexe, durm_udp, eqpmdc, eqpmqtt, wfl*).
  • LOCAL_NODE_DF: version 1.3.0 (R1.03.00), node 1, UNLICENCED, router type Endpoint.
  • Windows Time running, source time.windows.com; synchronized on 2026-09-30 (stratum 5).