NTiConnection is configured through a regular ADO.NET connection string, in the key=value;key=value format. This page is the exhaustive reference of the NTi 5 keywords and their matching NTiConnection properties.

General rules

  • Keywords are case-insensitive; several synonyms are accepted for v4 compatibility.
  • An unknown keyword is ignored (v4 compatibility: a v4 connection string can be reused as is).
  • An invalid value of a known keyword throws immediately, at string assignment: never a silent fallback to a default.
  • Once the connection is open, the configuration is frozen, and the password is stripped from ConnectionString (unless persist security info=true); see the connection article.
using Aumerial.Data.Nti;

await using var connection = new NTiConnection(
    "server=MYIBMI;user=MYUSER;password=MYPASSWORD;" +
    "ssl=true;pooling=true;max pool size=20;" +
    "default schema=MYLIB;naming=sql;application name=OrderApi");
await connection.OpenAsync();

Server and identity

Property Keywords Default Description
Server server, host, system, dsn, datasource, data source (required) DNS name or IP address of the IBM i server.
Username user, user id, userid, uid (required) IBM i user profile.
Password password, pwd (required) Password (all QPWDLVL levels supported).
AdditionalFactor additional factor, additionalfactor, mfa, 2fa none Static additional authentication factor (TOTP...).
AdditionalFactorProvider (property only) none Synchronous callback invoked at physical-session signon; receives a context (host, user). Takes precedence over the async variant.
AdditionalFactorAsyncProvider (property only) none Asynchronous variant (vaults, prompts). On OpenAsync it is awaited natively with the caller's token (cancelable); on synchronous Open it runs off the caller's SynchronizationContext with an unbounded wait: bound interactive prompts yourself.
LicenseLibrary license library KNTI Library holding the NTi license on the partition.
(none) isvid none ISV vendor key (ISV integrations).
(none) persist security info, persistsecurityinfo false Keeps the password in ConnectionString after open (default: stripped).
ConnectionTimeout (read-only) connect timeout, connection timeout, timeout 0 (unlimited) Connection establishment timeout, in seconds. 0 = infinite.

Network and transport

Property Keywords Default Description
UseSSL ssl, tls, use ssl, use tls false Encrypts host-server connections (TLS; the default ports switch to the 94xx variants).
Untrusted untrusted false Accepts any server certificate (test environments only).
UsePortMapper use mapper, use port mapper false Resolves ports through the port mapper (449) instead of fixed ports.
SignonPort signon port 8476 (9476 with TLS) Signon server port.
DatabasePort database port 8471 (9471 with TLS) Database server port.
CommandPort command port 8475 (9475 with TLS) Command/program server port.
MapperPort mapper port 449 Port mapper port.
Compress compress, use compression true RLE compression of large replies.

Connection pooling

Property Keywords Default Description
Pooling pool, pooling, pooled, connection pool, connection pooling false Enables connection pooling (default: OFF, v4 compat; enable explicitly, strongly recommended for web workloads).
PoolSize pool size, poolsize 50 Target pool size.
LimitPoolSize limit pool size, limitpoolsize, pool limit, poollimit false Makes PoolSize a hard cap.
PoolSize + LimitPoolSize maxpoolsize, max pool size (unset) Shortcut: sets the size AND enables the cap.

Data and text

Property Keywords Default Description
DefaultCcsid default ccsid, defaultccsid none Asserts "untagged text is in this code page". Without it, CHAR/VARCHAR CCSID 65535 = FOR BIT DATA (binary, never converted). Required to read text on QCCSID=65535 systems. Never overrides a real column CCSID.
ForceTranslate force translate none v4 semantics: decodes BINARY/VARBINARY/ROWID fields as text in this CCSID. Never affects FOR BIT DATA.
(none) text errors, texterrors lenient Conversion error mode: lenient (tolerant decode to U+FFFD, strict encode), strict, legacy (v4-style "?" substitution).
TrimCharFields trim true Trims trailing blanks of fixed CHAR/GRAPHIC.
LegacyNullSemantics null semantics, legacy nulls false v4 NULL semantics: GetValue/ExecuteScalar return null instead of DBNull.
(none) roundoption, round option server default DECFLOAT rounding mode (server register).
LOBMaxSize lob threshold 15360 Threshold (bytes) above which a LOB goes through a locator instead of inline.

Execution and fetch

Property Keywords Default Description
BlockingFactor blocking, blocking factor, blockingfactor 0 (adaptive) Rows per fetch block. Default: sized automatically from the row width to target block size, capped at 32767. A value > 0 forces a fixed count (v4 behavior).
FetchBlockSize block size, blocksize 512 Target fetch block size, in KiB, for automatic sizing.
FetchAhead fetch ahead, fetchahead false Overlaps network and decoding: the next block is requested while the current one is being read.

SQL context

Property Keywords Default Description
DefaultDatabase default schema, default database, default collection, schema, database, deault schema (v4 typo kept) none Session's current schema (SET CURRENT SCHEMA). Changeable at runtime through ChangeDatabase.
NamingConvention naming, naming convention sql Naming convention: sql (LIB.OBJ) or sys (LIB/OBJ, library list). The EF Core provider requires sql.

Client identity (accounting)

Property Keywords Default Description
ApplicationName application name, applicationname .NET Application Application name pushed to the server (audit/accounting).
ClientAccounting client accounting, clientaccounting none Client accounting code.
ClientUserIdentifier client user identifier none End-user identifier (traceability).
ClientProgramIdentifier client program identifier none Client program identifier.

Pool key note

The connection pool is keyed by the full configuration, client identity included: application name, client accounting, client user identifier and client program identifier are part of the pool key. Two distinct identities therefore never share a pool. The password, on the other hand, never enters the key in clear text.

Reconnecting to the server...

The connection to the server was lost. The page will reload.