3 KiB
| task | version | source | status |
|---|---|---|---|
| Check PROCESS Service with opcdbg (database check, classes, objects, performance) | R1.03 | IM 36K10L10-01EN §4; practiced on the test system with CI-Eng-Sample 2026-09-30 | verified (read-only actions and Reset class) |
PROCESS Service checks with opcdbg
opcdbg is interactive. Answers can be piped in, one per line, in Bash; always add a time-out
and end with -1 lines, because on end of input it repeats the last prompt forever. `opcdbg 0
Only the actions below are read-only. Do not use insert/modify/delete, Database repair, Reset (utilities) or Modify attribute value without the user's approval.
| Check | Command (Bash) | Output |
|---|---|---|
| Database consistency | printf '5\n-1\n-1\n' | timeout 60 opcdbg 0 5 |
Counts per store (trigger groups, classes, sources, code, objects, signals, attributes), then checks; warnings such as No compiled code found for class (cls_id = …) |
| Class details | printf '2\n5\nN\n<CLASS>\n-1\n-1\n' | timeout 20 opcdbg 0 |
Language, priority, modified/compiled times, cls_id, objects derived / reset, hidden |
| Class by id (from a warning) | printf '2\n5\nI\n<sec>\n<seq>\n-1\n-1\n' | timeout 20 opcdbg 0 |
Same; Compiled at : 0 = never compiled |
| Object details | printf '3\n4\nN\n<object>\n-1\n-1\n' | timeout 20 opcdbg 0 |
Priority, control item id, times, cls_id/obj_id |
| Object status | printf '3\n18\n<object>\n-1\n-1\n' | timeout 20 opcdbg 0 |
Total runs, executor (Running in : 1, OPCEXE1) |
| Object signals / attributes | 3 then 14 / 12, object name |
Signal → item id; attribute → type (LOCAL/GLOBAL) |
| Executor statistics | printf '0\nOPCEXE1\n1\n-1\n-1\n' | timeout 20 opcdbg 0 4 |
Active classes/objects/trigger groups/items, number of executions; times stay 0 unless STATISTICS = YES in opc.sup |
Executor names on R1.03: OPCEXE1…OPCEXE4 (Traditional, priority ranges 0–249 … 750–999)
and OPCJEXE (Java). The prompt's default OPCEXE does not exist.
Easier for names: the datasets OBJECT_SIGNAL_DF (object:signal → item name) and
OBJECT_ATTR_VAL / CLASS_ATTR_VAL (attribute values) via dssqld -e with a filter — see
traditional-class.md §3.
Dumps
Utilities 3 / 4 (printf '3\nclasses.qli\n4\nobjects.qli\n-1\n-1\n' | timeout 30 opcdbg 0 5)
write all class sources / objects to files in the current folder. The format is an old one
(NAME,"description",priority then source lines starting with - ) and dssqld -i rejects
it (DSS-E-UNK_DS_NM, ISS-027). To move classes and objects to another system, export
CLASS_DF and OBJECT_DF with dssqld -e instead (task load-class-object.md; migration in
knowledge/manuals/IM36K10J10-01EN.md §5.6).
Observed on the test system
The database check reported one warning for a class SINUS (not from this repo) that was
never compiled; everything else was consistent. A class like that is harmless but can be
compiled or removed by its owner.