Highlights
Thin mode is now the default. No Oracle Instant Client install required for Oracle 12.1+ servers or Autonomous Database. Existing configs that had an Instant Client path auto-migrate into thick mode with a one-time warning — your flows keep working unchanged.
First-class support for OCI Autonomous Database. Wallet / TNS_ADMIN config fields, $TNS_ADMIN auto-detection, TNS Name dropdown auto-populated from your wallet's tnsnames.ora.
Test Connection + Pool Stats in the config dialog. Verify before you deploy; watch live pool usage with peak high-water marks and sizing hints.
What's new
Connection & wallets
- Thin mode default (Oracle 12.1+ / ADB)
- Wallet / TNS_ADMIN field with
$TNS_ADMINenv auto-fill and read-only override - TNS Name combo populated from
tnsnames.ora - Legacy migration: configs with
instantclientpathset keep working in thick mode with a one-time warning
Test Connection button
One click returns: connect string, database name, service name, server host, user, current schema, accessible schemas list, other wallet aliases, plus connect / total timing.
Pool Stats panel
Live connectionsInUse / connectionsOpen, queue length, peak in-use and peak queued high-water marks since the pool started. Auto-refreshes every 2 s. Surfaces sizing hints ("Peak hit poolMax — consider raising Max Connections").
Pool-pressure visibility
- Query node badge shows
waiting for pool slot... (4/4)whengetConnection()blocks - NJS-040 errors now read
pool exhausted: 4/4 in use, 3 queued, waited 60000msinstead of a bare timeout
executeMany batch mode
High-volume DML in one round-trip via a new Batch mode checkbox or msg.executeMany = true.
Automatic retry on transient errors
NJS-003, NJS-040, ORA-03113, ORA-03114, ORA-12170, ORA-12541, ORA-12537, ORA-12514 retried with exponential backoff. Tunable per server config.
Richer pool tuning
poolIncrement, queueTimeout, stmtCacheSize exposed in the UI.
Result metadata sidecar
Every result message now carries msg.oracle:
msg.oracle = {
durationMs: 23,
mode: "single", // single | multi | single-meta | batch | none
statementKind: "query", // query | ddl | plsql | insert | update | delete | ...
rows: 1, // when applicable
rowsAffected: 5 // when applicable
}