--- 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 `, "", ""` 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 `@` (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` / `@` … — 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 `@""@`. 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\n2\n2\n1\n1\n\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 `.` (`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 \dss ; copy "%TLS_ROOT_PATH%\tls\src\*.dss" \dss (or only your file + dss_global.dss) cd \dss dss -l -w ``` Without `-d` the compiler only checks; results are in `tlsdic_dss.lst` (` (,): ` and ` 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).