ci-server-engineer/.claude/skills/class-object-engineering/tasks/opcdbg-checks.md
cliu 2fd32fbf22 R1.05 V14: OPCJEXE does not answer opcdbg performance requests
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>
2026-10-09 11:11:51 +11:00

4.1 KiB
Raw Permalink Blame History

task version source status
Check PROCESS Service with opcdbg (database check, classes, objects, performance) R1.05 (first written for R1.03) IM 36K10L10-01EN 4th ed. (Feb. 2026) §4; practiced on the test system with CI-Eng-Sample 2026-09-30 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

` 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.