Re-checked on the shared R1.05 test server: OPCEXE1 answers at once, OPCJEXE never does (attached, nothing logged); the waiting debugger was stopped. opcdbg-checks.md, ISS-157, progress and r105-verification updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
59 lines
4.1 KiB
Markdown
59 lines
4.1 KiB
Markdown
---
|
||
task: Check PROCESS Service with opcdbg (database check, classes, objects, performance)
|
||
version: R1.05 (first written for R1.03)
|
||
source: IM 36K10L10-01EN 4th ed. (Feb. 2026) §4; practiced on the test system with CI-Eng-Sample 2026-09-30
|
||
status: verified on R1.03 (read-only actions and Reset class). On R1.05 (2026-10-09, read-only) the database check and the OPCEXE1 performance main info gave the same prompts and output layout; the Java executor statistics did not answer to piped input (ISS-157, awaiting user verification); the other actions were not re-run
|
||
---
|
||
|
||
# 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 and R1.05 (same `opc.sup`): `OPCEXE1`…`OPCEXE4` (Traditional,
|
||
priority ranges 0–249 … 750–999) and `OPCJEXE` (Java). The prompt's default `OPCEXE` does
|
||
not exist.
|
||
|
||
**The Java executor `OPCJEXE` does not answer** the performance request (R1.05, re-checked
|
||
2026-10-09, V14): `opcdbg 0 4` with `OPCJEXE` waits forever, while the same input for `OPCEXE1`
|
||
returns at once (main info: active classes, objects, trigger groups, items, executions).
|
||
`OPCJEXE` was attached (`durwfp` 0) and nothing was logged in `umhlog.log`. The waiting debugger
|
||
stays as a process: stop it (`taskkill /pid <pid> /f`) — it changes nothing. For Java objects use
|
||
the object status (`3`, `18`) instead (ISS-157). Not checked on R1.03.
|
||
|
||
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 systems
|
||
|
||
R1.05 test server (2026-10-09): the database check read every store and reported no
|
||
warning; `OPCEXE1` main info listed active classes, objects, trigger groups and items and the
|
||
execution count, with all times 0 (`STATISTICS = NO`, as on R1.03).
|
||
|
||
R1.03: 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.
|