ci-server-engineer/.claude/skills/system-management/tasks/dss-tools.md
cliu d7e30fa46e Add reporting skill and DSS tools task
New skill reporting: REPORT Service checks, interactive RQL, report
definitions by quick load, file output devices. New task
system-management/dss-tools.md: DSS processes, dss.sup, quick load
directives, dssutl, DSS compiler syntax check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 16:17:02 +10:00

81 lines
3.5 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: DSS (Data Set Services) checks and tools - processes, dss.sup, quick load directives, dssutl, DSS compiler syntax check
version: R1.03
source: IM 36K10L50-01EN §1, §2.1, §2.2, §3, §4; IM 36K10P30-01EN §2, §3; practiced on the test system 2026-10-01
status: verified
---
# 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).
`durwfp -p dssman -t 0` tests one by its BUS Service name (`DSSSDA00`…, `DSSSDAOPC00`…,
`DSSEVT00`…). Started by `tls\com\database_start.cmd`; the number of general `DSSSDA` comes from
`%TLS_MAX_SDA_ID%` (default 3 → `DSSSDA00`–`03`).
`%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.
## 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 (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).