Database management IBM i features an integrated
relational database currently known as
IBM Db2 for IBM i. It was given the name
DB2/400 in 1994 to indicate comparable functionality to IBM's other commercial databases. Certain Db2 for i features such as
object-relational database management require SQL and cannot be accessed through the native interface. IBM i has two separate
query optimizers known as the
Classic Query Engine (CQE) and
SQL Query Engine (SQE). These are implemented inside the SLIC alongside a
Query Dispatcher which selects the appropriate optimizer depending on the type of the query. Remote access through the native interface and SQL is provided by the
Distributed Data Management Architecture (DDM) and
Distributed Relational Database Architecture respectively. A storage engine for
MySQL and
MariaDB named IBMDB2I allows applications designed for those databases to use Db2 for i as a backing store. Other open source databases have been ported to IBM i, including
PostgreSQL,
MongoDB and
Redis. These databases run on the PASE environment, and are independent of the operating system's integrated database features.
Networking IBM i supports
TCP/IP networking in addition to the proprietary IBM
Systems Network Architecture. IBM i systems were historically accessed and managed through
IBM 5250 terminals attached to the system with
twinax cabling. With the decline of dedicated terminal hardware, modern IBM i systems are typically accessed through 5250
terminal emulators. IBM provides two terminal emulator products for IBM i: • IBM i Access Client Solutions is a
Java-based client that runs on
Linux,
macOS and
Windows to provide 5250 emulation. • IBM i Access for Web/Mobile provides web-based 5250 emulation. In addition, IBM provides a web-based management console and performance analysis product named IBM Navigator for i.
Programming Programming languages available from IBM for IBM i include
RPG,
Control Language,
C,
C++,
Java,
EGL,
COBOL, and
REXX. Compilers were previously available for
Pascal,
BASIC,
PL/I and
Smalltalk but have since been discontinued. The
Integrated Language Environment (ILE) allows programs from ILE compatible languages (C, C++, COBOL, RPG, and CL), to be bound into the same executable and call procedures written in any of the other ILE languages. When PASE was introduced, it was necessary to compile code for PASE on an AIX system. This requirement was removed in OS/400 V5R2 when it became possible to compile code using the
IBM XL compiler suite inside PASE itself. Since then, other compilers have been ported to PASE, including
gcc. Certain development tools for IBM i run on top of the operating system itself, such as the Source Edit Utility (SEU)
text editor and
Programming Development Manager. IBM also provides an
Eclipse-based
integrated development environment (IDE) for IBM i named
IBM Rational Developer for i which runs on developer workstations instead of IBM i. Prior to the Eclipse-based IDE, IBM provided an IDE based on WorkFrame/2 which ran on
OS/2 named
CODE/400 and an IDE based on
VisualAge which ran on
Microsoft Windows systems. IBM i uses
EBCDIC as the default
character encoding, but also provides support for
ASCII,
UCS-2 and
UTF-16.
Storage In IBM i, disk drives may be grouped into an
auxiliary storage pool (ASP) in order to organize data to limit the impact of storage-device failures and to reduce recovery time. If a disk failure occurs, only the data in the pool containing the failed unit needs to be recovered. ASPs may also be used to improve performance by isolating objects with similar performance characteristics, for example journal receivers, in their own pool. By default, all disk drives are assigned to pool 1. The concept of IBM i pools is similar to the
Unix/
Linux concept of
volume groups; however, with IBM i it is typical for all disk drives to be assigned to a single ASP.
Security Security in IBM i is defined in terms of
authorities, which represents the permission to carry out a specific action on a specific object. Authorities can be granted to individual users (known as
user profiles), groups (known as
group profiles) or all users (
public authorities). Related objects can be grouped together in an
authorization list, making it possible to grant authorities on all objects in the list by granting authorities on the authorization list. User profiles have an associated
user class which dictates the set of default authorities available to that user profile. There are five standard user classes which, in order of increasing privilege, are:
Workstation User,
System Operator,
System Programmer,
Security Administrator and
Security Officer. IBM i can be set to use one of five levels of security, which control the extent to which the operating system's security features are enforced: •
Level 10 – Users can log in without a password, and have full access to the system. If a user logs in with an unknown username, a new user profile will be automatically created. •
Level 20 – Users must log in with a username and password of a known user profile, but will have almost full access to the system once logged in. Creation or modification of user profiles is restricted to user profiles which have been granted authorities for profile management. Limited access accounts can be created, which can be restricted to accessing certain objects, or running certain commands. •
Level 30 – Authorities are enforced, meaning that users cannot access objects unless they have an authority for the object. •
Level 40 – Access to certain system programs and MI instructions are restricted, and can only be used by operating system code. •
Level 50 – Includes changes needed for the system to achieve TCSEC C2 compliance, and adds a security audit journal. The first three levels correspond to the security levels available in CPF and the initial releases of OS/400. Security level 40 was added in OS/400 V1R3 and become the default security level for the operating system. The addition of Level 40 required the removal of the
capability addressing model of the System/38 which was also present in earlier releases of OS/400. Security level 50 was added in V2R3 when OS/400 was certified to
TCSEC C2 security. == Release timeline ==