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.