ci-server-engineer/.claude/skills/system-management/tasks/dss-tools.md
cliu 83af63ab53 R1.05 re-check batch 2: graphics, history, portal, system-management, items
Full manual diffs (C50, R30, C60, L20, C40, L35, R10, R20, J10, L30, L50,
P30, G10, C10) and read-only checks on the shared R1.05 test server where
the permission system allowed them. Skills and summaries moved to R1.05.
Issues ISS-092..129 (gaps 104-107, 114-115, 130-131 unused); ISS-074
closed (manual and software agree), ISS-091 corrected by ISS-119.
version-differences: unlisted manual changes and installed-only changes.
r105-verification: V5-V9 and new not-tested rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:29:15 +11:00

105 lines
5.5 KiB
Markdown
Raw 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: DSS (Data Set Services) checks and tools - processes, dss.sup, quick load directives, dssutl, DSS compiler syntax check
version: R1.05 (first written for R1.03)
source: IM 36K10L50-01EN §1, §2.1, §2.2, §3, §4 (5th ed., Feb. 2026); IM 36K10P30-01EN §2, §3 (4th ed., Feb. 2026); practiced on the test system 2026-10-01 (R1.03)
status: verified on R1.03 (2026-10-01, all sections); on the R1.05 test server re-checked read-only 2026-10-08 - DSS processes and start script, `dss.sup`, `dssqld` directives (`@SELECT`) and help text, DSS compiler syntax check; macro/include loads, memo files and `dssutl` not re-run on R1.05
---
# DSS tools
Everything here is read-only except where marked. Background:
`knowledge/manuals/IM36K10L50-01EN.md`, `IM36K10P30-01EN.md`.
## 1. DSS processes and `dss.sup`
`tasklist /FI "IMAGENAME eq dss*"` — expect `dsswth`, `dssana`, `dssanc`, `dssadb`, `dsslck`,
`dssman`, `dsschk` (server) and several `dsssda` / `dssevt` (10 and 7 on a default R1.03 node,
**12 and 7 on R1.05**). `durwfp -p dssman -t 0` tests one by its BUS Service name (`DSSSDA00`…,
`DSSSDAOPC00`…, `DSSEVT00`…). Started by `tls\com\database_start.cmd`.
- R1.03: the number of general `DSSSDA` comes from `%TLS_MAX_SDA_ID%` (default 3 →
`DSSSDA00`–`03`).
- R1.05: the script starts `DSSSDA00`–`03` as fixed lines (`%TLS_MAX_SDA_ID%` is no longer
used) and two new dedicated servers, `DSSSDARST` (RESTful API server `JRSTSRV`) and
`DSSSDAPY` (pyTOOLS clients `PYDSS*`); it waits for `DSSSDARST` with `durwfp`. On the first
start after an upgrade it runs the R1.04/R1.05 dataset upgrade programs
(`opcaec_station_u0104`, `opcuac_station_u0104`, `opcuac_method_u0104`, `dss_ath_grp_u0104`,
`iec61850_*_u0104` / `_u0105`, `iec61850_rcb_u0105`) and keeps `database.new` if one fails, so
the upgrade is tried again at the next start (verified in the installed script 2026-10-08,
ISS-117).
`%TLS_ROOT_PATH%\tls\sup\dss.sup` (Setup File Editor or text): queue sizes, heartbeats, `FLOWC`,
and `DSSSDA_SRV` / `DSSEVT_SRV` lines `<node|-1>, "<client process>", "<server process>"` that tie
clients to server instances (`*` = all others). Changing it needs admin rights and a restart.
R1.05 `dss.sup` (compared with R1.03, 2026-10-08): `DSSSDA_QUESZ` 252 → **1000**, new
`DSSMAN_QUESZ = 1000`, and two new routing lines `DSSSDA_SRV = -1, "JRSTSRV", "DSSSDARST"` and
`DSSSDA_SRV = -1, "PYDSS*", "DSSSDAPY"`. The manual (L50 §2.2) does not mention these.
## 2. Quick load directives (`dssqld`)
Besides `@FIELDS`, `@SELECT`, `@LANGUAGE` and `@<DATASET>` (tasks `export-dataset.md`,
`load-remove-records.md`):
```
@LANGUAGE
ENGLISH
@MACRO
RPT_FIELDS,NAME,DESCRIPTION,ADHOC_ENABLED,LIFE_TIME,QUERY
@INCLUDE
"part2"
```
with `part2.qli` in the current folder starting `@FIELDS` / `RPT_FIELDS` / `@<DATASET>` … —
macros must come before any data; includes and macros nest up to 10 deep.
Memo fields (class methods, report queries, logbooks): inline `@"` … `"@` (preferred), empty
`@""@`, or `@"<file>"@`. The file form is read by the server side: use an **absolute path of at
most 82 characters** (relative names fail with `CRL-E-ENOENT`, longer ones with
`DSSG-E-STRBUFSMAL`; ISS-046).
## 3. `dssutl` - read one record interactively
Menu tool on the primary index. Pipe the answers (Git Bash):
```
printf '1\n<dataset number>\n2\n2\n1\n1\n<primary key value>\n-1\n-1\n-1\n-1\n-1\n-1\n' | timeout 30 dssutl
```
= choose a data set › number from the list (first run `printf '1\n-1\n-1\n'` to see the
numbered list, e.g. `REPORT_DF` was 209) › choose a field set › all fields › read equal › enter
the key. Values are raw: dates in seconds since 1970 (local time), intervals as
`<count>.<unit code>` (`10.1` = 10 minutes, `1.3` = 1 day, `1.4` = 1 week), memos as the path of
their container file. The *Modify* menu writes to the running system — use `dssqld -m` instead
unless the user asks for `dssutl`.
## 4. DSS compiler as a syntax checker
To check a `.dss` file (custom dataset or an edited copy) without touching the dictionary:
```
mkdir <scratch>\dss ; copy "%TLS_ROOT_PATH%\tls\src\*.dss" <scratch>\dss (or only your file + dss_global.dss)
cd <scratch>\dss
dss -l -w
```
Without `-d` the compiler only checks; results are in `tlsdic_dss.lst` (`<file> (<line>,<col>):
<message>` and `<n> errors found.`). **Never run `dss -d` without the user's approval**: it rewrites
`%TLS_DAT_PATH%\tlsdic_dss.dic` (host node only) and needs a restart.
## Verified (R1.03, 2026-10-01)
17 DSS processes as listed; installed `dss.sup` routing read; macro + include load of a report;
memo from file (relative fails, 125-character path fails, short absolute path works); `dssutl`
read of `REPORT_DF` record `CIENG_TANK1`; compiler check of all 253 installed files (0 errors,
dictionary unchanged) and of a test file with a missing `>` (1 error, line/column shown).
## Verified (R1.05 test server, 2026-10-08, read-only)
12 `dsssda` and 7 `dssevt` processes; `durwfp` → 0 for `DSSMAN`, `DSSSDA00`, `DSSSDA03`,
`DSSSDAOPC00`, `DSSSDARST`, `DSSSDAPY`, `DSSEVT00`; `dss.sup` and `database_start.cmd` as above;
`@SELECT` filter export of `STATUS_DF` (1 record); compiler check `dss -l -w` of a copy of all
256 installed `.dss` files (254 dataset files plus `dss_global.dss` and `opcuap_global.dss`): no
error lines in `tlsdic_dss.lst`, `tlsdic_dss.dic` date unchanged. New `.dss` files since R1.03:
`alarm_attribute_temp_df`, `api_keys_df`, `iec61850_rcb_df`, `uaserver_mapper_df`,
`opcuac_method_call2_df` (replaces `opcuac_method_call_in_df` / `_out_df`).