Four questions about one change
A routing investigation starts by separating four questions: what was approved, what was copied, what the process loaded, and what happened to the request. Each question needs its own evidence. In the workshop, two frontends receive a file containing a new reporting URI. The north copy matches the approved artifact; the south copy differs. That directs investigation but does not prove north loaded the file. Record frontend identity, configured path, time, version, and the test request. Avoid recording only “plugin updated”, because that phrase hides stages that can have different outcomes.
Local artifact inspection
The included laboratory creates original temporary files and reads them with ElementTree. The parser rejects malformed XML but accepts syntax that may contain references without targets. A second step therefore inventories names and checks references within the defined subset. A Route referring to missing-uri without a corresponding group appears in the report. The check also detects duplicate names before converting them into a dictionary, preventing one entry from hiding another. This script does not know the complete IBM schema, execute wildcard matching, or load a plugin. Use it to practise inspection and evidence boundaries, rather than as deployment authorization.
Digest, content, and effective path
A digest answers a question about bytes. If two copies have different SHA-256 values, investigate the difference; if they match, you still need to establish expected provenance and process use. In the exercise, adding line breaks changes the digest without changing fields selected by the inventory. That does not establish complete equivalence because the inventory ignores other attributes. Useful comparison connects the file to the actually configured path and the identity reading it. Plugin documentation explains that reload conditions depend on the mechanism in use. Do not infer adoption solely from copy time or use a general restart instead of identifying the path.
Controlled experiment through the affected path
In a fictional funds portal, compare the same report through both frontends with sufficiently similar parameters, identity, and timing. If only south fails and lacks a URI present in approved configuration, propagation is a concrete hypothesis. Also establish the observed host and port, because testing 8443 is not automatically equivalent to testing 443. The lab compares only literals and identifies that difference; real interpretation requires complete configuration. If a cache responds before the plugin, old content may persist without a new JVM execution. Locate the responding component before repeating deployments or changing connection pools.
Interpret timing without inventing a cause
WAS access logs can distinguish total HTTP time from service time up to the first byte. In the fixture, %D is 900000 and %{R}W is 120000 microseconds: these are 900 ms and 120 ms. The second value is included in the first, so do not add them. The 780 ms difference directs investigation toward remaining delivery, including client and intermediaries, but does not directly measure SQL. The heuristic has limits when streaming or intermediate flushing occurs. Record format, units, and response behavior before comparing. Use controlled identifiers and a useful time window, avoiding cookies or credentials in broadly accessible tickets.
Diagnostic and team handover guide
Run the local lab, identify the differing copy, and explain why readable XML can remain inconsistent. Then prepare a record containing the hypothesis, supporting evidence, missing evidence, and the next reversible step. In the fictional situation, the action is to correct propagation within approved scope and confirm adoption and response through south. Diverting everything to north is acceptable mitigation only after assessing capacity and continuity. In handover, include success criteria, monitoring, owners, and a way to return to the previous state. Summarize separately what the lab demonstrated and which checks still require an authorized WebSphere environment.
# LOCAL ARTIFACT LAB: original fixtures; no WebSphere process
python3 content/labs/was-routing/run.py
# front-b.xml differs; /reports/* absent from selected inventory
# XML parsing!= IBM schema validation!= runtime adoption
# Synthetic timing: 900000 us total; 120000 us service; difference 780 msNorth has the approved copy and south lacks /reports/*. Local comparison identifies the difference; resolution requires loading confirmation and a request through south.
Common pitfalls
Confusing parsing with IBM validation; ignoring duplicates; treating a digest as loading proof; adding included times; exposing cookies in a ticket.
Related topics: Topology and configuration · Deployment and routing · JVM and diagnosis
Connect artifact, copy, process, and request. Always state test scope and the missing observation before declaring the path recovered.
Reference: WAS Webserver Plug-in FAQ · BigSavant WebSphere traditional ND 9.0.5; maintenance baseline 9.0.5.29 (2026-09-08); documentation reviewed 2026-09-30