Phase 0-1: system management skills and CI-Eng-Sample project #2
30 changed files with 699 additions and 55 deletions
|
|
@ -71,6 +71,12 @@ prompt. Setup files (`*.sup`) are plain text (CRLF); edit them with the Setup Fi
|
||||||
`tls\exe\ciserv.exe`). From a non-elevated shell `Start-Service StartCIServer` fails with
|
`tls\exe\ciserv.exe`). From a non-elevated shell `Start-Service StartCIServer` fails with
|
||||||
"Cannot open StartCIServer service". Start it from an elevated prompt:
|
"Cannot open StartCIServer service". Start it from an elevated prompt:
|
||||||
`Start-Service StartCIServer` (or Services › CI Service › Start).
|
`Start-Service StartCIServer` (or Services › CI Service › Start).
|
||||||
|
- **Unlicensed systems shut down after about 1 hour.** 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.
|
||||||
|
|
||||||
## 4. Time synchronization
|
## 4. Time synchronization
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
name: system-management
|
name: system-management
|
||||||
description: >-
|
description: >-
|
||||||
CI Server R1.03 system management and command-line tools. Use when the user wants
|
CI Server R1.03 system management and command-line tools. Use when the user wants
|
||||||
to stop CI Server, export or
|
to stop CI Server, export dataset contents, load or remove records with quick load files
|
||||||
import dataset contents (dssqld), read or write item values (itmval), load or import history,
|
(dssqld, .qli), create sections or items in bulk, read or write item values or limits (itmval), load or import history,
|
||||||
check database consistency (dsschk), monitor processes/CPU/disk/network, back up or migrate
|
check database consistency (dsschk), monitor processes/CPU/disk/network, back up or migrate
|
||||||
a system, tune or debug CI Server, or plan a system layout (standalone, separate portal, HAC,
|
a system, tune or debug CI Server, or plan a system layout (standalone, separate portal, HAC,
|
||||||
host-to-host, enterprise) or time synchronization. Source IM 36K10J10-01EN.
|
host-to-host, enterprise) or time synchronization. Source IM 36K10J10-01EN.
|
||||||
|
|
@ -24,4 +24,10 @@ Rules for every task:
|
||||||
|
|
||||||
| Task | File | Status |
|
| Task | File | Status |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Export dataset contents / dump the data dictionary | `tasks/export-dataset.md` | verified |
|
| Export dataset contents (whole or filtered) / dump the data dictionary | `tasks/export-dataset.md` | verified |
|
||||||
|
| Load or remove records with quick load files (`.qli`), e.g. sections and items | `tasks/load-remove-records.md` | verified |
|
||||||
|
| Read / write item values and read limits | `tasks/read-write-item.md` | verified |
|
||||||
|
| Load history from CSV (`ithloahis`) and read history back | `tasks/load-history.md` | verified |
|
||||||
|
| Monitor CPU, disk, network, processes; run a command on an item change | `tasks/monitoring-processes.md` | verified |
|
||||||
|
| Database consistency check (`dsschk`) | `tasks/consistency-check.md` | verified (check only) |
|
||||||
|
| Tuning checks: limits and health snapshots | `tasks/tuning-checks.md` | verified (read-only) |
|
||||||
|
|
|
||||||
39
.claude/skills/system-management/tasks/consistency-check.md
Normal file
39
.claude/skills/system-management/tasks/consistency-check.md
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
task: Database consistency check (dsschk)
|
||||||
|
version: R1.03
|
||||||
|
source: IM 36K10J10-01EN §4.1.1; practiced on the test system 2026-09-30
|
||||||
|
status: verified (check only)
|
||||||
|
---
|
||||||
|
|
||||||
|
# Database consistency check (dsschk)
|
||||||
|
|
||||||
|
Needs CI Server running. Checking is read-only; **repair (`-r`) changes the database**:
|
||||||
|
back up first and ask the user.
|
||||||
|
|
||||||
|
## Check
|
||||||
|
|
||||||
|
```
|
||||||
|
dsschk -e -v > dsschk.out
|
||||||
|
```
|
||||||
|
|
||||||
|
- `-e` extended check: also compares the duplicated datasets on this node (e.g. item
|
||||||
|
definitions copied by ITEM and EQUIPMENT Services). This is the useful check on a
|
||||||
|
**single-node** system.
|
||||||
|
- `-v` verbose. Output lists `DSSP-I-CDS_START` / `DSSP-I-CDS_END` per dataset (228 on the
|
||||||
|
test system) and any problems; the same messages go to `%TLS_LOG_PATH%\umhlog.log`.
|
||||||
|
- `-d <dataset>` checks one dataset; `-n <node>` one node.
|
||||||
|
- Plain `dsschk` (no `-e`) only compares copies **between nodes**, so on a single node it
|
||||||
|
prints nothing.
|
||||||
|
|
||||||
|
Look for warnings or errors: search the output for `-W-`, `-E-` or `-F-`. None = consistent.
|
||||||
|
|
||||||
|
## Repair (not yet practiced)
|
||||||
|
|
||||||
|
From IM 36K10J10 §4.1.1: run `dsschk -r` until no more inconsistencies are reported (or the
|
||||||
|
same ones repeat), then `dsschk -e`, then `dsschk -e -r` (possibly twice). Read the output
|
||||||
|
carefully; some problems need manual work.
|
||||||
|
|
||||||
|
## ISAM files (not yet practiced)
|
||||||
|
|
||||||
|
`ismchk <database file>` checks one ISAM file; `ismkfr [-c] [-r] [-s] [-d] <file>` rebuilds
|
||||||
|
key files. Both need the file name (without it: `usage: ismchk data_base_name`).
|
||||||
|
|
@ -47,6 +47,24 @@ description). Search it to find which dataset holds what, e.g. the version field
|
||||||
|
|
||||||
## Filtered exports
|
## Filtered exports
|
||||||
|
|
||||||
`dssqld -e <output> <filter>.qli` exports using a filter file with `@<DATASET>`, `@FIELD`
|
Export only matching records with a filter file (IM 36K10L50 §3.6, verified 2026-09-30):
|
||||||
and `@SELECT` keywords (IM 36K10J10 §5.6). The exact filter syntax is **not yet verified**;
|
|
||||||
export the whole dataset and filter the CSV instead until it is.
|
```
|
||||||
|
@SELECT
|
||||||
|
'GROUP_NAME = "CIENG_EVENT"'
|
||||||
|
@HIS_GROUP_DF
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
dssqld -e <output>.qli <filter>.qli [-c] -l <listing>.lst
|
||||||
|
```
|
||||||
|
|
||||||
|
- `@SELECT`, then the filter in **single quotes** with strings in double quotes, then
|
||||||
|
`@<DATASET>`. The filter applies only to the next dataset. Operators: `=`, `!=`, `<`, `>`,
|
||||||
|
`and`.
|
||||||
|
- Some datasets (e.g. `ITEM_HISTORY`, `ITEM_VAL`, `ALARM_CHRONO`) are not exported unless
|
||||||
|
named explicitly (`NO-EXPORT` list in `dssqld.sup`).
|
||||||
|
- `ITEM_HISTORY` returns nothing unless the filter names `ITEM_NAME` and a `SAMPLE_TIME` range
|
||||||
|
(see `load-history.md`).
|
||||||
|
- `%TLS_DAT_PATH%\dss_export.qli` is Yokogawa's own filter file for exporting all engineering
|
||||||
|
definitions (`dssqld -e out.qli dss_export.qli`); it also shows `@MACRO` usage.
|
||||||
|
|
|
||||||
77
.claude/skills/system-management/tasks/load-history.md
Normal file
77
.claude/skills/system-management/tasks/load-history.md
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
---
|
||||||
|
task: Load item history from CSV (ithloahis) and read history back (dssqld)
|
||||||
|
version: R1.03
|
||||||
|
source: IM 36K10J10-01EN §2.9.2; IM 36K10L50-01EN §3.6; practiced with CI-Eng-Sample 2026-09-30
|
||||||
|
status: verified
|
||||||
|
---
|
||||||
|
|
||||||
|
# Load item history (ithloahis) and read it back
|
||||||
|
|
||||||
|
**Writes to the history database.** Needs CI Server running and the items linked to an
|
||||||
|
item storage group of type *Event/Item* or *Event/Event*. The sample project provides
|
||||||
|
`CIENG_EVENT` with `CI-Eng-Sample.TANK1.LEVEL` and `.INFLOW`.
|
||||||
|
|
||||||
|
## Before loading
|
||||||
|
|
||||||
|
- A **new** storage group stores nothing until CI Server has been restarted (stop, then start
|
||||||
|
the CI Service). Restart after creating a group.
|
||||||
|
- Only samples dated **after the start of the current storage unit** were stored; older ones
|
||||||
|
were silently skipped (see `knowledge/issues.md` ISS-006). A restart starts a new unit.
|
||||||
|
|
||||||
|
## Input files
|
||||||
|
|
||||||
|
Event file: one sample per line.
|
||||||
|
|
||||||
|
```
|
||||||
|
EVENT
|
||||||
|
<time>,<item>,<value>
|
||||||
|
1790739700,CI-Eng-Sample.TANK1.LEVEL,47
|
||||||
|
```
|
||||||
|
|
||||||
|
Scan file: several items per line (max 100), one line per timestamp.
|
||||||
|
|
||||||
|
```
|
||||||
|
SCAN,CI-Eng-Sample.TANK1.LEVEL,CI-Eng-Sample.TANK1.INFLOW
|
||||||
|
1790739715,61,101
|
||||||
|
1790739720,62,102
|
||||||
|
```
|
||||||
|
|
||||||
|
Time is seconds since 1970 (UTC), optionally with a fraction, or a date text such as
|
||||||
|
`29-Apr-14 11:48:17.452`. Quotes and spaces around fields are optional. A blank value in a
|
||||||
|
scan line is skipped.
|
||||||
|
|
||||||
|
## Load
|
||||||
|
|
||||||
|
```
|
||||||
|
ithloahis -f <file>.csv -v
|
||||||
|
```
|
||||||
|
|
||||||
|
- `-v` shows progress (`Handle event based table`, `item … on column n`).
|
||||||
|
- `-t GMT|LST|LCT` sets how text times are read (default GMT).
|
||||||
|
- `-s <section>` puts a section in front of every item name.
|
||||||
|
- `-i` also updates the item's current value (can raise alarms and trigger objects; loads the
|
||||||
|
system). Without it, only history is written.
|
||||||
|
|
||||||
|
## Read history back
|
||||||
|
|
||||||
|
`ITEM_HISTORY` is not exported by default; use a filter file that names the item **and** a
|
||||||
|
time range, otherwise nothing is returned:
|
||||||
|
|
||||||
|
```
|
||||||
|
@SELECT
|
||||||
|
'ITEM_NAME = "CI-Eng-Sample.TANK1.LEVEL" and SAMPLE_TIME > "30-09-2026 00:00:00" and SAMPLE_TIME < "01-10-2026 00:00:00"'
|
||||||
|
@ITEM_HISTORY
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
dssqld -e history.qli <filter>.qli -c -l history.qlo
|
||||||
|
```
|
||||||
|
|
||||||
|
Result columns include `NAME` (`<group>:<item>/<time>/Value`), `SAMPLE_TIME`, `ITEM_VALUE`,
|
||||||
|
`QUALITY`. Values written live (e.g. with `itmval -p`) and the value at CI Server start also
|
||||||
|
appear.
|
||||||
|
|
||||||
|
## Verified (CI-Eng-Sample, 2026-09-30)
|
||||||
|
|
||||||
|
SCAN load of LEVEL 61–63 / INFLOW 101–103 and EVENT load of LEVEL 47, 48 were all read back
|
||||||
|
with the filter above.
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
---
|
||||||
|
task: Load and remove dataset records with dssqld (quick load)
|
||||||
|
version: R1.03
|
||||||
|
source: IM 36K10J10-01EN §2.9.2, §5.6; IM 36K10L45-01EN §9.10–9.11; practiced with CI-Eng-Sample 2026-09-30
|
||||||
|
status: verified
|
||||||
|
---
|
||||||
|
|
||||||
|
# Load and remove dataset records (dssqld quick load)
|
||||||
|
|
||||||
|
**Writes to the CI Server database.** Needs CI Server running. Follow the user's chosen way
|
||||||
|
of working: in *prepare only* mode, write the `.qli` files and a `.cmd` script for the user to
|
||||||
|
run. Test on a test system first.
|
||||||
|
|
||||||
|
## Quick load file format (.qli)
|
||||||
|
|
||||||
|
```
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! comment
|
||||||
|
@FIELDS
|
||||||
|
NAME,SECTION_PATH,SECTION_NAME,DESCRIPTION
|
||||||
|
|
||||||
|
@SECTION_DF
|
||||||
|
"CI-Eng-Sample","","CI-Eng-Sample","CI-Eng-Sample project"
|
||||||
|
"CI-Eng-Sample.TANK1","CI-Eng-Sample","TANK1","Sample tank 1"
|
||||||
|
```
|
||||||
|
|
||||||
|
- `@FIELDS` lists the fields in the records that follow; the next `@<DATASET>` line names
|
||||||
|
the dataset. A file can hold several `@FIELDS` / `@<DATASET>` blocks.
|
||||||
|
- One record per line, strings in double quotes, numbers bare, comma-separated. End a line
|
||||||
|
with `\` to continue the record on the next line (long `@FIELDS` lists can also wrap).
|
||||||
|
- Only the listed fields are set; the rest take their defaults. Required fields are marked
|
||||||
|
"Is required on import" in the data dictionary (`dssqld -f -l dict.lst`).
|
||||||
|
- Easiest way to get a correct template: export an existing dataset **without** `-c`
|
||||||
|
(`dssqld -e template.qli -d <DATASET>`); the output is already in this format.
|
||||||
|
|
||||||
|
## Load (insert)
|
||||||
|
|
||||||
|
```
|
||||||
|
dssqld -i <file>.qli -l <file>.qlo
|
||||||
|
```
|
||||||
|
|
||||||
|
Summary per dataset: `Recognized`, `Imported`, `Exists` (already present, left unchanged),
|
||||||
|
`Errors`. Check `Errors` is 0; the `.qlo` listing holds the same result.
|
||||||
|
|
||||||
|
## Update (modify)
|
||||||
|
|
||||||
|
```
|
||||||
|
dssqld -m <file>.qli -l <file>.qlo
|
||||||
|
```
|
||||||
|
|
||||||
|
Changes the listed fields of existing records (the key field plus the fields to change).
|
||||||
|
Summary: `Modified`, `Not found`, `Errors`. Verified by setting a storage group's `STOP_TIME`.
|
||||||
|
|
||||||
|
## Remove (delete)
|
||||||
|
|
||||||
|
```
|
||||||
|
dssqld -r <file>.qli -l <file>.qlo
|
||||||
|
```
|
||||||
|
|
||||||
|
The file only needs the key field (`@FIELDS` `NAME`). Summary: `Removed`, `Not found`, `Errors`.
|
||||||
|
|
||||||
|
**Storage groups** (`HIS_GROUP_DF`) cannot be deleted while they have an active storage unit
|
||||||
|
(`HIS-E-GROUPHASUNT, Group still has an active unit connected`). First remove the items from the
|
||||||
|
group (`ITEM_HIS_DF`), then set the group's `STOP_TIME` a minute ahead with `-m`, wait until it
|
||||||
|
has passed, then delete the group. Deleting a group deletes its history.
|
||||||
|
|
||||||
|
## Order matters
|
||||||
|
|
||||||
|
- Load parents before children: sections (parent before child) → template items → classes
|
||||||
|
(compiled) → objects → other items (IM 36K10J10 §5.6) → storage groups → items in storage
|
||||||
|
groups (`ITEM_HIS_DF`, record name `<group>:<item>`).
|
||||||
|
- Remove in reverse: items from storage groups, storage groups (stop first), items, sections
|
||||||
|
(children before parents).
|
||||||
|
- A **new storage group stores nothing until CI Server is restarted**.
|
||||||
|
- Linking items to a group straight after creating it failed once with 2 errors; a 5 s pause in
|
||||||
|
between has been reliable (`knowledge/issues.md` ISS-005).
|
||||||
|
- Put each step in a `.cmd` script so the order is repeatable. Run scripts by full path
|
||||||
|
(`cmd /c "<path>\load.cmd"`); a bare name may not be found from the current folder.
|
||||||
|
|
||||||
|
## Verified example
|
||||||
|
|
||||||
|
`examples/CI-Eng-Sample/` (`01_section_df.qli`, `02_item_df.qli`, `load.cmd`, `remove.cmd`):
|
||||||
|
sections, items, a storage group and its item links loaded, removed and loaded again with
|
||||||
|
0 errors. `remove.cmd` shows how to set the storage group stop time from a script (PowerShell
|
||||||
|
writes the `.qli`, then `Start-Sleep`; `timeout` fails when there is no console). Items need only
|
||||||
|
`NAME` and `ITEM_REP` (`Real`, `Integer`, `Boolean`, `String`); the sample also sets
|
||||||
|
`DESCRIPTION`, `VALUE_FORMAT`, limits and scale.
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
task: Monitoring processes (intcpumon, intdskmon, inttcpmon, intmon, intspawn)
|
||||||
|
version: R1.03
|
||||||
|
source: IM 36K10J10-01EN §4.1.6; practiced with CI-Eng-Sample 2026-09-30
|
||||||
|
status: verified
|
||||||
|
---
|
||||||
|
|
||||||
|
# Monitoring processes
|
||||||
|
|
||||||
|
INTEGRATION Service processes that write system health into items, or run a command when an
|
||||||
|
item changes. Each is configured in its own setup file in `%TLS_ROOT_PATH%\tls\sup\`.
|
||||||
|
|
||||||
|
**Changes the system's setup files.** Back each file up first. Follow the user's chosen way
|
||||||
|
of working; in *prepare only* mode, write the lines for the user to add.
|
||||||
|
|
||||||
|
## Setup file format
|
||||||
|
|
||||||
|
Setup files are plain text (CRLF). Lines starting with `!` are comments and editor
|
||||||
|
definitions (`!KEYWORD : …` shows each allowed keyword and its arguments). Active settings are
|
||||||
|
plain `keyword = value` lines, usually added at the end. The Setup File Editor edits the same
|
||||||
|
files.
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
|
||||||
|
| Process | Setup lines | Item value |
|
||||||
|
|---|---|---|
|
||||||
|
| `intcpumon` | `interval = 10`, `logging`, `CPU = "", "<item>", ""` | CPU load %. Empty system name = this machine; empty counter = total CPU |
|
||||||
|
| `intdskmon` | `interval = 10`, `logging`, `DISK = "C:\\", "<item>"` | **Used** % of the disk (61.9 on a disk 61.9 % used), despite the manual saying free space |
|
||||||
|
| `inttcpmon` | `logging`, `TCP = "<host>", "<item>"` | 1 while the host answers a ping |
|
||||||
|
| `intmon` | `process = "<process>", "<item>"` | 1 while the CI Server process runs (e.g. `alm`) |
|
||||||
|
| `intspawn` | `TRIGGER = "<command>", "<item>", VALUE, NONE, 0` | Runs the command with the new value as argument |
|
||||||
|
|
||||||
|
`intspawn` trigger modes: `VALUE`, `STATUS`, `OPTION`, `TIMER` (value = interval in s),
|
||||||
|
`NODE_DOWN`, `NODE_UP`, `NODE`; filters `NONE`, `EQUAL`, `GREATER`, `LESS` with the value.
|
||||||
|
**Keep the command path short**: a ~130-character path silently did nothing
|
||||||
|
(`knowledge/issues.md` ISS-007). `intmon` also supports `node = <n>, "<item>"`,
|
||||||
|
`channel = <line>, <node>, "<item>"` and `offline` (for multi-node systems, not tested).
|
||||||
|
|
||||||
|
Tested lines for the sample project: `examples/CI-Eng-Sample/monitoring/*.sup.txt`
|
||||||
|
(items `CI-Eng-Sample.SYSTEM.*`).
|
||||||
|
|
||||||
|
## Start and stop
|
||||||
|
|
||||||
|
These processes do not start by default.
|
||||||
|
|
||||||
|
- For a test, start by hand (elevated): `Start-Process "$env:TLS_ROOT_PATH\tls\exe\<process>.exe" -ArgumentList "-n <process>" -WindowStyle Hidden`.
|
||||||
|
Stop with `Stop-Process -Name <process>`. They also stop when CI Server stops.
|
||||||
|
- To start them with CI Server, add them to `%TLS_ROOT_PATH%\tls\com\integration_start.cmd`
|
||||||
|
(for `intmon`, uncomment its `start /b /normal …\intmon.exe -n intmon` line; for the others
|
||||||
|
add `start /B /NORMAL %TLS_ROOT_PATH%\tls\exe\<process> -n <process>` followed by
|
||||||
|
`start /B /NORMAL /WAIT %TLS_ROOT_PATH%\tls\exe\durwfp -p <process> -t 10`). Not yet tested.
|
||||||
|
|
||||||
|
## Check
|
||||||
|
|
||||||
|
Read the target items with `itmval -g -n <item>` (status 9 once updated). With `logging`, the
|
||||||
|
processes also write to `%TLS_LOG_PATH%\umhlog.log`.
|
||||||
|
|
||||||
|
## Verified (CI-Eng-Sample, 2026-09-30)
|
||||||
|
|
||||||
|
CPU_LOAD 33.4, DISK_C 61.9, PING_LOCALHOST 1, PROC_ALM 1; `intspawn` wrote 0 and 1 to a file
|
||||||
|
when `PUMP1.MODE` changed. Setup files restored afterwards.
|
||||||
68
.claude/skills/system-management/tasks/read-write-item.md
Normal file
68
.claude/skills/system-management/tasks/read-write-item.md
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
---
|
||||||
|
task: Read and write item values with itmval
|
||||||
|
version: R1.03
|
||||||
|
source: IM 36K10J10-01EN §2.9.2; practiced on the test system and CI-Eng-Sample 2026-09-30
|
||||||
|
status: verified
|
||||||
|
---
|
||||||
|
|
||||||
|
# Read and write item values (itmval)
|
||||||
|
|
||||||
|
Needs CI Server running. Reading is read-only. **Writing changes live data**: follow the
|
||||||
|
user's chosen way of working (direct vs prepare only) and never write to an item that drives
|
||||||
|
real equipment without explicit approval.
|
||||||
|
|
||||||
|
Item names are full paths: `<Section>.<Sub-section>.<Tag>`, e.g.
|
||||||
|
`CI-Eng-Sample.TANK1.INFLOW` from the sample project.
|
||||||
|
|
||||||
|
## Read the current value
|
||||||
|
|
||||||
|
```
|
||||||
|
itmval -g -n <Section>.<Tag>
|
||||||
|
```
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
```
|
||||||
|
Value = 130
|
||||||
|
Status = 9
|
||||||
|
Options = 0xffffff88.00 ack
|
||||||
|
Quality = 0
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Status** is a number from `STATUS_DF` (export it with `dssqld -e status_df.qli -d STATUS_DF -c`
|
||||||
|
to look numbers up). Common ones: 9 `NORMAL`, 13 `NOT INIT` (never written; new items start
|
||||||
|
here), 4 / 5 `BOOLEAN 0` / `BOOLEAN 1`, 11 `HIGH HIGH`.
|
||||||
|
- **Options** lists item flags as words after the hex value, e.g. `ack` (acknowledged),
|
||||||
|
`off` (item's station not communicating). `uoff` also appears on station items after a write;
|
||||||
|
its meaning is not yet known (see `knowledge/issues.md` ISS-001).
|
||||||
|
|
||||||
|
## Read limits
|
||||||
|
|
||||||
|
```
|
||||||
|
itmval -g -n <Section>.<Tag> -a <n>
|
||||||
|
```
|
||||||
|
|
||||||
|
`<n>`: 1 deadband, 2 low, 3 high, 4 low-low, 5 high-high. The limit is returned in `Value`.
|
||||||
|
Items with no limits configured return `ITM-E-WRONG_ATT, Wrong attribute number used`.
|
||||||
|
|
||||||
|
## Write a value
|
||||||
|
|
||||||
|
```
|
||||||
|
itmval -p -n <Section>.<Tag> -v <value> [-s <status>] [-q <quality>]
|
||||||
|
```
|
||||||
|
|
||||||
|
- Read the item first and note its value, so it can be restored.
|
||||||
|
- Booleans take `-v 0` / `-v 1`; the status follows automatically (4 / 5).
|
||||||
|
- `-s` sets the status explicitly (e.g. `-s 9` NORMAL). Without it, a numeric write gives 9.
|
||||||
|
- `-o` overwrites a blocked item; `-t [<date>] <time> [GMT|LST]` sets the timestamp
|
||||||
|
(default local civil time); `-e` writes to event history only, not the current value.
|
||||||
|
- Read it back to confirm.
|
||||||
|
|
||||||
|
## Verified examples (CI-Eng-Sample)
|
||||||
|
|
||||||
|
| Command | Result |
|
||||||
|
|---|---|
|
||||||
|
| `itmval -p -n CI-Eng-Sample.TANK1.INFLOW -v 120.5` | Value 120.5, status 9 |
|
||||||
|
| `itmval -p -n CI-Eng-Sample.TANK1.INFLOW -v 130 -s 9` | Value 130, status 9 |
|
||||||
|
| `itmval -p -n CI-Eng-Sample.PUMP1.RUNNING -v 1` | Value 1, status 5 (BOOLEAN 1) |
|
||||||
|
| `itmval -g -n CI-Eng-Sample.TANK1.LEVEL -a 2` / `-a 3` / `-a 4` / `-a 5` | 20 / 80 / 10 / 90 |
|
||||||
44
.claude/skills/system-management/tasks/tuning-checks.md
Normal file
44
.claude/skills/system-management/tasks/tuning-checks.md
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
task: Tuning checks (read-only)
|
||||||
|
version: R1.03
|
||||||
|
source: IM 36K10J10-01EN §5.5.1; practiced on the test system 2026-09-30
|
||||||
|
status: verified (read-only checks)
|
||||||
|
---
|
||||||
|
|
||||||
|
# Tuning checks (read-only)
|
||||||
|
|
||||||
|
Checks whether CI Server needs tuning. Nothing here changes the system. Changing the limits
|
||||||
|
means editing setup files and restarting CI Server: ask the user first.
|
||||||
|
|
||||||
|
## Limits in setup files (`%TLS_ROOT_PATH%\tls\sup\`)
|
||||||
|
|
||||||
|
Read the active (non-`!`) lines:
|
||||||
|
|
||||||
|
| File | Keyword | Meaning | Test system |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `dur.sup` | `dur_max_proc` | Max processes (default 250) | 250 |
|
||||||
|
| `dur.sup` | `pool_kbytes` | DUR message pool | 250000 |
|
||||||
|
| `itm.sup` | `pool_kbytes` | Item common memory pool | 650000 |
|
||||||
|
| `database_start.cmd` (`tls\com`) | `-u` / `-f` | Max database users (default 2K) / files (default 1,200) | not checked |
|
||||||
|
|
||||||
|
## Live values: automatic health snapshots
|
||||||
|
|
||||||
|
CI Server's system monitor (`smdmon`) writes debugger snapshots about every 10 minutes to
|
||||||
|
`%TLS_LOG_PATH%\smd_<node>_<debugger>_*.log` (e.g. `smd_UNLICENCED_LOW_itmdbg_all.log`).
|
||||||
|
Read the newest entries:
|
||||||
|
|
||||||
|
| File | What to check | Target (IM 36K10J10 §5.5.1) |
|
||||||
|
|---|---|---|
|
||||||
|
| `*_itmdbg_all.log` | `common size` / `free size` | Free above 10 %, usage below 75 % |
|
||||||
|
| `*_smdsnp_process.log` | Per process: `queue_size`, `queue_used`, `queue_high` | No requests waiting (`queue_used` 0); enlarge a queue that stays in use |
|
||||||
|
| `*_ismdbg_all.log` | `Total number of lock collisions`, users, files | Collisions not rising above 250/s; entries below 80 % of max users |
|
||||||
|
| `*_smdsnp_process.log` | Number of processes | Well below `dur_max_proc` |
|
||||||
|
|
||||||
|
Test system (2026-09-30): common memory 665.6 MB, free 665.3 MB; queues empty; 3 lock
|
||||||
|
collisions in total.
|
||||||
|
|
||||||
|
## Not yet practiced
|
||||||
|
|
||||||
|
Debug launchers (`jwuipoi_debug`, `jhmiset_debug`, …), interactive debuggers (`itmdbg`,
|
||||||
|
`opcdbg`, `eqpdbg`, …), and per-process debug settings; see
|
||||||
|
`knowledge/manuals/IM36K10J10-01EN.md` §5.5.2.
|
||||||
|
|
@ -45,5 +45,8 @@ cover something, say so plainly instead of guessing CI Server behavior.
|
||||||
The manuals are at `C:\Users\Public\Yokogawa\tls\doc\EN\` on the development machine. Work
|
The manuals are at `C:\Users\Public\Yokogawa\tls\doc\EN\` on the development machine. Work
|
||||||
proceeds manual by manual in the order in `knowledge/progress.md`: summarize the manual into
|
proceeds manual by manual in the order in `knowledge/progress.md`: summarize the manual into
|
||||||
`knowledge/manuals/`, practice each task on the test system, and record a task in a skill only
|
`knowledge/manuals/`, practice each task on the test system, and record a task in a skill only
|
||||||
after the user confirms it works. Track status in `knowledge/progress.md`. Log open questions
|
after the user confirms it works. Tasks may be practiced first on the author's AID test
|
||||||
|
project, but whatever they need must then be added to `CI-Eng-Sample` and re-tested there;
|
||||||
|
a task is done only when it passes on the sample project (or needs no project data). Track
|
||||||
|
status in `knowledge/progress.md`. Log open questions
|
||||||
and problems in `knowledge/issues.md`, each with the files to update once it is resolved.
|
and problems in `knowledge/issues.md`, each with the files to update once it is resolved.
|
||||||
|
|
|
||||||
1
examples/CI-Eng-Sample/.gitignore
vendored
Normal file
1
examples/CI-Eng-Sample/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
*.qlo
|
||||||
15
examples/CI-Eng-Sample/01_section_df.qli
Normal file
15
examples/CI-Eng-Sample/01_section_df.qli
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! CI-Eng-Sample sections (CI Server R1.03.00)
|
||||||
|
@FIELDS
|
||||||
|
NAME,SECTION_PATH,SECTION_NAME,DESCRIPTION
|
||||||
|
|
||||||
|
@SECTION_DF
|
||||||
|
"CI-Eng-Sample","","CI-Eng-Sample","CI-Eng-Sample project"
|
||||||
|
"CI-Eng-Sample.TANK1","CI-Eng-Sample","TANK1","Sample tank 1"
|
||||||
|
"CI-Eng-Sample.PUMP1","CI-Eng-Sample","PUMP1","Sample pump 1"
|
||||||
|
"CI-Eng-Sample.SYSTEM","CI-Eng-Sample","SYSTEM","Sample system monitoring"
|
||||||
20
examples/CI-Eng-Sample/02_item_df.qli
Normal file
20
examples/CI-Eng-Sample/02_item_df.qli
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! CI-Eng-Sample internal items (no station), CI Server R1.03.00
|
||||||
|
@FIELDS
|
||||||
|
NAME,DESCRIPTION,ITEM_REP,VALUE_FORMAT
|
||||||
|
LOW_LOW_LIMIT,LOW_LIMIT,HIGH_LIMIT,HIGH_HIGH_LIMIT,SCALE_LOW_LIMIT,SCALE_HIGH_LIMIT
|
||||||
|
|
||||||
|
@ITEM_DF
|
||||||
|
"CI-Eng-Sample.TANK1.LEVEL","Tank 1 level (%)","Real","999.9",10,20,80,90,0,100
|
||||||
|
"CI-Eng-Sample.TANK1.INFLOW","Tank 1 inflow (m3/h)","Real","9999.9",0,0,0,0,0,500
|
||||||
|
"CI-Eng-Sample.PUMP1.RUNNING","Pump 1 running","Boolean","",0,0,0,0,0,0
|
||||||
|
"CI-Eng-Sample.PUMP1.MODE","Pump 1 mode (0 manual, 1 auto)","Integer","9",0,0,0,0,0,1
|
||||||
|
"CI-Eng-Sample.SYSTEM.CPU_LOAD","CPU load (%) from intcpumon","Real","999.9",0,0,0,0,0,100
|
||||||
|
"CI-Eng-Sample.SYSTEM.DISK_C","Disk C: from intdskmon","Real","999.9",0,0,0,0,0,100
|
||||||
|
"CI-Eng-Sample.SYSTEM.PING_LOCALHOST","localhost reachable, from inttcpmon","Integer","9",0,0,0,0,0,1
|
||||||
|
"CI-Eng-Sample.SYSTEM.PROC_ALM","ALARM process (alm) running, from intmon","Integer","9",0,0,0,0,0,1
|
||||||
13
examples/CI-Eng-Sample/03_his_group_df.qli
Normal file
13
examples/CI-Eng-Sample/03_his_group_df.qli
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! CI-Eng-Sample item storage group (Event/Item), CI Server R1.03.00
|
||||||
|
! Group names are max 16 characters.
|
||||||
|
@FIELDS
|
||||||
|
NAME,DESCRIPTION,TYPE,COL_STOR_TYPE,LIFE_TIME,ROLLOVER_INT
|
||||||
|
|
||||||
|
@HIS_GROUP_DF
|
||||||
|
"CIENG_EVENT","CI-Eng-Sample event history","Item","Event/Item","1 weeks","1 days"
|
||||||
13
examples/CI-Eng-Sample/04_item_his_df.qli
Normal file
13
examples/CI-Eng-Sample/04_item_his_df.qli
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! CI-Eng-Sample items in storage groups, CI Server R1.03.00
|
||||||
|
@FIELDS
|
||||||
|
NAME,ITEM_NAME,GROUP_NAME,ON_VALUE_CHANGE,ON_STATUS_CHANGE
|
||||||
|
|
||||||
|
@ITEM_HIS_DF
|
||||||
|
"CIENG_EVENT:CI-Eng-Sample.TANK1.LEVEL","CI-Eng-Sample.TANK1.LEVEL","CIENG_EVENT",1,1
|
||||||
|
"CIENG_EVENT:CI-Eng-Sample.TANK1.INFLOW","CI-Eng-Sample.TANK1.INFLOW","CIENG_EVENT",1,1
|
||||||
13
examples/CI-Eng-Sample/89_remove_item_his_df.qli
Normal file
13
examples/CI-Eng-Sample/89_remove_item_his_df.qli
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! Remove CI-Eng-Sample items from storage groups
|
||||||
|
@FIELDS
|
||||||
|
NAME
|
||||||
|
|
||||||
|
@ITEM_HIS_DF
|
||||||
|
"CIENG_EVENT:CI-Eng-Sample.TANK1.LEVEL"
|
||||||
|
"CIENG_EVENT:CI-Eng-Sample.TANK1.INFLOW"
|
||||||
12
examples/CI-Eng-Sample/90_remove_his_group_df.qli
Normal file
12
examples/CI-Eng-Sample/90_remove_his_group_df.qli
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! Remove CI-Eng-Sample storage group (deletes its history)
|
||||||
|
@FIELDS
|
||||||
|
NAME
|
||||||
|
|
||||||
|
@HIS_GROUP_DF
|
||||||
|
"CIENG_EVENT"
|
||||||
19
examples/CI-Eng-Sample/91_remove_item_df.qli
Normal file
19
examples/CI-Eng-Sample/91_remove_item_df.qli
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! Remove CI-Eng-Sample items
|
||||||
|
@FIELDS
|
||||||
|
NAME
|
||||||
|
|
||||||
|
@ITEM_DF
|
||||||
|
"CI-Eng-Sample.TANK1.LEVEL"
|
||||||
|
"CI-Eng-Sample.TANK1.INFLOW"
|
||||||
|
"CI-Eng-Sample.PUMP1.RUNNING"
|
||||||
|
"CI-Eng-Sample.PUMP1.MODE"
|
||||||
|
"CI-Eng-Sample.SYSTEM.CPU_LOAD"
|
||||||
|
"CI-Eng-Sample.SYSTEM.DISK_C"
|
||||||
|
"CI-Eng-Sample.SYSTEM.PING_LOCALHOST"
|
||||||
|
"CI-Eng-Sample.SYSTEM.PROC_ALM"
|
||||||
15
examples/CI-Eng-Sample/92_remove_section_df.qli
Normal file
15
examples/CI-Eng-Sample/92_remove_section_df.qli
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
@LANGUAGE
|
||||||
|
ENGLISH
|
||||||
|
|
||||||
|
@VERSION
|
||||||
|
1.03.00
|
||||||
|
|
||||||
|
! Remove CI-Eng-Sample sections (children first)
|
||||||
|
@FIELDS
|
||||||
|
NAME
|
||||||
|
|
||||||
|
@SECTION_DF
|
||||||
|
"CI-Eng-Sample.TANK1"
|
||||||
|
"CI-Eng-Sample.PUMP1"
|
||||||
|
"CI-Eng-Sample.SYSTEM"
|
||||||
|
"CI-Eng-Sample"
|
||||||
|
|
@ -1,36 +1,82 @@
|
||||||
# CI-Eng-Sample (placeholder)
|
# CI-Eng-Sample
|
||||||
|
|
||||||
**Status: planned, not built yet.** Nothing in this folder can be imported yet.
|
|
||||||
|
|
||||||
A small, invented sample project that anyone with this repo can load into a CI Server
|
A small, invented sample project that anyone with this repo can load into a CI Server
|
||||||
**R1.03** test system. Skills use it for their examples, and every skill task can be practiced
|
**R1.03** test system. Skills use its names in their examples, and every skill task is
|
||||||
and verified against the same known items on any machine.
|
re-tested against it so that no other project is needed.
|
||||||
|
|
||||||
## Planned contents
|
Built and tested on CI Server R1.03.00 (unlicensed test system), 2026-09-30.
|
||||||
|
|
||||||
Built up phase by phase (see `knowledge/progress.md`):
|
## Load and remove
|
||||||
|
|
||||||
| Phase | Adds |
|
Test systems only: loading writes to the CI Server database. CI Server must be running.
|
||||||
|---|---|
|
From an elevated prompt, call the scripts by full path (a bare `load.cmd` may not be found
|
||||||
| 5 Items and acquisition | Top-level section, sub-sections, template items, internal items (no PLC needed), items with alarm limits |
|
from the current folder):
|
||||||
| 6 Classes and objects | A class and objects created from it |
|
|
||||||
| 8 Alarms | Alarm settings on sample items |
|
|
||||||
| 9 History | An item storage group |
|
|
||||||
| 10 Graphics | A display and symbol |
|
|
||||||
| 11 Reporting | A report |
|
|
||||||
|
|
||||||
## Planned files
|
```
|
||||||
|
cmd /c "<repo>\examples\CI-Eng-Sample\load.cmd"
|
||||||
|
cmd /c "<repo>\examples\CI-Eng-Sample\remove.cmd"
|
||||||
|
```
|
||||||
|
|
||||||
|
- Each step prints a summary and writes a `.qlo` listing; check that `Errors` is 0.
|
||||||
|
- **Restart CI Server after loading** (stop, then start the CI Service): a new storage group
|
||||||
|
stores no history until CI Server restarts.
|
||||||
|
- `load.cmd` on a system that already has the project reports `Exists` and changes nothing.
|
||||||
|
- `remove.cmd` takes about 1½ minutes: a storage group can only be deleted after its stop time
|
||||||
|
has passed, so the script sets a stop time one minute ahead and waits. Removing the group
|
||||||
|
also deletes its history.
|
||||||
|
|
||||||
|
## Current contents
|
||||||
|
|
||||||
|
| Name | Kind | Details |
|
||||||
|
|---|---|---|
|
||||||
|
| `CI-Eng-Sample` | Section | Top level |
|
||||||
|
| `CI-Eng-Sample.TANK1`, `.PUMP1`, `.SYSTEM` | Sections | Tank, pump, system monitoring |
|
||||||
|
| `CI-Eng-Sample.TANK1.LEVEL` | Item, Real | %, format `999.9`, limits LL 10 / L 20 / H 80 / HH 90, scale 0–100 (alarming off), stored in `CIENG_EVENT` |
|
||||||
|
| `CI-Eng-Sample.TANK1.INFLOW` | Item, Real | m3/h, format `9999.9`, scale 0–500, stored in `CIENG_EVENT` |
|
||||||
|
| `CI-Eng-Sample.PUMP1.RUNNING` | Item, Boolean | |
|
||||||
|
| `CI-Eng-Sample.PUMP1.MODE` | Item, Integer | 0 manual, 1 auto |
|
||||||
|
| `CI-Eng-Sample.SYSTEM.CPU_LOAD` | Item, Real | Target for `intcpumon` |
|
||||||
|
| `CI-Eng-Sample.SYSTEM.DISK_C` | Item, Real | Target for `intdskmon` (reports **used** %) |
|
||||||
|
| `CI-Eng-Sample.SYSTEM.PING_LOCALHOST` | Item, Integer | Target for `inttcpmon` (1 = reachable) |
|
||||||
|
| `CI-Eng-Sample.SYSTEM.PROC_ALM` | Item, Integer | Target for `intmon` (1 = `alm` process running) |
|
||||||
|
| `CIENG_EVENT` | Item storage group | Event/Item, lifetime 1 week, rollover 1 day |
|
||||||
|
|
||||||
|
All items are internal (no station), so the project works without any PLC or simulator.
|
||||||
|
New items start with status 13 (`NOT INIT`) until a value is written.
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
| File | Purpose |
|
| File | Purpose |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `*.qli` | `dssqld` data files, one per dataset |
|
| `01_section_df.qli` | Sections (`SECTION_DF`); parents before children |
|
||||||
| `load.cmd` | Imports the data files in dependency order: template items → classes (compiled) → objects → remaining items (IM 36K10J10 §5.6) |
|
| `02_item_df.qli` | Items (`ITEM_DF`) |
|
||||||
| `remove.cmd` | Removes the sample project from a system |
|
| `03_his_group_df.qli` | Item storage group (`HIS_GROUP_DF`) |
|
||||||
|
| `04_item_his_df.qli` | Items in the storage group (`ITEM_HIS_DF`, name `<group>:<item>`) |
|
||||||
|
| `89_`…`92_remove_*.qli` | Names to delete, in reverse order |
|
||||||
|
| `load.cmd`, `remove.cmd` | Run the steps in the right order |
|
||||||
|
| `monitoring/*.sup.txt` | Setup-file lines for the monitoring processes (not applied by `load.cmd`) |
|
||||||
|
|
||||||
|
## Monitoring processes (optional)
|
||||||
|
|
||||||
|
`monitoring/` holds the lines to add to the setup files in `%TLS_ROOT_PATH%\tls\sup\` so that
|
||||||
|
`intcpumon`, `intdskmon`, `inttcpmon`, `intmon` and `intspawn` write into the `SYSTEM` items.
|
||||||
|
These change the system's own setup files: back the files up first and restore them after
|
||||||
|
testing. See the `system-management` skill, task `monitoring-processes.md`.
|
||||||
|
|
||||||
|
## Planned additions
|
||||||
|
|
||||||
|
| Phase | Adds |
|
||||||
|
|---|---|
|
||||||
|
| 6 | Template items, a class and objects |
|
||||||
|
| 8 | Alarm settings on sample items |
|
||||||
|
| 9 | More storage groups (scan/time, aggregation) |
|
||||||
|
| 10 | A display and symbol |
|
||||||
|
| 11 | A report |
|
||||||
|
|
||||||
## Rules
|
## Rules
|
||||||
|
|
||||||
- Test systems only. Loading writes to the CI Server database.
|
- Test systems only; invented names only, no real plant or customer data.
|
||||||
- Invented names only; no real plant or customer data.
|
- Keep the load order: sections → template items → classes (compiled) → objects → other
|
||||||
- The top-level section name is still to be decided. Item names may not allow `-`, so it may
|
items → storage groups → items in storage groups (IM 36K10J10 §5.6). Keep `remove.cmd` in
|
||||||
differ from the folder name (to be checked in phase 5).
|
reverse order.
|
||||||
- Every file notes the CI Server version it was built and tested on.
|
- Every file notes the CI Server version it was built and tested on.
|
||||||
|
|
|
||||||
12
examples/CI-Eng-Sample/load.cmd
Normal file
12
examples/CI-Eng-Sample/load.cmd
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
@echo off
|
||||||
|
rem Load CI-Eng-Sample into a CI Server R1.03 TEST system.
|
||||||
|
rem Run in an elevated prompt while CI Server is running; call this script by full path.
|
||||||
|
rem Results go to *.qlo listing files; check that Errors = 0.
|
||||||
|
rem Restart CI Server afterwards: new storage groups only start storing after a restart.
|
||||||
|
cd /d "%~dp0"
|
||||||
|
dssqld -i 01_section_df.qli -l 01_section_df.qlo
|
||||||
|
dssqld -i 02_item_df.qli -l 02_item_df.qlo
|
||||||
|
dssqld -i 03_his_group_df.qli -l 03_his_group_df.qlo
|
||||||
|
rem Short pause: linking items straight after creating the group failed once.
|
||||||
|
powershell -NoProfile -Command "Start-Sleep -Seconds 5"
|
||||||
|
dssqld -i 04_item_his_df.qli -l 04_item_his_df.qlo
|
||||||
5
examples/CI-Eng-Sample/monitoring/intcpumon.sup.txt
Normal file
5
examples/CI-Eng-Sample/monitoring/intcpumon.sup.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
! Add to %TLS_ROOT_PATH%\tls\sup\intcpumon.sup (CI Server R1.03.00, tested 2026-09-30)
|
||||||
|
! CPU = <system name>, <item>, <counter>; empty system = this machine, empty counter = total CPU %
|
||||||
|
interval = 10
|
||||||
|
logging
|
||||||
|
CPU = "", "CI-Eng-Sample.SYSTEM.CPU_LOAD", ""
|
||||||
5
examples/CI-Eng-Sample/monitoring/intdskmon.sup.txt
Normal file
5
examples/CI-Eng-Sample/monitoring/intdskmon.sup.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
! Add to %TLS_ROOT_PATH%\tls\sup\intdskmon.sup (CI Server R1.03.00, tested 2026-09-30)
|
||||||
|
! DISK = <disk>, <item>. The item receives the USED percentage of the disk.
|
||||||
|
interval = 10
|
||||||
|
logging
|
||||||
|
DISK = "C:\\", "CI-Eng-Sample.SYSTEM.DISK_C"
|
||||||
3
examples/CI-Eng-Sample/monitoring/intmon.sup.txt
Normal file
3
examples/CI-Eng-Sample/monitoring/intmon.sup.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
! Add to %TLS_ROOT_PATH%\tls\sup\intmon.sup (CI Server R1.03.00, tested 2026-09-30)
|
||||||
|
! process = <process name>, <item>. Item = 1 while the process runs.
|
||||||
|
process = "alm", "CI-Eng-Sample.SYSTEM.PROC_ALM"
|
||||||
6
examples/CI-Eng-Sample/monitoring/intspawn.sup.txt
Normal file
6
examples/CI-Eng-Sample/monitoring/intspawn.sup.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
! Add to %TLS_ROOT_PATH%\tls\sup\intspawn.sup (CI Server R1.03.00, tested 2026-09-30)
|
||||||
|
! TRIGGER = <command>, <item>, <VALUE|STATUS|OPTION|TIMER|NODE_DOWN|NODE_UP|NODE>, <NONE|EQUAL|GREATER|LESS>, <value>
|
||||||
|
! The new value is passed to the command as its argument. Keep the command path SHORT:
|
||||||
|
! a ~130-character path silently did nothing; C:\Claude\spawn_test.cmd worked.
|
||||||
|
! Example command file (spawn_test.cmd): @echo %* >> "C:\Temp\spawn_out.txt"
|
||||||
|
TRIGGER = "C:\Temp\spawn_test.cmd", "CI-Eng-Sample.PUMP1.MODE", VALUE, NONE, 0
|
||||||
4
examples/CI-Eng-Sample/monitoring/inttcpmon.sup.txt
Normal file
4
examples/CI-Eng-Sample/monitoring/inttcpmon.sup.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
! Add to %TLS_ROOT_PATH%\tls\sup\inttcpmon.sup (CI Server R1.03.00, tested 2026-09-30)
|
||||||
|
! TCP = <host>, <item>. Item = 1 while the host answers a ping.
|
||||||
|
logging
|
||||||
|
TCP = "localhost", "CI-Eng-Sample.SYSTEM.PING_LOCALHOST"
|
||||||
16
examples/CI-Eng-Sample/remove.cmd
Normal file
16
examples/CI-Eng-Sample/remove.cmd
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
@echo off
|
||||||
|
rem Remove CI-Eng-Sample from a CI Server R1.03 TEST system (also deletes its history).
|
||||||
|
rem Run in an elevated prompt while CI Server is running; call this script by full path.
|
||||||
|
rem Order: storage links, stop + delete storage group, items, sections (children first).
|
||||||
|
rem A storage group with an active unit cannot be deleted (HIS-E-GROUPHASUNT), so the
|
||||||
|
rem group first gets a stop time one minute ahead; the script waits until it has passed.
|
||||||
|
cd /d "%~dp0"
|
||||||
|
dssqld -r 89_remove_item_his_df.qli -l 89_remove_item_his_df.qlo
|
||||||
|
powershell -NoProfile -Command "$t=(Get-Date).AddMinutes(1).ToString('dd-MM-yyyy HH:mm:ss'); \"@LANGUAGE`r`nENGLISH`r`n`r`n@VERSION`r`n1.03.00`r`n`r`n@FIELDS`r`nNAME,STOP_TIME`r`n`r`n@HIS_GROUP_DF`r`n\"\"CIENG_EVENT\"\",\"\"$t\"\"`r`n\" | Set-Content -Encoding ascii 90a_stop_his_group_df.qli"
|
||||||
|
dssqld -m 90a_stop_his_group_df.qli -l 90a_stop_his_group_df.qlo
|
||||||
|
echo Waiting 75 seconds for the storage group stop time to pass...
|
||||||
|
powershell -NoProfile -Command "Start-Sleep -Seconds 75"
|
||||||
|
dssqld -r 90_remove_his_group_df.qli -l 90_remove_his_group_df.qlo
|
||||||
|
dssqld -r 91_remove_item_df.qli -l 91_remove_item_df.qlo
|
||||||
|
dssqld -r 92_remove_section_df.qli -l 92_remove_section_df.qlo
|
||||||
|
del 90a_stop_his_group_df.qli
|
||||||
|
|
@ -19,7 +19,10 @@ development system (see "Test system" in `progress.md`); they do not exist on ot
|
||||||
|
|
||||||
| ID | Date | Area | Issue | Status | Next step / resolution | Update on close |
|
| ID | Date | Area | Issue | Status | Next step / resolution | Update on close |
|
||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|
|
||||||
| ISS-001 | 2026-09-30 | ITEM (`itmval`) | Writing an item with `itmval -p -n AID.WRPS.SIM.INFLOW -v 400` added the `uoff` option flag (options 0x…8a → 0x…8e). The flag stayed after writing the original value back. Meaning of `uoff` unknown; not found in the EN manuals by text search. | open | Find what `uoff` means and how to clear it (ITEM Service IM 36K10L35/L36, Engineering Module I/O Processes IM 36K10C10). Until then, `itmval -p` stays "awaiting confirmation". | Create `.claude/skills/system-management/tasks/read-write-item.md` (with the `uoff` explanation) and add it to that skill's `SKILL.md` task table; `knowledge/progress.md` row "Write an item with `itmval -p`" |
|
| ISS-001 | 2026-09-30 | ITEM (`itmval`) | Writing an item with `itmval -p -n AID.WRPS.SIM.INFLOW -v 400` added the `uoff` option flag (options 0x…8a → 0x…8e). The flag stayed after writing the original value back. Meaning of `uoff` unknown; not found in the EN manuals by text search. | open | 2026-09-30: writing internal sample items (`CI-Eng-Sample.*`, no station) does **not** set `uoff` (options stay 0x…88), so it is tied to station-connected items (the AID item was already `off`, its station not communicating). Still to find: meaning and how to clear it (ITEM Service IM 36K10L35/L36, Engineering Module I/O Processes IM 36K10C10). Revisit in phase 5 with a station item. | `.claude/skills/system-management/tasks/read-write-item.md` (replace the `uoff` note under "Read the current value"); `knowledge/progress.md` row "Write an item with `itmval -p`" |
|
||||||
| ISS-002 | 2026-09-30 | DATABASE (`dsschk`) | `dsschk -d ITEM_DF -v` (check only) exits 0 with no console output and nothing new in `umhlog.log`. Where results are reported is unknown. | open | Revisit with the Data Access / Data Set Service manuals; try without `-d`, or with `-e`. | Create `.claude/skills/system-management/tasks/consistency-check.md` and add it to that skill's `SKILL.md`; `knowledge/manuals/IM36K10J10-01EN.md` §4.1.1 consistency tools (add where output goes); `knowledge/progress.md` row "Consistency check" |
|
| ISS-002 | 2026-09-30 | DATABASE (`dsschk`) | `dsschk -d ITEM_DF -v` (check only) exits 0 with no console output and nothing new in `umhlog.log`. Where results are reported is unknown. | closed | Closed 2026-09-30 (confirmed by user). 2026-09-30: `dsschk -e -v` prints a start/end line per dataset (228 checked, no problems) and logs to `umhlog.log`. Plain `dsschk` only compares copies between nodes, so it prints nothing on a single-node system. `ismchk` needs a database file name (usage: `ismchk data_base_name`), not run yet. | Create `.claude/skills/system-management/tasks/consistency-check.md` and add it to that skill's `SKILL.md`; `knowledge/manuals/IM36K10J10-01EN.md` §4.1.1 consistency tools (add where output goes); `knowledge/progress.md` row "Consistency check" |
|
||||||
| ISS-003 | 2026-09-30 | DATABASE (`dssqld`) | Filtered export (`dssqld -e <out> <filter>.qli`) failed with a guessed filter syntax (`@ITEM_DF`, `@FIELD`, `@SELECT`). | open | Get the exact filter-file syntax from the Data Set Service manuals (IM 36K10L50 / P30). | `.claude/skills/system-management/tasks/export-dataset.md` section "Filtered exports"; `knowledge/manuals/IM36K10J10-01EN.md` §5.6 step 1; `knowledge/progress.md` row "Export a dataset" |
|
| ISS-003 | 2026-09-30 | DATABASE (`dssqld`) | Filtered export (`dssqld -e <out> <filter>.qli`) failed with a guessed filter syntax (`@ITEM_DF`, `@FIELD`, `@SELECT`). | closed | Closed 2026-09-30 (confirmed by user). 2026-09-30: the quick load **data** format is now known and verified (`@LANGUAGE`, `@VERSION`, `@FIELDS`, `@<DATASET>`, quoted CSV records, `\` continuation, `!` comments; IM 36K10L45 §9.11). Filter syntax found (IM 36K10L50 §3.6) and practiced, awaiting confirmation: a file with `@SELECT`, then the filter in single quotes (strings in double quotes), then `@<DATASET>`; run `dssqld -e <out> <filter>.qli`. `ITEM_HISTORY` returns nothing unless the filter names `ITEM_NAME` and a `SAMPLE_TIME` range (`SAMPLE_TIME > "dd-mm-yyyy hh:mm:ss" and SAMPLE_TIME < ...`). | `.claude/skills/system-management/tasks/export-dataset.md` section "Filtered exports"; `knowledge/manuals/IM36K10J10-01EN.md` §5.6 step 1; `knowledge/progress.md` row "Export a dataset" |
|
||||||
| ISS-004 | 2026-09-30 | ITEM (`itmval`) | `itmval -g -a <1..5>` returns `ITM-E-WRONG_ATT` on `AID.WRPS.*` items, so reading limits is unproven. | open | Retry on an item that has alarm limits configured (phase 8, alarms). | `.claude/skills/system-management/tasks/read-write-item.md` (limits section); `knowledge/progress.md` row "Read an item with `itmval -g`" |
|
| ISS-004 | 2026-09-30 | ITEM (`itmval`) | `itmval -g -a <1..5>` returns `ITM-E-WRONG_ATT` on `AID.WRPS.*` items, so reading limits is unproven. | closed | Closed 2026-09-30 (confirmed by user). On `CI-Eng-Sample.TANK1.LEVEL` (limits set) `-a 1..5` returned deadband 0, low 20, high 80, low-low 10, high-high 90. The error only occurs on items without limits. | `.claude/skills/system-management/tasks/read-write-item.md` (limits section); `knowledge/progress.md` row "Read an item with `itmval -g`" |
|
||||||
|
| ISS-005 | 2026-09-30 | DATABASE (`dssqld`) | Loading `04_item_his_df.qli` straight after creating the storage group gave 2 errors once; three other runs were clean. Error text not captured. | open | Added a 5 s pause in `load.cmd`. If it happens again, capture `04_item_his_df.qlo`. | `examples/CI-Eng-Sample/load.cmd`; `.claude/skills/system-management/tasks/load-remove-records.md` |
|
||||||
|
| ISS-006 | 2026-09-30 | HISTORY (`ithloahis`) | Samples dated before the start of the current storage unit were not stored (no error shown); samples after it were. Also, a new storage group stored nothing until CI Server was restarted. | open | Confirm with History Management (IM 36K10L20) in phase 9: how to load into older units, and whether a restart is really required. | `.claude/skills/system-management/tasks/load-history.md`; `examples/CI-Eng-Sample/README.md`; `knowledge/manuals/IM36K10J10-01EN.md` command-line tools |
|
||||||
|
| ISS-007 | 2026-09-30 | INTEGRATION (monitoring) | `intdskmon` wrote 61.9 for a C: drive that is 61.9 % used / 38.1 % free, although the manual says it monitors the disk free space rate. `intspawn` did nothing when the command path was ~130 characters; a short path worked (limit unknown). | open | Confirm the disk value meaning and the path limit. | `.claude/skills/system-management/tasks/monitoring-processes.md`; `knowledge/manuals/IM36K10J10-01EN.md` §4.1.6; `examples/CI-Eng-Sample/monitoring/` |
|
||||||
|
|
|
||||||
|
|
@ -176,6 +176,8 @@ owns its design.
|
||||||
- Consistency tools: `ismchk <file>` / `ismkfr [-c] [-r] [-s] [-d] <file>` for ISAM files;
|
- Consistency tools: `ismchk <file>` / `ismkfr [-c] [-r] [-s] [-d] <file>` for ISAM files;
|
||||||
`dsschk [-d <dataset>] [-n <node>] [-e] [-r] [-v]` for replicated/duplicated datasets.
|
`dsschk [-d <dataset>] [-n <node>] [-e] [-r] [-v]` for replicated/duplicated datasets.
|
||||||
Repair: repeat `dsschk -r` until clean, then `dsschk -e`, then `dsschk -e -r` (maybe twice).
|
Repair: repeat `dsschk -r` until clean, then `dsschk -e`, then `dsschk -e -r` (maybe twice).
|
||||||
|
*Verified 2026-09-30:* on a single node plain `dsschk` prints nothing (it compares nodes);
|
||||||
|
use `dsschk -e -v`, which lists every dataset checked and also logs to `umhlog.log`.
|
||||||
- Disaster recovery: restore system backup (or reinstall OS + CI Server + patches) → restore
|
- Disaster recovery: restore system backup (or reinstall OS + CI Server + patches) → restore
|
||||||
`tls` configuration and database → verify.
|
`tls` configuration and database → verify.
|
||||||
- Retrieve archived history from the Engineering module (you can set its lifetime).
|
- Retrieve archived history from the Engineering module (you can set its lifetime).
|
||||||
|
|
@ -248,8 +250,9 @@ usability), administrator tasks (backup, accounts, monitoring), performance and
|
||||||
`opcdbg` (PROCESS); `almdbg` (ALARM); `eqpdbg` (EQUIPMENT).
|
`opcdbg` (PROCESS); `almdbg` (ALARM); `eqpdbg` (EQUIPMENT).
|
||||||
|
|
||||||
**Migration (5.6)**, e.g. from a demo-license system to the target system
|
**Migration (5.6)**, e.g. from a demo-license system to the target system
|
||||||
1. Export master datasets with `dssqld -e`, using `.qli` filter files (`@<DATASET>`,
|
1. Export master datasets with `dssqld -e`, using `.qli` filter files where needed
|
||||||
`@FIELD`, `@SELECT`) where needed: `AUTH_GROUP_DF`, `USER_DF`, `PRINTER_*_DF`,
|
(`@SELECT`, the filter in single quotes, then `@<DATASET>`; optionally `@FIELDS`; verified
|
||||||
|
2026-09-30, see skill `system-management` task `export-dataset.md`): `AUTH_GROUP_DF`, `USER_DF`, `PRINTER_*_DF`,
|
||||||
`STATUS_DF`, `ALARM_ACK_DF`, `ALARM_AOI_DF`, communication `*_LINE_DF` / `*_STATION_DF` /
|
`STATUS_DF`, `ALARM_ACK_DF`, `ALARM_AOI_DF`, communication `*_LINE_DF` / `*_STATION_DF` /
|
||||||
`*_POINT_DF`, `INSTALL_DF`, `UNIT_DF`, `ITEM_DF`, `HIS_GROUP_DF` (item storage groups
|
`*_POINT_DF`, `INSTALL_DF`, `UNIT_DF`, `ITEM_DF`, `HIS_GROUP_DF` (item storage groups
|
||||||
only), `CLASS_DF`, `OBJECT_DF`, `REPORT_DF`. Drop fields removed in the new release.
|
only), `CLASS_DF`, `OBJECT_DF`, `REPORT_DF`. Drop fields removed in the new release.
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,11 @@ Status of each manual and each practiced task. Update this file as work proceeds
|
||||||
|
|
||||||
**Manual status:** not started · summarized · in practice · done
|
**Manual status:** not started · summarized · in practice · done
|
||||||
**Task status:** not practiced · practiced, awaiting confirmation · passed · not completed (see notes)
|
**Task status:** not practiced · practiced, awaiting confirmation · passed · not completed (see notes)
|
||||||
|
**Sample column:** whether the task has been re-tested on **CI-Eng-Sample**:
|
||||||
|
n/a (needs no project data) · pending (tested on AID only) · added (sample content built) · passed
|
||||||
|
|
||||||
|
A task is **done** only when Status is *passed* and Sample is *passed* or *n/a*. Then AID is no
|
||||||
|
longer needed to repeat it.
|
||||||
|
|
||||||
## Test system
|
## Test system
|
||||||
|
|
||||||
|
|
@ -16,15 +21,16 @@ with this repo:
|
||||||
was tested, not names to use elsewhere.
|
was tested, not names to use elsewhere.
|
||||||
- Communication stations seen there (`WRPS_PLC`, `MODSIM_STATION`, `STN_MQTT`) belong to AID.
|
- Communication stations seen there (`WRPS_PLC`, `MODSIM_STATION`, `STN_MQTT`) belong to AID.
|
||||||
|
|
||||||
Shared, repeatable practice will use the sample project **CI-Eng-Sample**
|
Tasks may be practiced first on AID, but everything they need is then added to the sample
|
||||||
(`examples/CI-Eng-Sample/`) once it exists.
|
project **CI-Eng-Sample** (`examples/CI-Eng-Sample/`) and re-tested there, so that in the end
|
||||||
|
AID is not needed.
|
||||||
|
|
||||||
## Manuals, in working order
|
## Manuals, in working order
|
||||||
|
|
||||||
| Phase | Manual | Title | Status |
|
| Phase | Manual | Title | Status |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 0 | IM 36K01A50 | Release Information | summarized ([notes](manuals/IM36K01A50-01EN.md)) |
|
| 0 | IM 36K01A50 | Release Information | summarized ([notes](manuals/IM36K01A50-01EN.md)) |
|
||||||
| 1 | IM 36K10J10 | System Design/Management | in practice, skill `system-management` ([notes](manuals/IM36K10J10-01EN.md)) |
|
| 1 | IM 36K10J10 | System Design/Management | done except migration (phase 6) and debugging tools; skill `system-management` ([notes](manuals/IM36K10J10-01EN.md)) |
|
||||||
| 2 | IM 36K01C10 | CI Server Setup | not started |
|
| 2 | IM 36K01C10 | CI Server Setup | not started |
|
||||||
| 2 | IM 36K01C30 | Security Guide | not started |
|
| 2 | IM 36K01C30 | Security Guide | not started |
|
||||||
| 3 | IM 36K10G10 | Tutorial | not started |
|
| 3 | IM 36K10G10 | Tutorial | not started |
|
||||||
|
|
@ -68,19 +74,19 @@ now come before classes and objects (phase 6), and the other interfaces follow a
|
||||||
|
|
||||||
## Tasks
|
## Tasks
|
||||||
|
|
||||||
| Manual | Task | Status | Notes |
|
| Manual | Task | Status | Sample | Notes |
|
||||||
|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| J10 | System check: version, paths, running state, time sync ([skill](../.claude/skills/system-check/SKILL.md)) | passed | Started CI Service elevated; live version R1.03.00; node UNLICENCED (expected). |
|
| J10 | System check: version, paths, running state, time sync ([skill](../.claude/skills/system-check/SKILL.md)) | passed | n/a | Started CI Service elevated; live version R1.03.00; node UNLICENCED (expected). |
|
||||||
| J10 | Time sync check / configuration (`w32tm`, `durutl.sup`) | not practiced | Check only on this system; no Vnet/IP. |
|
| J10 | Time sync check (`w32tm`); DURUTL configuration (`durutl.sup`) | passed (check); configuration not practiced | n/a | `w32tm` check verified in system-check. `durutl.sup` has no active settings (single node, not a time master); configuring DURUTL needs a second node, so not practiced. |
|
||||||
| J10 | Export a dataset with `dssqld` ([task](../.claude/skills/system-management/tasks/export-dataset.md)) | passed | Filter-file syntax: [ISS-003](issues.md). |
|
| J10 | Export a dataset with `dssqld` ([task](../.claude/skills/system-management/tasks/export-dataset.md)) | passed | n/a | Filtered export (`@SELECT`) passed ([ISS-003](issues.md), closed). |
|
||||||
| J10 | Import / update a dataset with `dssqld` | not practiced | Writes to the database; ask first. |
|
| J10 | Import and delete dataset records with `dssqld` (`-i`, `-r`) ([task](../.claude/skills/system-management/tasks/load-remove-records.md)) | passed | passed | Built CI-Eng-Sample: 3 sections + 4 items imported, removed and re-imported with 0 errors. 2026-09-30 later: `-m` (update, used to set a storage group stop time) and loading/removing storage groups passed; see [ISS-005](issues.md). |
|
||||||
| J10 | Read an item with `itmval -g` | passed | Read `AID.WRPS.*` items. `-a 1..5` gave `ITM-E-WRONG_ATT` on an item without limits: [ISS-004](issues.md). |
|
| J10 | Read an item with `itmval -g` ([task](../.claude/skills/system-management/tasks/read-write-item.md)) | passed | passed | Read `AID.WRPS.*` items. `-a 1..5` gave `ITM-E-WRONG_ATT` on an item without limits; works on items with limits ([ISS-004](issues.md), closed). |
|
||||||
| J10 | Write an item with `itmval -p` | practiced, awaiting confirmation | `AID.WRPS.SIM.INFLOW` 419.76 → 400 → 419.76. After the first write the item's options gained the `uoff` flag (0x8a → 0x8e), which stays after restoring the value. See [ISS-001](issues.md). |
|
| J10 | Write an item with `itmval -p` ([task](../.claude/skills/system-management/tasks/read-write-item.md)) | passed | passed | Sample: `TANK1.INFLOW` 120.5 then 130 with `-s 9`, `PUMP1.RUNNING` 1 (status 5 BOOLEAN 1); no `uoff` flag. AID: `AID.WRPS.SIM.INFLOW` 419.76 → 400 → 419.76. After the first write the item's options gained the `uoff` flag (0x8a → 0x8e), which stays after restoring the value. See [ISS-001](issues.md). |
|
||||||
| J10 | Read the message log (`tls\log\umhlog.log`) | passed | |
|
| J10 | Read the message log (`tls\log\umhlog.log`) | passed | n/a | |
|
||||||
| J10 | Per-component version list (`tls\lst\tls_versions.lst`) | passed | |
|
| J10 | Per-component version list (`tls\lst\tls_versions.lst`) | passed | n/a | |
|
||||||
| J10 | Load history from CSV with `ithloahis` | not practiced | Needs an item storage group. |
|
| J10 | Load history from CSV with `ithloahis`; read history back with `dssqld` ([task](../.claude/skills/system-management/tasks/load-history.md)) | passed | passed | Sample storage group `CIENG_EVENT` (Event/Item). SCAN file (LEVEL 61–63, INFLOW 101–103) and EVENT file (LEVEL 47, 48) stored and read back via `ITEM_HISTORY`. New groups need a CI Server restart before they store; samples dated before the current storage unit were not stored ([ISS-006](issues.md)). |
|
||||||
| J10 | Consistency check (`dsschk`, `ismchk`) | not completed | `dsschk -d ITEM_DF -v` exits 0 with no output and nothing new in the message log; See [ISS-002](issues.md). |
|
| J10 | Consistency check (`dsschk`, `ismchk`) ([task](../.claude/skills/system-management/tasks/consistency-check.md)) | passed (check); repair and `ismchk` not practiced | n/a | `dsschk -e -v` (check only) reports each of 228 datasets, no problems. Plain `dsschk` prints nothing on a single node. `ismchk` needs a database file name; not run ([ISS-002](issues.md), closed). |
|
||||||
| J10 | Monitoring processes (`intmon`, `intcpumon`, `intdskmon`, `inttcpmon`, `intspawn`) | not practiced | Needs items to report into; better after phase 5. |
|
| J10 | Monitoring processes (`intmon`, `intcpumon`, `intdskmon`, `inttcpmon`, `intspawn`) ([task](../.claude/skills/system-management/tasks/monitoring-processes.md)) | passed | passed | All five worked into `CI-Eng-Sample.SYSTEM.*` / `PUMP1.MODE`, started by hand with `<exe> -n <name>`; setup files restored afterwards. `intdskmon` reports **used** %; `intspawn` command path must be short ([ISS-007](issues.md)). |
|
||||||
| J10 | Backup of `tls` folders | not practiced | Plan only; the actual backup tool is site-specific. |
|
| J10 | Backup of `tls` folders | not practiced | n/a | Plan only; the actual backup tool is site-specific. |
|
||||||
| J10 | Migration between systems (§5.6) | not practiced | Needs engineered data; revisit after phase 6. |
|
| J10 | Migration between systems (§5.6) | not practiced | pending | Needs engineered data; revisit after phase 6. |
|
||||||
| J10 | Tuning and debugging (setup files, `*_debug` launchers, debuggers) | not practiced | |
|
| J10 | Tuning checks (read-only) ([task](../.claude/skills/system-management/tasks/tuning-checks.md)) | passed | n/a | Read `dur.sup` (max processes 250), `itm.sup` (item pool 650,000 KB) and the automatic health snapshots `tls\log\smd_*.log` (common memory free, queue use per process, lock collisions). Debug launchers and interactive debuggers not practiced. |
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue