# QuickFIX/J production session observations — 2026-10-02

The separate `QFDacSession` driver uses QuickFIX/J 2.3.1's production
`SocketInitiator` / `SocketAcceptor`, memory stores and FIX 4.4 dictionary
validation. It retains complete four-flow local diagnostic evidence. The
existing installed Java payload and its historical grades remain separate.

## Clocks and observations

The public `Session` responder hook observes the engine's fully serialized
String immediately before its production `Responder.send` handoff. The tick
start clock includes the subsequent MINA enqueue, encoding, transport and
reply path. It must not be described as a timestamp after a completed socket
write. The wrapper forwards the same String, actual acceptance result,
disconnect and remote address. It leaves production framing, sequencing,
dictionary validation, store and IO in QuickFIX/J.

Tick end is captured on entry to `fromApp`, before extraction or evidence
capture, and accepted after required-field checks. The owner retains complete
HFTBRW1 `end_to_end` and `scheduler_delay` series. Incoming wire evidence uses
the engine's original `Message.toRawString`, avoiding reserialization.

Measured-window admin counters and complete events come from incoming admin
callbacks and accepted outgoing responder handoffs. Setup and logout remain
outside each role's window. A separate TestRequest/Heartbeat probe verifies
matching `112=QFS5-PROBE` frames on both roles. Counts are checked against the
actual retained events; missing observations cannot become inferred zeros.

Order payloads walk the common quantity/price tables and parsed-marker side
rule. All twenty book entries are extracted and folded, with validated
bid/ask counts, prices and integral sizes. Reactive orders use the current
marker and extracted touch. Execution reports extract all required ACK
fields. Cross-engine generator/sink alignment remains an explicit blocker.

## Retained checks

[Evidence](evidence/quickfixj-session-observed-20261002/) retains compiled
source snapshots, dependency/executable hashes, controller snapshots, wire
cycles, raw series and actual admin events under `SHA256SUMS`. The build uses
SCAN OpenJDK 17.0.20.1 and `javac --release 8`.

- Twelve functional pairs pass under a quiet CPU lease: all four flows with
  five warmups, no warmup and a measured admin probe. Each owner retains
  twenty primary and twenty delay samples; twelve varied complete wire
  cycles per pair pass canonical and reactive-derivation audits.
- Twenty-five responder/raw-wire checks pass, with zero skips. They prove
  the clock precedes the production handoff, non-snapshot frames do not
  update it, accepted/rejected sends preserve their actual result, original
  received bytes stay intact and admin JSON preserves control characters.
- Forty-five extraction checks pass, with zero skips: known full-book touch,
  last-entry mutation, missing required book/order/ACK fields, malformed
  prices/sizes and invalid ACK values. Test fixtures use `TestTempFiles` and
  are removed at JVM exit.

The initial twelve-pair build is also retained. It rendered incoming callback
messages with `toString` and used a shared lease while pinned to isolated
CPUs, overlapping another session's isolated work. Its results establish no
rate or isolation claim. The final functional run uses the original received
bytes and an actual `isol-no-shared` lease with disjoint masks `10-13` /
`14-17`.

## Quiet SCAN rate diagnostic

The same final payload completes three fresh pairs per flow after 1,000
warmups, retaining all 30,000 primary and delay samples per flow. The requested
rate is 10,000 cycles/s; the actual quiet lease and full canonical/admin/clock
checks pass. Achieved rates are:

| Flow | Achieved cycles/s, three runs |
|---|---|
| `nos_er` | 2262.501 / 2188.755 / 2178.782 |
| `md` | 1574.907 / 1559.814 / 1621.430 |
| `md_nos_er` | 1009.759 / 1010.808 / 994.781 |
| `tick_to_trade` | 1975.426 / 2014.627 / 1983.381 |

All percentile stability checks pass. Every flow misses both the achieved-rate
and scheduler-delay gates. Physical topology and comparison-fixture alignment
remain explicit blockers. These diagnostics do not promote the installed
QuickFIX/J arm or establish a new Stage-5 comparison.

## Quiet HP rate diagnostic

The same nine-file runtime completes three fresh pairs per flow under a
high-priority `isol-no-shared` lease on HP, with disjoint masks `8-12` /
`13-17`. All 30,000 primary and delay samples per flow and all canonical,
admin and clock checks are retained in `hp-medium/` under the evidence seal.

| Flow | Achieved cycles/s, three runs |
|---|---|
| `nos_er` | 3647.726 / 3700.802 / 3705.704 |
| `md` | 2585.988 / 2590.889 / 2603.288 |
| `md_nos_er` | 1610.086 / 1587.426 / 1640.569 |
| `tick_to_trade` | 3405.636 / 3318.446 / 3266.217 |

All percentile stability checks pass. All four flows still miss the rate
and delay gates; localhost topology and unaligned comparison fixtures remain
blockers. The controller exits 1 for those diagnostic gate failures, after
all twelve pairs pass their functional checks.

## Physical integration

`run_dac_quickfixj_session.py` reuses the FIX Antenna physical controller's
counter, raw-sample, admin, wire and grading logic with QuickFIX/J's explicit
identity and responder boundary. It reads the actual HFTBRW1 observations,
requires twelve complete varying received cycles, and retains fixture
alignment as an explicit promotion blocker. The fixed launcher selects
SCAN's mlx5 or HP's Solarflare namespaces and disjoint masks, bounds its
typed arguments and process lifetime, clears Java/loader injection settings,
and requires a fresh root-owned output directory.

The separate `install-dac-quickfixj-session-stage5.sh` admits only the
nine-file self-contained `quickfixj-session-observed-v2-20261002` runtime and
the exact launcher. The full runtime tree SHA-256 is
`5a5ee905a09df080670f29be329244b6c15605c327577f5dbe06abb5ca16fc5e`;
named dependency and launcher hashes are declared in
`quickfixj_session_payload.py`. Controllers verify root ownership, lack of
symlinks, non-writable installed inputs and the complete tree before running.

Thirty-three QuickFIX/J physical gate checks use the retained quiet
functional evidence and reject missing artifacts, changed admin/clock
observations, short wire proofs, changed runtime inputs and invalid launcher
arguments. Together with the existing FIX Antenna, QuickFIX/n and .NET report
regressions, 117 Python checks pass. Root admission and physical runs remain
pending; this integration does not create a Stage-5 pass.

## Exact numeric and ACK-correlation correction

A separate source generation replaces hot-path `BigDecimal` construction with
checked scale-five prices and integral int64 quantities. It preserves every
original generated price byte and the complete FNV book sink. The sent-order
price and size are explicitly visible to the callback thread; ACK extraction
now refuses a price or quantity differing from the actual sent order. Reactive
orders must match their selected touch and clipped quantity.

SCAN passes **25 responder checks**, **52 payload checks** and **3 Java numeric
tests**, with zero skips. Tests retain the original full-book golden sink,
check every generated price against the original decimal implementation and
reject malformed/overflowing numbers, wrong reactive orders and uncorrelated
or changed ACKs. The tested JAR SHA-256 is
`d101dd9518c49efa0ff8528676a0b57c2229becc1c85acf24e5446aaeabbfe34`.
The six compiled source snapshots and original build journal are retained in
`build-numeric-scan/`. The earlier duplicate-variable compile failure and
queue admission errors are retained separately in `failed-numeric-compile/`.

HP also passes all 77 responder/payload checks and three Java tests with zero
skips. Its tested JAR is
`f0c4531897b0c702d67d824e422a7fcb62b26e09dd42bf6fb51c9a50c7d1e8c5`.
All twelve actual functional pairs pass there under a high-priority isolated
lease alongside shared conformance work. Their manifest records
`quiet_cpu_lease=false`; they establish no report timing. The original 309
sealed files are retained in `numeric-functional-hp/`. Its quiet full matrix
also completes; the results below retain its failed timing gates. The original
v2 physical payload remains hash-pinned; the new
local generation still requires shared-fixture and physical admission.

SCAN's corrected quiet matrix completes all twelve functional pairs and three
10,000-sample primary/delay pairs per flow after the original 1,000 warmups.
NOS reaches 2,143–2,222/s, MD 1,602–1,630/s, mixed 987–1,008/s and tick-to-trade
1,995–2,018/s. All four retain rate and scheduler-delay failures; all percentile
stability checks pass. The source correction establishes stricter numeric and
correlation checks, with no demonstrated rate improvement. All 618 original
sealed files are verified and retained in `numeric-scan/`; the failed gates
are preserved. These remain local diagnostics.

## Shared canonical owner extraction

The next source generation imports `CanonicalWire` and `ExtractionSink`.
It uses `LCOM1`, one-based numeric markers, the shared price/quantity tables,
canonical bid/ask level values and sizes, and the common ACK identifiers.
Measured markers restart at one after excluded warmup. Reactive orders take
marker, symbol, side, touch price and size from the actual parsed snapshot;
every received book level is validated before its sample is accepted.

The measured owner folds the common typed sequence and retains its unsigned
sink and exact fold count. The NOS, MD, mixed and tick owner sequences contain
12, 63, 75 and 5 folds per cycle. SCAN compiles nine source snapshots and
passes **77 responder/payload checks** and **5 Java tests**, with zero skips.
Twelve independent golden vectors cover all four flows at 1, 20 and 100 cycles;
marker tests cover the excluded-warmup boundary. The tested JAR is
`74a47ca5cb32103299ca975c22d2ff34be940cc5795219cc71e44f7a6f7c88e9`.
Compiled inputs and the original failed sink-API compile are retained separately.

The current controller requires the independent reference sink whenever a
canonical fixture is declared, checks its fold count and matching owner
summary, and retains the reference specification. Twenty-four observation
regressions exercise all twelve retained legacy pairs and reject changed
counts, clocks, dictionary validation and admin observations. Counts cannot
borrow a passing value through floating-point or boolean aliases. SCAN's
first quiet functional pair failed the retained-wire audit after completing
its samples: the original capture crossed the excluded-warmup marker reset.
The 35 original sealed files remain in `canonical-warmup-capture-failure-scan/`.
No functional or report pass is inferred from compilation. The comparison
fixture declaration remains false, and original physical payloads and grades
remain unchanged.

## Measured canonical capture correction

The corrected adapter retains the first twelve **measured** cycles on both
roles and declares that window in its observations. The controller compares
original sent frames with peer-received bytes and validates every required
field against the independent shared fixture, including all twenty book
entries and the mixed ACK's derived order price and quantity. It retains the
legacy varying-book audit for older generations. Full body order and extra
dictionary fields remain a separate comparison-fixture gate.

Both hosts compile the same nine source snapshots and pass 77 semantic checks
and five Java tests with zero skips. SCAN's JAR SHA-256 is
`da2dbdbaffea78437fee5378aeef4cfca7eba4c60213f95a3be366684fe4fca1`;
HP's is `9005cad64584f7246af8c31a5b3ec17457a81b6078661df10e5b40e60bc005f8`.
The original build journals and exact source snapshots are retained in
`build-canonical-measured-scan/` and `build-canonical-measured-hp/`.
Twenty-three independent required-field checks reject changed markers,
duplicated markers, missing or altered non-touch book entries, group order
and uncorrelated mixed ACKs. Quiet functional/medium matrices now complete on
both hosts, with high priority on HP. All twelve functional pairs and all
twelve 10,000-sample primary/delay pairs pass their original application,
admin and measured-wire checks; every actual owner sink and fold count
matches the independent common reference. The 622 original sealed files per
host are verified and retained in `canonical-measured-scan/` and
`canonical-measured-hp/`.

| Flow | SCAN cycles/s, three runs | HP cycles/s, three runs |
|---|---|---|
| `nos_er` | 2216.663 / 2260.887 / 2196.447 | 3635.622 / 3612.108 / 3637.066 |
| `md` | 1680.560 / 1652.030 / 1650.465 | 2587.363 / 2660.227 / 2677.524 |
| `md_nos_er` | 1019.145 / 988.785 / 999.049 | 1640.800 / 1621.996 / 1646.858 |
| `tick_to_trade` | 2009.523 / 1960.399 / 1929.176 | 3362.521 / 3421.449 / 3384.848 |

Every flow still misses rate and scheduler delay. SCAN NOS also misses full
percentile stability; the other seven host/flow cells pass stability. These
remain local diagnostics with full fixture and physical-link blockers.

## Separate canonical physical payload

The exact tested SCAN JAR has a separate immutable nine-file v4 runtime on
both hosts. Its full tree SHA-256 is
`efe6d6b79c7a8c80976d3369128a27090201cef464f166be8817cbb82203ce74`.
The fixed v4 installer, launcher, result directories and controller coexist
with v2. The physical gate requires both canonical declarations, the measured
capture window, bilateral original frames and independent owner sink/fold
proof. Older observations cannot borrow canonical admission. Forty-four
admission checks exercise actual corrected SCAN captures, runtime mutations,
missing or changed proof, exact grading-source retention and tiny physical
admission. Twenty cold cycles prove functionality; their rate and scheduler
delay cannot establish a timing grade. The full report retains all current
rate, delay, stability, topology and fixture gates.

Controller source seals and all three CLI/import checks pass on each host.
Physical matrices are queued behind their root install markers, with high
priority on HP. Root installation and physical results remain pending.
A separate 50,000-cycle warmup diagnostic is also queued on both hosts to
measure JIT startup's effect, using the same tested payload, 10k/s target,
three runs and 10,000 measured samples per flow. Its original 1,000-warmup
matrices and failed gates remain intact.

The initial extended-warmup controller failed on both hosts before launching
an endpoint: its medium profile contained seven values where the loop expects
six. Both original output directories, captured grading sources and queue
journals are retained in `failed-warmup-profile-hp/` and
`failed-warmup-profile-scan/`. The correction restores the six-value profile
and ensures pre-loop errors can retain a failure manifest. A regression
replays all twelve actual report pairs through the complete CLI/report path,
checks that the configured warmup reaches every pair and preserves their
timing failures. All 27 observer/profile checks pass. A separate corrected
controller and fresh v4b warmup output were queued on both hosts; no result is
inferred from the failed attempt.

The corrected HP diagnostic completes all twelve medium pairs under a
high-priority quiet lease, with 50,000 excluded warmup cycles and 10,000
measured primary/delay samples per pair. Every measured owner sink and fold
count matches the independent canonical reference. Its 311 original sealed
files and queue journal are verified and retained in
`canonical-warm50000-hp/`.

| Flow | HP cycles/s after 50,000 warmups | SCAN cycles/s after 50,000 warmups |
|---|---|---|
| `nos_er` | 7901.673 / 7111.869 / 7313.508 | 4572.664 / 4650.673 / 4699.423 |
| `md` | 5727.679 / 6514.974 / 5771.930 | 3551.142 / 3561.471 / 3623.157 |
| `md_nos_er` | 3351.460 / 3357.122 / 3385.877 | 1969.389 / 2004.417 / 1986.652 |
| `tick_to_trade` | 7465.747 / 6861.173 / 6875.285 | 4692.365 / 4687.752 / 4590.278 |

Longer warmup improves achieved throughput compared with the original
1,000-warmup matrix, but all four flows still miss the unchanged 98% rate
and scheduler-delay gates. NOS, MD and tick-to-trade also miss full
percentile stability; mixed passes stability. Full-fixture and physical-link
blockers remain. The command's nonzero exit retains these failed report
gates despite passing application/observation checks. The matching SCAN
diagnostic also completes all twelve pairs under a quiet lease. Every owner
sink and fold count matches the independent reference; its 311 original
sealed files and queue journal are verified and retained in
`canonical-warm50000-scan/`. All four SCAN flows miss rate and scheduler
delay; MD additionally misses full percentile stability. Both original
1,000-warmup matrices, failed controller attempts and failed report gates
remain intact. Neither localhost matrix establishes physical admission.

## HP numeric report retention

The preceding numeric-only generation completes all twelve functional pairs
and three 10,000-sample primary/delay pairs per flow under a high-priority
quiet lease. NOS reaches 3,722–3,745/s, MD 2,498–2,606/s, mixed
1,587–1,652/s and tick-to-trade 3,295–3,360/s. All four retain rate and
scheduler-delay failures; all percentile stability checks pass. The 618
original sealed files are verified and retained in `numeric-hp/`. These are
localhost diagnostics with the fixture and physical-link blockers intact.
