Overview

Introduction

NTi Data Provider is a .NET data provider built for IBM i. It delivers fully native, deeply integrated access to the .NET ecosystem for:

  • Run CL commands
  • Call existing IBM i programs (RPG, CLP ...)
  • Access DB2 for i database
  • Access spool files

.NET and the Common Language Runtime

.NET, introduced by Microsoft, is a staple of modern business application development. Thanks to the widespread adoption of C#, it enjoys a large and thriving community.

Accessing the full range of IBM i resources from modern .NET Core applications is a growing challenge for many organizations. The latest .NET versions - 6, 8 and beyond - are cloud-native and cross-platform by design. Architecture and operating system are no longer a concern: applications are portable and can run in any environment, whether containerized on Linux on Power or deployed as a Windows x86 thick client.

IBM i connectivity must be equally platform-agnostic. Native-compiled drivers and legacy technologies from the 90s, ODBC, OleDB, have no place in a modern .NET stack. When you develop in .NET, you want pure .NET. That is precisely what AUMERIAL delivers with NTi.

To run across all platforms, .NET applications and modules rely on components provided by the CLR (Common Language Runtime). The CLR contains all the building blocks needed to perform operations and interact with the hardware. Each architecture has its own CLR implementation, ensuring that any application built on top of it runs natively on that architecture.


NTi Data Provider - AUMERIAL's modern alternative to legacy drivers

Connecting to IBM i systems from .NET has traditionally relied on drivers such as ODBC or OleDB. These drivers are written and compiled into native machine code for a specific architecture, placing them entirely outside the scope of the .NET CLR. The data access is not handled by .NET, and the resulting application is not cross-platform.

Faced with this reality and the lack of any satisfactory solution, we developed NTi, a fully managed IBM i data provider for .NET, built entirely on top of the .NET CLR.

Every aspect of IBM i access, from establishing the connection to code page conversion, is handled by fully portable .NET code. As a result, there are no deployment constraints whatsoever with NTi. Deploy your business applications anywhere, without limits.


How NTi works

Connection overview

NTi connects to IBM i by establishing TCP/IP connections with the following jobs (or their SSL equivalents where applicable):

  • QZDASOINIT for database access
  • QZRCSRVS for programs and commands
  • QZSOSIGN for Signon

These connections are established in a standard way using components available in the .NET CLR. NTi then submits requests to IBM i by sending the appropriate DataStreams. All data conversions, including text encoding and decoding, are handled entirely by NTi.

As a strongly object-oriented runtime, .NET is instance-based. Unused instances are regularly destroyed by the garbage collector to optimize memory usage. With NTi, each TCP/IP connection to IBM i is tied to its corresponding NTiConnection instance. When that instance is destroyed, the underlying TCP socket is closed and the corresponding IBM i job stops.

This creates a tight coupling between NTi instances and IBM i jobs, eliminating the well-known issue of lingering IBM i jobs (so-called QZDASOINIT "ghost" jobs).

💡Exchanges between NTi and IBM i can be traced using the IBM i built-in TCP trace functions (STRTRCTCP).

For the complete connection string reference, see the connection page.

Connection configuration

By default, the user provides the IP address or host name of the target IBM i LPAR, and the default ports are used:

SERVICE NON-SSL PORT SSL PORT
PORT MAPPER 449 N/A
SIGNON 8476 9476
DATABASE 8471 9471
COMMANDS/PROGRAMS 8475 9475

Custom port numbers can also be specified for each service. When the configuration is non-standard and the ports are unknown, the port mapper can be used, available by default on port 449, which can itself be overridden if needed.

SSL/TLS can also be enabled on the connection. SSL configuration must obviously be set up beforehand on the IBM i side. If needed, trust in the IBM i certificate can be forced to establish an SSL connection regardless.

💡 An NTi connection requires the corresponding TCP servers on IBM i (*DATABASE, *RMTCMD, *SIGNON and *SVRMAP) to be active.


Features

Database access

Through its ADO.NET implementation, NTi provides full access to the IBM i database using well-known methods and syntax:

  • Immediate SQL query execution
  • Prepared and parameterized SQL queries
  • Stored procedure execution with or without input/output parameters
  • Opening and reading cursors returned by queries or stored procedures
  • LOB field retrieval (BLOB, CLOB, XML, Geospatial)
  • Transaction control (commit / rollback)
  • Full data type support

CL commands and program calls

Beyond database access, NTi provides dedicated methods to execute CL commands and call IBM i programs without going through SQL:

CL commands and IBM i program calls are handled by the dedicated AS-RMTCMD server, with no SQL involvement whatsoever.

Getting started with NTi

Client side (.NET)

Initial setup

No configuration is required on the client side. All you need is network access to the target IBM i partition. A .NET runtime must be installed on your machine, no ACS needed, as everything is bundled within the NTi NuGet package.

Download

NTi is available directly on NuGet.org, integrated into Visual Studio, VS Code, and all other .NET development environments under the package name Aumerial.Data.NTi. Once referenced and downloaded (approximately 400 KB), NTi is ready to use.

IBM i side

Prerequisites

On the IBM i side, valid credentials and active TCP services are required (cf. Connection overview). Other than installing a license key (cf. License key below), no additional configuration or installation is needed on the IBM i.

License key

A license key is required to use NTi. It is installed on IBM i in a dedicated library named KNTI, via an automatically generated SQL script.

Obtaining and activating a license is done entirely online:

  1. Create your account on portal.aumerial.com
  2. Register your organization and declare your IBM i partition
  3. Retrieve the automatically generated SQL script from your client portal
  4. Copy and run the script on your IBM i : the license is immediately active

Renewal follows the same process, simply submit a new license request for the relevant partition from your client portal.

💡Each license key is tied to a single IBM i partition (identified by its serial number and partition ID) and is valid for a limited period.

Pricing starts at €3,000 excl. VAT / year per LPAR, depending on the chosen commitment period.
A free 30-day trial license is available with no commitment required.


Conclusion

By providing direct, high-performance access to IBM i, NTi has established itself as the market reference: a 100% .NET, fully managed solution built specifically for IBM i, AS/400, and iSeries.

All IBM i resources become accessible from any environment: Linux on Power, Mono on IBM i, Docker on ARM... deployment boundaries are a thing of the past, and the benefits are substantial.

Developers enjoy a simpler, more productive workflow. IT teams no longer have to manage a dedicated infrastructure for ODBC-based applications. And end users benefit from an improved experience overall.

Getting started with NTi is straightforward. In just a few minutes, an existing ODBC or iDB2 application can be migrated and fully operational with NTi.


What's next?