Everything on this page traces to a Pulse MCP call. The fortnight has 55 named users and a steady weekday rhythm, but the lock picture is not spread across it — 44 of 51 sampled lock waits fall on a single morning, and they queue behind one runaway MDX query while a hierarchy rebuild was underway.
Pick a day. Bars show lock-wait alerts in red and logged sessions in blue; the orange tick above a column marks a day where Pulse's source-control scan recorded a model change.
55 named users in the window. Service accounts are marked; r* chore threads are excluded because they are automation, not people.
| User | Sessions | Connected min | Avg session | Sessions |
|---|
Engine work is derived as connected minutes × running % — Pulse returns the percentage, not the minutes. Connected time is a poor proxy for load: Andrew Whitfield holds 1,376 connected minutes at 0.95% running, while Ben Halloway turns 514 minutes into 105 minutes of actual engine work.
Five commits landed in the window. Pulse's source-control scan runs at 01:45, so a commit stamped 9 Sep captures work done on 8 Sep — the scan time is not the edit time. Read that way, the changes line up with the locks rather than merely coinciding with them.
}Temp_FIN BSEG 3.dimx appears on 8 Sep and is gone by 9 Sep, replaced by a new TI process Dim.FIN BSEG 3.Create Northwind Hierarchy.pro. That is the signature of interactive hierarchy surgery later formalised into code. The lock samples show the same work from the other side: Adrian Koval in Arc issuing tm1.SetComponent against FIN BSEG 3 / Northwind Org Structure for elements Northwind Admin and Northwind G and A.
}CellSecurity_FIN General Ledger.RUX changed on 9, 10 and 11 Sep — 45 lines swapped, then 15 added, then 9 more. FIN General Ledger.RUX itself was rewritten almost line for line on 11 Sep (185 insertions, 184 deletions). Rule and security churn on the same cube across consecutive days is worth a review pass on its own.
Every structural dimension change touches }DimensionProperties. So does }APQ.Dim.ControlDimensionCopies.Update, the APQ housekeeping step. 20 of 51 sampled waits are on that one control cube — more than every other contended object combined.
A single ExecuteMDX thread ran 4h 48m and became the head of the whole chain. Nothing else on this page matters as much: without it, the housekeeping chore would not have waited 2h 33m and Adrian Koval's dimension edits would not have waited 15 minutes each.high impact · low effort · Pulse Live Monitor can cancel; a query timeout prevents recurrence
The FIN BSEG 3 and FIN BSEG 1 hierarchy builds were done interactively in Arc against the live model. The finished TI processes now exist — run those in a window instead of hand-editing.high impact · medium effort · needs a process change, not a config change
Both take write locks on }DimensionProperties and both appear as the middle link in these chains. They are housekeeping and can run when nobody is editing.medium impact · low effort · schedule change in the Pulse UI
Logging stopped after 7 Sep. The worst lock day in the fortnight has thread samples and alerts but no session records, so the users caught in it cannot be enumerated — only the ones Pulse happened to sample.medium impact · low effort · but it is blocking future analysis
Session and operation logging for this service stops after 7 Sep — a Service Is Offline alert fired that day, and operationsByDay reads 0 from 8 Sep onward while threads and alerts keep recording. So the user table covers 29 Aug – 7 Sep, while locks and alerts cover the full fortnight. Alert history itself only reaches back to 1 Sep. Lock waits come from Pulse's periodic thread samples, roughly every two minutes, so short waits between samples are invisible and the 51 count is a floor, not a total. Commit authorship is SYSTEM for all five commits — Pulse's scanner, not the person who made the change, so the changes cannot be attributed to a named user from this data.