---
task: Check PROCESS Service with opcdbg (database check, classes, objects, performance)
version: R1.03
source: IM 36K10L10-01EN §4; practiced on the test system with CI-Eng-Sample 2026-09-30
status: 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
` starts in a menu on node 0 (this node). Times are printed in **GMT**.
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\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\n\n-1\n-1\n' \| timeout 20 opcdbg 0` | Same; `Compiled at : 0` = never compiled |
| Object details | `printf '3\n4\nN\n\n-1\n-1\n' \| timeout 20 opcdbg 0` | Priority, control item id, times, cls_id/obj_id |
| Object status | `printf '3\n18\n\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.