You already know how this goes. The application team says it's slow. The server stats look fine. onstat -g sql truncates the statement you actually want to see. tcpdump gives you bytes you can't read. Server tracing either isn't on or is so noisy it's useless. Meanwhile somebody's on the bridge waiting for an answer.
oni_snoop is the tool that closes that gap. It's a SQLI-aware passthrough proxy: clients connect to it, it forwards every byte verbatim to the real IDS, and in parallel it decodes every PFPDU in both directions and writes a line-per-PFPDU TSV log.
| Signal | Where it lands in the log |
|---|---|
| Per-round-trip latency | round_us on the closing server-side ONI_EOT. One awk -F'\t' '$5=="ONI_EOT" && $7+0 > 50000' finds every round trip slower than 50 ms. |
| Per-statement latency | stmt_us rolls up the time since the most recent PREPARE / COMMAND. You see which SQL owns the time, not just which exchange does. |
| Mid-response stalls | gap_us on every line. Server-side think-time between TUPLE batches, network pauses, latch waits — all visible without any inference. |
| The actual SQL the server received | sql="..." in the summary column on every PREPARE / COMMAND. No truncation at the IDS-trace boundary. |
| Decoded result rows | v0=42 v1='Alice' v2=30 on each ONI_TUPLE — rendered from a per-connection schema cache populated by every DESCRIBE reply. Covers CHAR / VARCHAR / SMALLINT / INTEGER / SERIAL / INT8 / BIGINT / DATE today. |
| Errors with full context | sqlcode=-201 isam=0 msg="syntax error" on every ONI_ERR / ONI_PUTERR. The exchange that produced it is on the lines immediately above. |
Fixed 10-column TSV, one line per PFPDU. Tabs and newlines inside fields are escaped to \t / \n, so cut -f, awk -F'\t', and Perl -F'\t' all work as-is. No custom parser, no Wireshark plugin, no server trace dump. The schema is the contract; new information lands in the existing summary column or in tagged comment lines.
Drop it on a test environment this week. Email support@oninit.com or call +1 913 732 8892 to get the binary and a short README of the two flags that matter: --listen and --upstream.
If you really understand what Snooper does, you realize it fundamentally changes how Informix applications can be deployed.
It allows existing Informix applications to run against any database without modification. By decoupling legacy systems from their original data layer, it removes the need for costly rewrites and enables safe, phased modernization. Organizations can preserve proven application logic while moving data and infrastructure forward—reducing risk, cost, and disruption.
To discuss how Oninit ® can assist please call on +1-913-732-8892 or alternatively just send an email specifying your requirements.
You get all this for free.. think about what you get if you pay us