Oninit® Informix Analyser — For DBAs
You already have everything you need to know what's wrong with your Informix instance. It's spread across online.log, the AF files in $INFORMIXDIR/tmp, the ifxcollect tarball you just pulled, and a dozen onstat outputs you haven't had time to read end-to-end. The Analyser is the tool that reads all of it and tells you what matters.
What gets analysed
Any extracted ifxcollect directory — collection profile detected from manifest.log.<TS> when present, or inferred from which artefacts are present. Per-iteration awareness for ifxcollect -r N -d S multi-run captures. AF assertion-failure files. online.log for restarts, checkpoint timing, archive lifecycle. onstat -d / -D parsed by hex flags so it catches mirror, offline, downstate, and archive-pending states a quick visual scan misses. onstat -p profile counters with per-iteration deltas. onstat -l, -g arc, -g ckp, -g iof, -g glo, -g ses, -g osi, -g env — the lot.
Coverage today
| Family | Rule IDs | What it covers |
|---|---|---|
| Configuration audit | CFG-001..010 | onconfig parameters checked against best practice and version-specific guidance; BUFFERPOOL and VPCLASS rows analysed structurally per page-size class. |
| Health and errors | HLTH-001..011 AF-001..AF-008 |
backup hygiene leveraging the 0x04000000 archive-pending flag; assertion-failure pattern recognition; server restarts; online.log timeline reconstruction. AF rules detect crash signatures, NULL-pointer dereferences, recurring crashes, HDR/RSS log-replay corruption, and unknown-build versions. |
| Capacity and space | CAP-001..008 | dbspace fullness (correctly skipping plogspace and temp); logical-log fullness; backup pile-ups. |
| Performance and tuning | PERF-001..014 | buffer hit ratio; profile counters; per-chunk I/O latency from onstat -g iof; CPU VP saturation from onstat -g glo; lock and latch contention; session memory. |
Findings, with their working shown
Rules are authored as plain SWI-Prolog .pl files, callable through a Janus Python bridge. Every finding emits as a finding/5 term with rule id, title, severity, evidence and remediation. The meta-interpreter exposes the chain of clauses and facts that justified each finding — when a rule fires, you can ask the engine why and you get the rule body and the supporting facts back. No black box.
Severity tiers: critical / high / medium / low / info. Each finding cites the rule that fired so you can read the source if you need to.
DrWatson
The TUNE-BAK, TUNE-LOK, TUNE-BUF rule families produce concrete configuration recommendations. Each carries the current value, the suggested value, and how to apply it (dynamic via onmode -wf, restart required, or operator action). The DrWatson suggests; the operator applies. Nothing changes automatically.
Per-iteration awareness
Multi-run captures (ifxcollect -r N -d S) are processed iteration by iteration. Trends across captures — buffer hit ratio drifting, dbspace fullness creeping, per-chunk latency spiking — are surfaced rather than collapsed into the last snapshot.
What it removes from your day
If you have read four ifxcollect tarballs in one afternoon, the Analyser is the tool that does the first pass for you. The findings list is your starting point; the evidence is right there next to each finding; the DrWatson tells you which knob to turn and how. Your time goes to the calls that need judgement, not the mechanical correlation that doesn't.