8.5 KiB
| 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_slvon Windows), started bytls\com\durm_start.cmd, configured intls\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 bydurutlfrom a master node listed withlnm_node = …indurutl.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 frommessages.umh; dynamic values are inserted by name; several codes can form one history entry. umhlogwrites totls\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:umhmanwith piped input,umhmsg(message appears inumhlog.log) andumhtestprogwork; 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); otherwiseLST_OFFSET(minutes, positive = west),LST_NAME,LCT_NAME,CHANGElines; month/day abbreviations. Reload via the DUR display utility. Installed file still has the Central European example values (−60, MET/MEST); they are ignored whileAUTOMATICis set.- Node time sync with
durutlon the master:tms_params = <interval s>, <limit1>, <limit2>, <limit3>, <step2>, <step3>and onetms_node = <n>per slave; beyond limit3 the slave is set at once and an error is logged. External clock (serial Wharton/Trimble/Arbiter) withdurecsanddurecs.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.