ci-server-engineer/knowledge/manuals/IM36K10L30-01EN.md
2026-10-01 18:09:27 +10:00

8.5 KiB
Raw Permalink Blame History

manual title edition version status
IM 36K10L30-01EN BUS Service Engineering 3rd Edition, Sep. 2023 R1.03 from docs; installed tools, setup files (dur.sup, durm_1_udp.sup, time_table.sup, fmfprt.sup, durutl.sup) and durm_start.cmd checked read-only 2026-10-01; durwfp verified; umhman, umhtestprog, umhmsg verified after a fresh start (ISS-030)

BUS Service Engineering (R1.03)

BUS Service is CI Server's messaging layer ("DUR", Dynamic User Region): every CI Server process attaches to a shared memory area and gets a queue (mailbox) under its DUR name; processes talk by messages. It also does error-text management (UMH), node-to-node links (MDUR), time handling, printer management and process control utilities. Section numbers refer to the manual.

1. Processes (§1.2)

Process Role
durini Initialises DUR at start, then exits
durtim Runs every second: system time, summer/winter time, queue time-outs, checks that processes still exist (DUR-W-REM_PROC, Process <x> exited unexpectedly), clock queue
durprt Writes intercepted messages to tls\lst\DURPRT.out (debugging; leave running)
umh / umhlog Build error texts from codes (tls\dat\messages.umh) and write them to the message log (umhlog.log)
Optional dur (DUR display utility, interactive), durbat (start processes on request, also remote), durclq (finer clock-queue resolution: durclq 50 = 50 ms), durdbg, durutl (logical addresses, node time sync), durecs (external clock), dursim, durstp, durwfp, umhcr, umhlogtoo, umhman, umhmsg

Process names: fixed (e.g. UMH), PID<n> when none given, or set with -n <name> (most CI Server executables, e.g. opxuas -n opxuas).

2. Messages and nodes (§2–§4)

  • Requests are asynchronous; CI Server makes them synchronous with a reply required flag. The server converts data between different computer architectures.
  • MDUR (§3): one durm_<line> process pair per network line (durm_udp + durm_udp_slv on Windows), started by tls\com\durm_start.cmd, configured in tls\sup\durm_<line>_udp.sup: line, quality (lower = preferred line), io_timeout (default 8000 ms, 8 checks), portnr (same on all nodes of one line; > 17000 advised), max_snd, cluster, compress, connect_delay, max_poll_int, our_host_name, remote_set (up to four nodes sharing one node number = redundant set). Redundant nodes only over TCP/IP. durmdbg -q <durm> -f <file> traces a line; always stop with -s.
  • dur.sup: node number, host_node, rout_type (ENDPOINT or ROUTER for multi-node routing), sizes (pool_kbytes, dur_max_proc).
  • Logical addresses (§4): node −1 in an address = look up a table (durlnm.dat), distributed by durutl from a master node listed with lnm_node = … in durutl.sup.

Installed (single node): dur.sup host_node 0, pool_kbytes 250000, dur_max_proc 250, rout_type 2 ENDPOINT; durm_1_udp.sup line 1, quality 500, io_timeout 8000, portnr 17001, plus keywords not in the manual: sndportnr 17101, ip_adr_method IPv4, ENABLE_DURMS N, 0 (host-host encryption, §13); durm_1 is running although there is no second node; durutl.sup has no active lines.

3. Messages and the message log (§5, §6)

  • Codes look like FAC-S-ACRONYM (S = S/I/W/E/F). Text comes from messages.umh; dynamic values are inserted by name; several codes can form one history entry.
  • umhlog writes to tls\log\umhlog.log; -d <node> also logs centrally on another node, -q <printer queue> prints too.
  • Tools: umhtestprog (tests the message path), umhmsg <hex code> [<var> <value>]… (issue a message from a script), umhman (look up a hex code, interactive), umhlogtoo (copy of all messages to a terminal). Verified after a fresh start: umhman with piped input, umhmsg (message appears in umhlog.log) and umhtestprog work; late in an unlicensed session they crashed or reported "license expired" (ISS-030).
  • A message shown as UMH Message Text Error: Message number <hex> (…) means the text could not be formatted (e.g. a % in a PRINT text, ISS-025).

4. Time (§7, §8, §11)

  • time_table.sup: AUTOMATIC (installed) = BUS Service takes summer/winter times from Windows at start (scans ±15 years); otherwise LST_OFFSET (minutes, positive = west), LST_NAME, LCT_NAME, CHANGE lines; month/day abbreviations. Reload via the DUR display utility. Installed file still has the Central European example values (−60, MET/MEST); they are ignored while AUTOMATIC is set.
  • Node time sync with durutl on the master: tms_params = <interval s>, <limit1>, <limit2>, <limit3>, <step2>, <step3> and one tms_node = <n> per slave; beyond limit3 the slave is set at once and an error is logged. External clock (serial Wharton/Trimble/Arbiter) with durecs and durecs.sup (ecs_params). On Windows normally use Windows time (system-check, w32tm).

5. Process control utilities (§10)

Command Use
durwfp -p <name> [-t <s>] [-e] Exit 0 if the process is attached (waits up to -t, default 60; -t 0 = check now); -e waits for it to go away. Verified: umh, opcman → 0, unknown name → 1
durstp -m -p <name> Send a stop message (clean stop). -k kills, -m -k = stop, then kill after -t s; -f kills even with the common area locked (dangerous); * wildcard (-p alm\*). Never durstp -k -p \*
durbat Starts processes on request from other processes (also remote)

durstp stops CI Server processes: use only with the user's approval.

6. Printer management (§12)

FMFPRT (printer manager, one per node) and one FMFP_<device> process per device (first 8 characters of the device name must be unique). Destinations (logical, e.g. SCREEN_CAPTURE, ALARMS, MESSAGES, DEFAULT) map to devices (instances of an output type) with an optional backup device. Configured in fmfprt.sup; devices and destinations in datasets PRINTER_DEV_DF, PRINTER_DEST_DF, PRINTER_TYPE_DF, PRINTER_OPER_DEST_DF (job/device lists PRINTER_JOB_OVV, PRINTER_DEV_OVV).

Installed fmfprt.sup: QUEUE_LIFE 1800 s (stalled job expires), MAX_JOBS_SHOWN 10, DEVICE_POLL 5 s, MAX_BUSY 60 polls; output types HARDCOPY (fmfphc, Windows printing, Courier New 8 pt, 72 lines, landscape), FILE (fmfpfl, file name TLS_%time:DDMMYY%_%seq:03%.lst in tls\lst), APPLICATION (fmfpap, program set to Internet Explorer); fixed destinations ALARMS→ALDPRT, AUDIT_TRAIL→ADTLOG, MESSAGES→UMHLOG, PRINTER_1→RPTMAN, SCREEN_CAPTURE→CWSSHOT. NODE_SHARE = <node|-1> shares printers between nodes. Logging processes do not print by default (enable per process: aldprt.sup LOGPRT, adtsys.sup PRT_DEV, umhlog -q).

The CI Service account must have the printers; DEFAULT uses that account's default printer. Clean-up after a crash: stop CI Server, empty tls\lst\printing, delete tls\sav\fmf_prt_last_id.sav, fmfprt.sav and tls\dat\printer_job_ovv.*, start.

7. MDUR encryption (§13)

Host-host encryption (AES-256, certificates) between CI Cores: every node must use it; no enterprise configurations. Keys: gen_key is_ca=1 once (CA key), gen_key is_ca=0 on each node → %TLS_ALLUSERS_PATH%\pki\mel\dur\key; certificates with the interactive cert_write (CA certificate to …\pki\mel\dur\crt\ca\ca.crt on every node, node certificate to …\crt\own; create the folders first; log tls\log\cert_write_log.log). Then tick Enable HostHost encryption in each durm_x_udp.sup (installed keyword ENABLE_DURMS). Keep the CA key off the servers. Not practiced (single node; tls\pki\mel does not exist yet).

8. Adaptive queues (§14)

Each process has a fixed queue (the adaptive minimum); for processes listed on the Adaptive queues tab of dur.sup (ADAPTIVE_QUEUE_SETS = <process>, <percent>), DUR may grow the queue temporarily by up to that percentage of the total queue area, avoiding overflows during bursts. Add node queues for multi-node systems and new processes (extra executors, DSS servers, equipment managers). In the performance monitor Minimum KB/Maximum KB/Current KB and a high-queue of 100 % show that a queue needed more space → raise its size. Total area exhausted → DUR_F_NO_SPACE.

Installed: ALM 10, ALH 10, WFLGDI 20, WFLCDI/WFLIDI/WFLADI/ITHEIX/ITHSER 2, DSSSDA*/DSSEVT*/OPCEXE 1 %. Note: OPCEXE does not match the installed executor names OPCEXE1…4 (no wildcard) — see ISS-026.