Summaries of IM 36K10L50, P30, P20, R40, C30 and E10 (R1.03). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8.7 KiB
| manual | title | edition | version | status |
|---|---|---|---|---|
| IM 36K10L50-01EN | Data Set Service Engineering | 3rd Edition, Sep. 2023 | R1.03 | process layout, dss.sup, dssqld directives (macro, include, memo from file), dssutl read and the dataset notes checked on the test system 2026-10-01; dssana.sup tabs from docs (covered by skill authorization); dsschk see IM36K10J10 notes |
Data Set Service Engineering (R1.03)
DSS (Data Set Services) is the layer through which every CI Server tool and user interface reads
and changes configuration and run-time data: items, alarms, classes, users, history, reports …
all appear as datasets (tables of records with fields). dssqld, the Engineering Module,
REPORT Service, ODBC and the Java/PROCESS APIs are all DSS clients. Section numbers refer to the
manual; "installed" means checked on the R1.03.00 test system.
1. Building blocks (§1)
| Part | Process / file | Job |
|---|---|---|
| API | linked into every client | Opens datasets, talks to the core over the BUS Service (DUR/MDUR) |
| Manager | DSSMAN (one per node) |
Hands each client a DSSSDA/DSSEVT instance (the one it already uses, else the least loaded) and cleans up when clients or servers disappear |
| Data access | DSSSDA (several, -n <name>) |
Executes read / insert / update / delete through the mapping layer |
| Events | DSSEVT (several, -n <name>) |
Event channels (change notifications, flow control) to clients |
| Locks | DSSLCK (-c clears all locks) |
Record locks on the dataset's primary node; frees locks of vanished processes/nodes |
| Watch | DSSWTH |
Creates the DSS shared memory and the authorization/user files, copies dictionary changes from the host node to other nodes, cleans up after crashed clients, moves memo "file containers" |
| Mapping layer | PML + data access servers (dsilib:dsid_das_*) |
Maps a dataset onto ISAM files or another service (ITEM, HISTORY, ALARM …) |
| Data dictionary | %TLS_DAT_PATH%\tlsdic_dss.dic |
Description of every dataset and field; built by the DSS compiler (IM36K10P30-01EN.md) on the host node only |
| Tools | dssqld, dssutl, dsschk, dssxdb |
Quick load/export, interactive read/modify, consistency check/repair, debugger (service use) |
DSS processes start with DATABASE Service (tls\com\database_start.cmd). Installed: besides
DSSWTH, DSSANA, DSSANC, DSSADB, DSSLCK, DSSMAN and the dsschk -s server, the script
starts DSSSDA00–03 (count from %TLS_MAX_SDA_ID%, default 3), DSSSDAOPC00–03,
DSSSDAPRC, DSSSDAOPX (and DSSSDAEEM on an enterprise engineering server) and DSSEVT00–03,
DSSEVTOPC, DSSEVTPRC, DSSEVTFTE — 10 dsssda.exe and 7 dssevt.exe on the test system,
more than the manual's "about 5 per node" advice. On the very first start (database.new) the
script compiles all tls\src\*.dss into the dictionary (dss -d -q -u).
2. Tuning — dss.sup (§2.2)
Heartbeats and DUR queue sizes per process (DSSEVT_HBEAT, DSSSDA_QUESZ …), PML dataset cache
time (DATASET_CACHE_TIME, 600 s), client event slots (EVENT_Q_SLOTS, 100), flow-control
interval (FLOWC). DSSSDA_SRV = <node|-1>, "<client>", "<DSSSDA name>" ties clients to a
dedicated DSSSDA (start that instance in the start script first).
Installed dss.sup: DSSEVT_QUESZ = 1000, DSSSDA_QUESZ = 252, FLOWC = 120; DSSSDA_SRV
routes OPCEXE1–4, OPCACT, OPCJACT, OPCLOA, ALNMGR to DSSSDAOPC00–03, OPX* to
DSSSDAOPX, PRC* to DSSSDAPRC, everything else (*) to DSSSDA00–03; DSSEVT_SRV lines do
the same for events. Further undocumented keywords: EXCL_ACC_EXCEPTION_PROCESS,
CLOG_EXCEPTION_PROCESS, CLOG_EXCEPTION_DATASET (a long list of run-time datasets).
3. Authentication — dssana.sup (§2.3)
DSSANA keeps the list of logged-in users and decides who may start which user interface from
where. The Setup File Editor tabs: General (logout retain time 1440 min, max logged-in /
logged-out users, max 5 UIs per remote client, password hashing Maximal), User Interfaces
(each UI, e.g. JWUIGED = Edit Module, with the hosts/logins allowed and the authorization
action needed), Clients System Trust (host/IP list, Always or Deny, top-down, <remote> /
<local> last), Login control (per client and UI: Automatic, Manual CI Server, Manual
OS, No, SSO, Deny; profile for No login; failed-login delay 5 s), Active Directory
and Single Sign On (phase 13), Password rules (length, digits, punctuation, mixed case;
all off by default), Logging (Basic/Extended/Maxima into tls\log\dssana.log, cyclic,
10 MB). Practical use: skill authorization (users-groups.md, login methods).
4. Quick load files and dssqld (§3)
File format (.qli): ! comment lines; marker lines starting with @ (@<DATASET>, @MACRO,
@INCLUDE, @LANGUAGE, @SELECT, @FIELDS); data lines with comma-separated fields; \ at the
end of a line continues it. Unquoted text is upper-cased, quoted text kept; "" inside a string
is a quote. Escape character, separator and continuation character can be changed in
dssqld.sup.
| Directive | Use | Verified |
|---|---|---|
@FIELDS |
Field list for the next dataset block only; missing fields get defaults (dssqld -f) |
yes (all phases) |
@SELECT |
Filter for the next dataset on export only, in single quotes, strings in double quotes | yes (ISS-003) |
@MACRO |
<name>,<text…>; later occurrences of the name are replaced (nesting ≤ 10); must come before the data |
yes: field list as macro |
@INCLUDE |
One file name per line (.qli default), nesting ≤ 10 |
yes |
@LANGUAGE |
ENGLISH makes a file load on any language version |
yes (all sample files) |
Field types: string, number, date/time (exported as "dd-mm-yyyy hh:mm:ss", the form to load),
interval ("10 Minutes", "1 Days", "1 Weeks"), memo (@""@ empty, @" … "@ inline
text, or @"<file>"@ text from a file).
Installed — memo from a file: the file name is read on the server side, so a relative name
fails (CRL-E-ENOENT); an absolute path works but is limited to 82 characters
(DSSG-E-STRBUFSMAL). Inline memos are the safer choice (ISS-046).
Options: -i insert, -m modify, -r remove, -e <out> [<qli>] export (all datasets except the
NO-EXPORT list in dssqld.sup, or what the qli names), -c CSV, -a concealed fields, -d
one dataset, -f dictionary report, -l listing, -s setup file. Exports may need reordering
before re-import (circular references: stations ↔ items, first-out groups, classes).
%TLS_DAT_PATH%\dss_export.qli is a ready-made export list. Task files: skill system-management
(export-dataset.md, load-remove-records.md).
5. dssutl (§4)
Interactive menu tool to read and modify single records via the primary index: choose a dataset
(numbered list), a field set (Primary index only, All fields or a saved selection of ≤ 20
fields), then Read equal, Read sequential or Modify (change fields, Perform update).
Installed: works with piped answers; values are shown raw (dates as seconds since 1970 in
local time, intervals as <count>.<unit>, e.g. 10.1 = 10 minutes, 1.3 = 1 day; memos as their
file path). Modifying data on a running system affects running applications — prefer dssqld -m.
Task: skill system-management, dss-tools.md.
6. Consistency (dsschk, §5)
dsschk -s (server, started per node) and the client dsschk [-d <set>] [-n <node>] [-e] [-r] [-v] (extended test, repair, verbose). See IM36K10J10-01EN.md and task
consistency-check.md.
7. Dataset notes (Appendix 1)
Special behaviour per dataset (only the ones not covered elsewhere): ALARM_ASA_DF compiles when
COMPILE is set; ALARM_CURRENT only ACK can change; ARCHIVE_COMMAND drives the archive
engine (initialise/mount/register tape, manual archive, retrieve, cancel; phase 9 notes);
AUDIT_EVENT_CLAS_DF only STORAGE changes; AUTH_ACTION_DF, DATASET_*, HOST_NODE_DF,
LOCAL_NODE_DF read-only; CLASS_DF COMPILE/RESET; DISPLAY_DF / SYMBOL_DF names only,
insert copies a template, REBUILD; FOLDER_DF deletable only when empty; HIS_GROUP_DF only
item groups can be added, FORCE_ROLLOVER; HIS_UNITS deleting a record deletes the unit;
ITEM_HISTORY always needs ITEM_NAME, inserts only into Direct groups, no events; ITEM_VAL
value/status/quality (BLOCKED_UPDATE for blocked items, status must be written too over ODBC);
OBJECT_DF prompts via ATTR_VALUE_n, DEBUG; OPC_SERVER_DF / OPC_STATION_TAG_DF read with
mandatory filter; PRINTER_* devices/destinations (written by the printer manager for _OVV
and _TYPE); REPORT_DF / REPORT_VAL see IM36K10C30-01EN.md; SEQUENCE_DF COMPILE;
STATION_DF REDUN_LINE.