47 lines
3 KiB
Markdown
47 lines
3 KiB
Markdown
---
|
||
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
|
||
<menu>` 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<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.
|