Author name: AS400 Decoded

CL Commands

IBM i System Operations with CL in 2026: Subsystem Management, Job Control, Data Queues, Output Queues, and Job Scheduling

The operational CL commands IBM i administrators use every day: WRKACTJOB status codes explained (RUN, DSKW, LCKW, MSGW), CHGJOB and ENDJOB for job control, WRKSBS and ENDSBS for subsystem management, DSPMSG and SNDMSG for message queues, WRKSPLF and CPYSPLF for output queues, CRTDTAQ and RCVDTAQ for inter-job data queues, ADDJOBSCDE for the built-in job scheduler, and practical patterns for production operations.

DB2 for i

DB2 for i Advanced SQL in 2026: SQE vs CQE, Index Advisor, Column Statistics, Materialized Query Tables, and Query Performance Patterns

Advanced DB2 for i query performance: the SQE versus CQE split and what it means for your queries, column statistics and automatic maintenance, the Index Advisor and MTI (Managed Temporary Index) detection, Visual Explain in ACS, Materialized Query Tables for pre-computed aggregations, bitmap indexes for analytics, and the SQL anti-patterns that consistently cause performance problems on IBM i — non-sargable predicates, SELECT *, implicit type conversions, and leading wildcard LIKE.

Operations & Admin

IBM i Performance Tuning in 2026: Memory Pools, Reading WRKACTJOB, Collection Services, and Diagnosing Slow Batch Jobs

IBM i performance problems are almost always paging (undersized memory pools) or SQL without indexes. This post covers the IBM i memory pool model, reading WRKSYSSTS and WRKACTJOB correctly, key performance system values including QPFRADJ, Collection Services for historical analysis, diagnosing LCKW and DSKW job states, the Index Advisor, and common performance anti-patterns in batch RPG and SQL programs.

Modern Integrations

IBM i and Node.js in 2026: Running Node.js in PASE, Accessing DB2 for i, and Building REST APIs on IBM i

Node.js runs natively on IBM i in PASE with direct in-process access to DB2 for i via idb-connector and to IBM i programs via itoolkit. This post covers installing Node.js via yum, synchronous and async DB2 queries with idb-pconnector, calling RPG service programs with itoolkit, building a REST API with Express.js, managing processes with PM2, JWT authentication, and using nginx as a reverse proxy on IBM i.

Modern Integrations

AI for IBM i in 2026: Calling AI APIs from RPG and SQL, Integrating watsonx, and What AI Can Realistically Do for IBM i Modernisation

AI intersects with IBM i in three ways: as an integration target (calling OpenAI or watsonx from RPG and SQL programs), as a development tool (using AI assistants to explain and modernise legacy RPG), and as a data platform feature (watsonx.data federating IBM i and cloud data). This post covers QSYS2 HTTP_POST for calling AI APIs directly from SQL, embedded SQL in SQLRPGLE for AI integration, JSON_VALUE for parsing responses, watsonx.ai Granite models, IBM Merlin, and a complete batch AI classification example.

IFS & File Systems

IBM i IFS in 2026: The Integrated File System, Stream Files, Git in the IFS, and Working with IFS from RPG and CL

The IBM i Integrated File System is the foundation of modern IBM i development — Git, open-source packages, Node.js, Python, and build pipelines all live in the IFS. This post covers the IFS directory structure including QSYS.LIB and QOpenSys, working with stream files from CL and RPG, POSIX permissions, copying between the library system and IFS, Git setup and workflow, SRCSTMF compilation, and practical IFS patterns for build pipelines and configuration management.

Operations & Admin

DB2 for i in 2026: IBM i’s Integrated Database, System Naming vs SQL Naming, Physical Files, the Query Optimiser, and How It Differs from Standalone Databases

DB2 for i is not a database running on IBM i — it is part of the operating system. This post covers the integrated architecture of DB2 for i, the difference between system naming and SQL naming, physical and logical files versus SQL tables and views, journalling and commitment control, the System Query Optimiser, QSYS2 system views, SQL DDL patterns, temporal tables, global temporary tables, and how to connect external applications via JDBC and ODBC.

Operations & Admin

RPG in 2026: Modern Free-Format RPG IV, Prototyped Procedures, SQL Integration, and What Current RPG Actually Looks Like

Modern RPG is not the fixed-format column-dependent code that gave the language its reputation. This post covers fully free-format RPG IV: program structure, data types, qualified data structures, prototyped procedures, embedded SQL with cursors and null handling, service programs, the monitor group for error handling, and what a current SQLRPGLE program actually looks like.

Scroll to Top