113 lines
6.5 KiB
Markdown
113 lines
6.5 KiB
Markdown
---
|
||
name: system-check
|
||
description: >-
|
||
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.
|
||
version: R1.03
|
||
source: IM 36K10J10-01EN §1.2, §1.4, §3.6, §3.7; practiced on the test system 2026-09-29/30
|
||
status: verified (2026-09-30)
|
||
---
|
||
|
||
# System check
|
||
|
||
Run this read-only check before any CI Server work. It changes nothing.
|
||
|
||
## 1. Installed version
|
||
|
||
PowerShell:
|
||
|
||
```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).
|