// All articles

Articles

55 posts — sorted by latest first

RPG Data Structures in Depth: LIKEDS, Qualified DS, Template Data Structures, DS Arrays, EXTNAME, and LIKEREC in ILE RPG on IBM i
Master ILE RPG data structures: dcl-ds syntax, qualified data structures with dot notation, LIKEDS for cloning a structure, template data…
IBM i PASE Deep Dive: AIX Binary Compatibility, PASE vs QShell, Environment Variables, Process Management, and ILE Integration in 2026
Understand the IBM i PASE runtime in depth: AIX binary compatibility, how PASE differs from QShell, managing environment variables, PASE…
IBM Merlin and VS Code for IBM i Development in 2026: Modern IDE Setup, RPG and CL Editing, Git Integration, and the IBM i Developer Workstation
Set up a modern IBM i development environment in 2026: install the Code for IBM i VS Code extension, edit…
IBM i Work Management in Depth in 2026: Subsystem Design, Routing Entries, Job Queue Priorities, Class Objects, and Performance Diagnosis
A complete guide to IBM i work management in 2026: create custom subsystem descriptions, configure routing entries and class objects,…
IBM i Integration with Microsoft Azure in 2026: Azure Event Hubs, Blob Storage, Service Bus, and Azure SQL from PASE
Learn how to integrate IBM i with Microsoft Azure in 2026 using the Azure Python and Node.js SDKs in PASE.…
DB2 for i JSON and XML Support in 2026: JSON_VALUE, JSON_TABLE, FOR JSON, XMLTABLE, and Building REST Responses in SQL
A comprehensive guide to DB2 for i JSON and XML functions in 2026: extracting scalars with JSON_VALUE, shredding arrays with…
IBM i ILE Binding, Activation Groups, and Service Programs in 2026: BNDDIR, CRTPGM, *NEW vs *CALLER, and Designing for Reuse
A deep dive into the IBM i ILE binding model: how modules, programs, service programs, and binding directories relate, how…
IBM i Message Files and Exception Handling in CL in 2026: SNDPGMMSG, MONMSG, RCVMSG, Message Types, and Robust Error Handling
Master IBM i CL exception handling in 2026: message file architecture, CRTMSGF and ADDMSGD to define messages, SNDPGMMSG for escape…
IBM i Security Hardening in 2026: QSECURITY Levels, User Profile Auditing, Special Authority, Network Security, and QSYS2 Security Views
A practical guide to IBM i security hardening in 2026: QSECURITY levels 10–50, auditing user profiles with QSYS2.USER_INFO, removing excessive…
DB2 for i SQL Stored Procedures and User-Defined Functions in 2026: CREATE PROCEDURE, Cursors, UDFs, and Reusable Business Logic in DB2
A comprehensive guide to DB2 for i SQL stored procedures and user-defined functions in 2026: CREATE PROCEDURE syntax, IN/OUT parameters,…
AI-Assisted Legacy Code Documentation on IBM i in 2026: Using LLMs to Document RPG Programs, Extract Business Rules, and Build a Knowledge Base
A practical guide to using AI and large language models to document legacy IBM i RPG programs in 2026: extracting…
IBM i System Startup and Shutdown Procedures in 2026: QSTRUP, STRTCP, STRSBS, ENDSBS, PWRDWNSYS, and IPL Modes
A complete guide to IBM i system startup and shutdown procedures in 2026: understanding the IPL sequence, configuring QSTRUP, starting…
Calling REST APIs from IBM i RPG in 2026: HTTPAPI by Scott Klement, HTTP GET and POST, JSON Parsing with YAJL, and OAuth 2.0
HTTPAPI by Scott Klement is the standard open source library for making outbound HTTP calls from IBM i RPG programs.…
DB2 for i Triggers in 2026: SQL and External Triggers, BEFORE and AFTER Timing, Audit Logging, and Calling RPG from a Trigger
DB2 for i triggers fire automatically on INSERT, UPDATE, and DELETE, enforcing rules that application code cannot bypass. This post…
RPG Unit Testing with RPGUnit in 2026: Writing Test Cases for ILE RPG Service Programs, Test Suites, and CI Integration
A complete guide to RPGUnit for ILE RPG in 2026: install the framework, write test cases and test suites for…
IBM i Application Modernisation Roadmap in 2026: Strategies from API Wrapping to Full Rewrite and How to Choose
A practical IBM i application modernisation roadmap for 2026: compare six strategies from screen transformation and API wrapping to selective…
Vector Search and Embeddings on IBM i in 2026: Storing Vectors in DB2 for i, Cosine Similarity in SQL, and Semantic Search over IBM i Data
Vector search and text embeddings bring semantic search to IBM i in 2026 — converting DB2 for i text fields…
DB2 for i Replication in 2026: Journal-Based CDC, Q-Replication, MIMIX, and Designing a Replication Strategy
DB2 for i replication in 2026 is built on IBM i journals — the same journal receivers that underpin HA…
IBM i and Apache Kafka in 2026: Journal-Based CDC to Kafka Topics, PASE Producers, and Event-Driven IBM i Integration
A hands-on guide to connecting IBM i with Apache Kafka in 2026 — running kafkajs and confluent-kafka-python producers in PASE,…
IBM i Display Files and 5250 UX Modernisation in 2026: DDS, Subfiles, RPG Screen I/O, and Modern Web Front-Ends
A practical guide to IBM i display files in 2026 — DDS syntax, CRTDSPF, RPG EXFMT screen I/O, subfile programming…
IBM i PTF Management and OS Upgrades in 2026: Ordering Cumulative PTFs, Managing SF99xxx Groups, and Planning an OS Upgrade
IBM i PTF management in 2026 spans four distinct fix types — individual PTFs, cumulative PTF packages, SF99xxx group PTFs,…
IBM i High Availability and Disaster Recovery in 2026: Geographic Mirroring, Switchable ASPs, and HA Tools Compared
IBM i high availability and disaster recovery in 2026 requires understanding the full stack: geographic mirroring at the storage layer,…
Python on IBM i in 2026: Running Python in PASE, Accessing DB2 for i, Calling IBM i Programs with itoolkit, and AI Integration
Python runs natively on IBM i in PASE with direct DB2 access via ibm_db and pyodbc, IBM i program calls…
Advanced ILE RPG in 2026: System Pointers, IBM i OS APIs, Dynamic Program Calls, and User Spaces
The IBM i OS API layer accessible from ILE RPG: QCMDEXC for running CL commands at runtime, the list API…
IBM i IFS Advanced in 2026: Journalling Stream Files, NetServer SMB Shares, IFS Backup, Large Files, and CCSID Encoding
Advanced IBM i IFS topics for production environments: enabling journalling on IFS directories for recovery and replication, sharing IFS directories…
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…
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…
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…
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…
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…
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,…
IBM i Security in 2026: User Profiles, Object Authority, Adopted Authority, and Practical Security Patterns
IBM i security is object-based and OS-enforced — bypassing the application does not bypass security. This post covers QSECURITY levels,…
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…
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…
CL in 2026: ILE Control Language, MONMSG Error Handling, Batch Orchestration, and Where CL Fits in a Modern IBM i Stack
CL is not a legacy language waiting to be replaced — it is the correct tool for controlling the IBM…
Connecting IBM i to the Cloud: Azure, AWS, Power Virtual Server, and Hybrid Integration Patterns That Actually Work
IBM i can integrate with Azure, AWS, and SaaS platforms without custom adapters or protocol gymnastics. This post covers five…
IBM i Observability in 2026: Collection Services, QSYS2 Health Queries, Structured Logging, and Prometheus Dashboards
IBM i has collected detailed performance data for decades — most shops only look at it when something breaks. This…
IBM i in a DevOps Pipeline: Git, Bob, Automated Builds, and CI/CD for RPG in 2026
IBM i DevOps is not theoretical — Git, Bob, RPGUnit, and GitHub Actions all run on IBM i 7.3+. This…
Building REST APIs on IBM i: Node.js in PASE, IAS REST, and connecting modern front ends to your RPG business logic
REST APIs are the bridge between IBM i and modern front ends. This post covers every practical option — IAS…
IBM i and the cloud: modernisation strategies, hybrid architectures, and what staying on IBM i actually means in 2026
The "should we leave IBM i?" conversation has been happening for twenty years. The shops that handled it well are…
Source control for IBM i: managing your RPG and CL source with Git and RDi
Most IBM i shops still manage source the same way they did in the 1990s — members in source physical…
CL job scheduling on IBM i: SBMJOB, WRKJOBSCDE, and automating batch work
IBM i batch jobs are the ones nobody watches — until one fails. This post covers SBMJOB, WRKJOBSCDE, job queues,…
Debugging RPG programs: the ILE debugger, source-level debugging, and reading dumps
Every RPG developer eventually writes a program that does something it should not. The calculation is wrong. The loop runs…
Error handling in RPG: building programs that fail gracefully
Most RPG programs are written to handle the happy path. The file exists, the record is found, the calculation succeeds,…
Security on IBM i: object authority, user profiles, and keeping your data safe
IBM i has a reputation for being secure. That reputation is earned — the security model is granular, well-designed, and…
Performance tuning on IBM i: finding bottlenecks and reading query plans
Performance problems on IBM i tend to fall into a small number of categories. A query that reads every record…
Operations and admin on IBM i: job queues, output queues, and keeping the system running
Every IBM i developer eventually ends up doing some administration. A job gets stuck. The output queue fills up. A…
Modern integrations on IBM i: calling REST APIs and working with JSON
IBM i has been talking to other systems for decades. EDI over AS/400 communications, FTP file drops, MQ message queues…
IFS and stream files on IBM i: the bridge to the outside world
Most IBM i developers spend their entire careers working with physical files and never touch the IFS. That is understandable…
DB2 for i: the database hiding in plain sight
Every physical file you have ever defined in DDS, every CHAIN and READ in your RPG programs, every logical file…
CL commands for RPG programmers: the system layer you cannot ignore
If you write RPG, you already use CL whether you realise it or not. Every time you submit a job,…
Embedded SQL in RPGLE: query your data the way you think about it
You already know how to read files with READ and CHAIN. They work. But the moment your query involves a…
Subprocedures and Service Programs in RPGLE: write once, call everywhere
Subprocedures let you break logic into reusable blocks inside a single program. Service programs take it further — compile your…
Free-format RPG: A practical guide for intermediate developers
You already write RPG. Free-format does not replace what you know — it removes the straitjacket. No more counting columns,…
IBM i Modernization: Cut Legacy AS400 Costs by 30%
A practical enterprise guide to IBM i modernization covering APIs, RPG transformation, AI-assisted modernization, and legacy system evolution.