// All articles
Articles
150 posts — sorted by latest first
[RPG PROGRAMMING]
Learn how fixed-size RPGLE arrays use DIM, one-based subscripts, and %ELEM to store and process ordered values safely.
[RPG PROGRAMMING]
Use RPGLE LEAVE and ITER correctly: exit a loop immediately, skip the rest of the current iteration, and keep loop-control…
[RPG PROGRAMMING]
Learn how pre-test RPGLE DOW loops evaluate their while-condition before the body runs, why the body can execute zero times,…
[RPG PROGRAMMING]
Learn how post-test RPGLE DOU loops run their body first, evaluate the until-condition at ENDDO, and guarantee at least one…
[RPG PROGRAMMING]
Learn how counted RPGLE DO loops initialize an index, repeat a controlled block, advance through an inclusive limit, and avoid…
[RPG PROGRAMMING]
Learn how RPGLE comparison operators and AND/OR logic build boolean conditions, how precedence and grouping actually work, and how to…
[RPG PROGRAMMING]
Learn how RPGLE guard clauses and early exits can flatten nested conditions, expose the main path, and make procedure logic…
[RPG PROGRAMMING]
Learn how RPGLE SELECT, WHEN, OTHER, and ENDSL express readable multi-branch decisions, with ordered evaluation and practical business examples.
[RPG PROGRAMMING]
Learn how RPGLE IF, ELSEIF, ELSE, and ENDIF choose one-way, two-way, and ordered decision paths through practical business examples.
[RPG PROGRAMMING]
Learn what RPGLE's default (reference-style) parameter passing, VALUE, and CONST actually do to caller storage, with before/after worked examples and…
[DB2 FOR I]
Learn how to use the Db2 for i MERGE statement to update matching rows and insert new rows in one…
[RPG PROGRAMMING]
Learn the difference between an RPGLE variable, a named constant, and a literal, and how to use DCL-C, character/numeric/typed literals,…
[RPG PROGRAMMING]
Learn RPGLE data structure basics: declare typed subfields, use QUALIFIED access, reuse layouts with LIKEDS, and read simple nested structures.
[RPG PROGRAMMING]
Use RPGLE character, decimal, integer, date/time, and indicator types correctly by understanding what each declaration's length and precision mean.
[RPG PROGRAMMING]
Declare RPGLE variables with DCL-S, and see how scope and storage type - automatic, static, and working storage - control…
[IBM I FUNDAMENTALS]
Organize fully free-form RPGLE with consistent sections, spacing, indentation, continuations, and comments that make program flow easier to review.
[RPG PROGRAMMING]
Learn how RPGLE indicators and status flags control legacy program flow, and how to map many patterns to clearer fully…
[RPG PROGRAMMING]
Learn how legacy RPGLE C-specs express calculations and control flow, then map those responsibilities to clear, fully free-form RPGLE logic.
[RPG PROGRAMMING]
Beginner guide to traditional RPGLE input and output specifications, their relationship to records and fields, and the modern fully free-form…
[RPG PROGRAMMING]
Beginner guide to RPGLE compiler directives, the **free directive, ctl-opt, and program-wide control options.
[RPG PROGRAMMING]
Beginner guide to the major sections of a typical RPGLE program and why each section exists.
[RPG PROGRAMMING]
Beginner guide to clearer RPGLE names, cleaner ordering, and easier-to-maintain code.
[RPG PROGRAMMING]
Beginner guide to reading RPGLE source in the right order.
[MODERNIZATION]
Beginner guide to RPGLE editing tools and the edit, compile, diagnose, run workflow.
[RPG PROGRAMMING]
Beginner guide to the three RPGLE source styles you will see in IBM i code.
[RPG PROGRAMMING]
Beginner guide to how RPGLE source becomes a compiled IBM i program object.
[RPG PROGRAMMING]
Beginner guide to RPGLE terminology on IBM i.
[RPG PROGRAMMING]
Beginner-friendly RPGLE pillar for IBM i.
[IBM I FUNDAMENTALS]
REST APIs and HTTP clients let IBM i exchange business data with modern systems while keeping the core logic controlled…
[IBM I FUNDAMENTALS]
JSON and XML processing let IBM i exchange structured data with modern systems without forcing the core logic to change…
[IBM I FUNDAMENTALS]
Good IBM i error handling turns a vague failure into a message, a log entry, and a clear recovery path.
[IBM I FUNDAMENTALS]
Modules, bound programs, and binding directories are the packaging layer that turns compiled IBM i code into reusable application components.
[AI FOR IBM I]
Prevent IBM i resource leaks and job restarts by mastering activation groups, call stacks, ACTGRP settings, and a practical RPG,…
[IBM I FUNDAMENTALS]
Good IBM i application design separates concerns, keeps business logic readable, and makes change safer for the whole team.
[IBM I FUNDAMENTALS]
Security auditing and authority collection help IBM i teams see how access is used in practice and where permissions should…
[IBM I FUNDAMENTALS]
Release upgrades succeed when compatibility, testing, and rollback planning are treated as first-class work.
[IBM I FUNDAMENTALS]
PTF management is the routine discipline that keeps IBM i systems current, stable, and less surprising over time.
[IBM I FUNDAMENTALS]
Access Client Solutions is the modern client toolkit many IBM i users rely on for sessions, SQL work, file transfer,…
[IBM I FUNDAMENTALS]
The Integrated File System is how IBM i works with stream files and directories in a way that looks familiar…
[IBM I FUNDAMENTALS]
Data areas, data queues, and user spaces give IBM i programs simple building blocks for sharing state and passing messages.
[IBM I FUNDAMENTALS]
A practical look at why IBM i remains relevant in 2026, including stability, integrated architecture, and long-lived business value.
[IBM I FUNDAMENTALS]
Output queues and spool files are the IBM i print and report pipeline, even when the final destination is not…
[IBM I FUNDAMENTALS]
A practical guide to IBM i security basics, including authorities, object protection, and simple best practices.
[IBM I FUNDAMENTALS]
Subsystems and job descriptions are the operational framework that decides where work runs and how jobs are classified on IBM…
[IBM I FUNDAMENTALS]
Journaling and commitment control are the pieces that help IBM i applications protect data changes and recover cleanly after failures.
[IBM I FUNDAMENTALS]
A practical IBM i career path starts with the basics, then grows into development, operations, database work, and broader platform…
[IBM I FUNDAMENTALS]
A beginner-friendly explanation of Db2 for IBM i and why the database layer is so tightly integrated with the platform.
[IBM I FUNDAMENTALS]
Good IBM i maintenance is about managing change safely: source control, review, testing, documentation, and predictable releases.
[IBM I FUNDAMENTALS]
A practical introduction to CL programming on IBM i, including what it is used for and why it matters in…
[IBM I FUNDAMENTALS]
SQL on IBM i is the modern way to query and manage Db2 for i data. Beginners can start with…
[IBM I FUNDAMENTALS]
A beginner-friendly introduction to RPGLE on IBM i, including what it is, why it is still used, and how to…
[IBM I FUNDAMENTALS]
Performance tuning on IBM i starts with measurement, workload understanding, and small changes that improve real bottlenecks.
[IBM I FUNDAMENTALS]
IBM i batch work runs on schedules, queues, and jobs. Understanding that flow helps beginners see how the platform handles…
[IBM I FUNDAMENTALS]
A practical introduction to the IBM i object model, including libraries, objects, members, and how they are used every day.
[IBM I FUNDAMENTALS]
Debugging on IBM i starts with logs, messages, and the right tools. Beginners can learn to isolate problems without guessing.
[IBM I FUNDAMENTALS]
A beginner-friendly explanation of the IBM i architecture, including the operating system, integrated database, objects, and the server layer.
[IBM I FUNDAMENTALS]
IBM i organizes data through libraries, files, members, and SQL access. Understanding those layers makes the platform much easier to…
[IBM I FUNDAMENTALS]
IBM i and mainframe systems both support serious enterprise workloads, but they are different platforms with different operating models, scale…
[IBM I FUNDAMENTALS]
Modernizing IBM i does not mean replacing the platform. It usually means exposing existing systems through APIs, SQL, better interfaces,…
[CL COMMANDS]
Master IBM i message queues and CL error handling in 2026: create message files with CRTMSGF and ADDMSGD, send informational…
[IBM I FUNDAMENTALS]
A short history of the AS/400 platform lineage and how it evolved into the IBM i environments that run on…
[DB2 FOR I]
Master DB2 for i stored procedures in 2026: create SQL procedures with CREATE PROCEDURE, define IN, OUT, and INOUT parameters,…
[APIS & INTEGRATION]
Call external REST APIs from IBM i in 2026: use QSYS2.HTTP_GET and QSYS2.HTTP_POST SQL table functions to make HTTP requests,…
[IBM I FUNDAMENTALS]
AS400 is the common historical name, while IBM i is the current operating system. This article explains what each term…
[CL COMMANDS]
Master ILE RPG service programs in 2026: compile RPG modules with CRTRPGMOD, create service programs with CRTSRVPGM, export and import…
[OPERATIONS & ADMIN]
Master IBM i save and restore in 2026: save and restore individual objects with SAVOBJ and RSTOBJ, save entire libraries…
[IBM I FUNDAMENTALS]
AS400 usually means IBM i running on IBM Power hardware. This beginner's guide explains AS/400, IBM i, and IBM Power…
[DB2 FOR I]
Master DB2 for i triggers in 2026: create BEFORE and AFTER triggers with CREATE TRIGGER, use FOR EACH ROW and…
[CL COMMANDS]
Master IBM i commitment control in 2026: start and end commitment definitions with STRCMTCTL and ENDCMTCTL, control DB2 transaction scope…
[CL COMMANDS]
Master IBM i job scheduling in 2026: add recurring batch jobs with ADDJOBSCDE, manage schedules with WRKJOBSCDE and CHGJOBSCDE, create…
[MODERNIZATION]
Build AI-driven anomaly detection for IBM i operational data in 2026: query QSYS2 system views for job and performance metrics,…
[IFS & FILE SYSTEMS]
Secure the IBM i Integrated File System (IFS) in 2026: manage stream file and directory authorities with CHGAUT and WRKOBJAUT,…
[MODERN INTEGRATIONS]
Integrate IBM MQ with IBM i in 2026: create and configure queue managers, define local and remote queues, set up…
[OPERATIONS & ADMIN]
Master IBM i output queue and print management in 2026: create and configure output queues with CRTOUTQ and CHGOUTQ, work…
[DB2 FOR I]
Master DB2 for i common table expressions (CTEs) and recursive SQL in 2026: use the WITH clause to name intermediate…
[MODERNIZATION]
Master ILE RPG string handling on IBM i in 2026: use %SCAN, %SUBST, %REPLACE, %TRIM, %TRIMR, and %TRIML for text…
[OPERATIONS & ADMIN]
Configure and troubleshoot IBM i TCP/IP networking in 2026: use CFGTCP to manage interfaces and routes, add IP addresses with…
[MODERNIZATION]
Apply the strangler fig pattern to IBM i modernization in 2026: identify seams in monolithic RPG applications, build a facade…
[APIS & INTEGRATION]
Build a production REST API server on IBM i in 2026 using Node.js and Express in PASE: connect to DB2…
[IFS & FILE SYSTEMS]
Read and write IFS stream files from ILE RPG programs on IBM i in 2026: use Qp0lOpen, Qp0lRead, Qp0lWrite, and…
[CL COMMANDS]
Master IBM i data areas and data queues for inter-program communication in 2026: create and manage data areas with CRTDTAARA,…
[DB2 FOR I]
Master DB2 for i window functions in 2026: use ROW_NUMBER, RANK, DENSE_RANK, NTILE, LAG, LEAD, FIRST_VALUE, and LAST_VALUE with the…
[DB2 FOR I]
Master ILE RPG date and time handling in 2026: declare date, time, and timestamp fields, convert between formats using %DATE…
[MODERN INTEGRATIONS]
Bring AI inference to IBM i in 2026 with IBM watsonx on Power: deploy Granite foundation models co-located with your…
[OPERATIONS & ADMIN]
Tune IBM i memory performance in 2026: understand the *BASE, *INTERACT, and *SPOOL shared pool structure, set pool sizes and…
[MODERN INTEGRATIONS]
Send email from IBM i in 2026 using every available method: configure the SMTP server with CHGSMTPA, send plain-text alerts…
[CL COMMANDS]
Automate IBM i batch jobs in 2026: add recurring schedule entries with ADDJOBSCDE, manage and monitor schedules with WRKJOBSCDE, set…
[DB2 FOR I]
Unlock the power of DB2 for i CTEs and recursive SQL in 2026: write readable multi-step queries using the WITH…
[MODERNIZATION]
Master IBM i RPG subfile programming in 2026: design subfile and subfile control record formats in DDS with SFLPAG and…
[IFS & FILE SYSTEMS]
Secure the IBM i Integrated File System in 2026: understand the IFS authority model, control *PUBLIC access, use CHGAUT and…
[OPERATIONS & ADMIN]
Master IBM i journal management in 2026: create journals and journal receivers with CRTJRN, start and end object journaling with…
[MODERNIZATION]
Modernize fixed-format RPG on IBM i using AI tools in 2026: convert with CVTRPGSRC and IBM Merlin, use LLMs like…
[MODERN INTEGRATIONS]
Implement OAuth 2.0 authentication from IBM i in 2026: the client credentials flow using HTTPAPI and DB2 HTTP functions, storing…
[DB2 FOR I]
Optimize DB2 for i query performance in 2026: understand SQE vs CQE query engines, use Visual Explain in ACS to…
[CL COMMANDS]
Build robust IBM i CL programs with proper exception handling: IBM i message types, MONMSG command patterns, program message queue…
[RPG PROGRAMMING]
Master ILE RPG data structures: dcl-ds syntax, qualified data structures with dot notation, LIKEDS for cloning a structure, template data…
[IFS & FILE SYSTEMS]
Understand the IBM i PASE runtime in depth: AIX binary compatibility, how PASE differs from QShell, managing environment variables, PASE…
[MODERN INTEGRATIONS]
Set up a modern IBM i development environment in 2026: install the Code for IBM i VS Code extension, edit…
[OPERATIONS & ADMIN]
A complete guide to IBM i work management in 2026: create custom subsystem descriptions, configure routing entries and class objects,…
[MODERN INTEGRATIONS]
Learn how to integrate IBM i with Microsoft Azure in 2026 using the Azure Python and Node.js SDKs in PASE.…
[DB2 FOR I]
A comprehensive guide to DB2 for i JSON and XML functions in 2026: extracting scalars with JSON_VALUE, shredding arrays with…
[CL COMMANDS]
A deep dive into the IBM i ILE binding model: how modules, programs, service programs, and binding directories relate, how…
[CL COMMANDS]
Master IBM i CL exception handling in 2026: message file architecture, CRTMSGF and ADDMSGD to define messages, SNDPGMMSG for escape…
[OPERATIONS & ADMIN]
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]
A comprehensive guide to DB2 for i SQL stored procedures and user-defined functions in 2026: CREATE PROCEDURE syntax, IN/OUT parameters,…
[MODERN INTEGRATIONS]
A practical guide to using AI and large language models to document legacy IBM i RPG programs in 2026: extracting…
[CL COMMANDS]
A complete guide to IBM i system startup and shutdown procedures in 2026: understanding the IPL sequence, configuring QSTRUP, starting…
[MODERN INTEGRATIONS]
HTTPAPI by Scott Klement is the standard open source library for making outbound HTTP calls from IBM i RPG programs.…
[DB2 FOR I]
DB2 for i triggers fire automatically on INSERT, UPDATE, and DELETE, enforcing rules that application code cannot bypass. This post…
[MODERN INTEGRATIONS]
A complete guide to RPGUnit for ILE RPG in 2026: install the framework, write test cases and test suites for…
[MODERN INTEGRATIONS]
A practical IBM i application modernisation roadmap for 2026: compare six strategies from screen transformation and API wrapping to selective…
[DB2 FOR I]
Vector search and text embeddings bring semantic search to IBM i in 2026 — converting DB2 for i text fields…
[DB2 FOR I]
DB2 for i replication in 2026 is built on IBM i journals — the same journal receivers that underpin HA…
[MODERN INTEGRATIONS]
A hands-on guide to connecting IBM i with Apache Kafka in 2026 — running kafkajs and confluent-kafka-python producers in PASE,…
[MODERN INTEGRATIONS]
A practical guide to IBM i display files in 2026 — DDS syntax, CRTDSPF, RPG EXFMT screen I/O, subfile programming…
[OPERATIONS & ADMIN]
IBM i PTF management in 2026 spans four distinct fix types — individual PTFs, cumulative PTF packages, SF99xxx group PTFs,…
[OPERATIONS & ADMIN]
IBM i high availability and disaster recovery in 2026 requires understanding the full stack: geographic mirroring at the storage layer,…
[MODERN INTEGRATIONS]
Python runs natively on IBM i in PASE with direct DB2 access via ibm_db and pyodbc, IBM i program calls…
[OPERATIONS & ADMIN]
The IBM i OS API layer accessible from ILE RPG: QCMDEXC for running CL commands at runtime, the list API…
[IFS & FILE SYSTEMS]
Advanced IBM i IFS topics for production environments: enabling journalling on IFS directories for recovery and replication, sharing IFS directories…
[CL COMMANDS]
The operational CL commands IBM i administrators use every day: WRKACTJOB status codes explained (RUN, DSKW, LCKW, MSGW), CHGJOB and…
[DB2 FOR I]
Advanced DB2 for i query performance: the SQE versus CQE split and what it means for your queries, column statistics…
[OPERATIONS & ADMIN]
IBM i performance problems are almost always paging (undersized memory pools) or SQL without indexes. This post covers the IBM…
[MODERN INTEGRATIONS]
Node.js runs natively on IBM i in PASE with direct in-process access to DB2 for i via idb-connector and to…
[MODERN INTEGRATIONS]
AI intersects with IBM i in three ways: as an integration target (calling OpenAI or watsonx from RPG and SQL…
[IFS & FILE SYSTEMS]
The IBM i Integrated File System is the foundation of modern IBM i development — Git, open-source packages, Node.js, Python,…
[OPERATIONS & ADMIN]
IBM i security is object-based and OS-enforced — bypassing the application does not bypass security. This post covers QSECURITY levels,…
[OPERATIONS & ADMIN]
DB2 for i is not a database running on IBM i — it is part of the operating system. This…
[OPERATIONS & ADMIN]
Modern RPG is not the fixed-format column-dependent code that gave the language its reputation. This post covers fully free-format RPG…
[OPERATIONS & ADMIN]
CL is not a legacy language waiting to be replaced — it is the correct tool for controlling the IBM…
[MODERN INTEGRATIONS]
IBM i can integrate with Azure, AWS, and SaaS platforms without custom adapters or protocol gymnastics. This post covers five…
[OPERATIONS & ADMIN]
IBM i has collected detailed performance data for decades — most shops only look at it when something breaks. This…
[MODERN INTEGRATIONS]
IBM i DevOps is not theoretical — Git, Bob, RPGUnit, and GitHub Actions all run on IBM i 7.3+. This…
[MODERN INTEGRATIONS]
REST APIs are the bridge between IBM i and modern front ends. This post covers every practical option — IAS…
[MODERN INTEGRATIONS]
The "should we leave IBM i?" conversation has been happening for twenty years. The shops that handled it well are…
[RPG PROGRAMMING]
Most IBM i shops still manage source the same way they did in the 1990s — members in source physical…
[CL COMMANDS]
IBM i batch jobs are the ones nobody watches — until one fails. This post covers SBMJOB, WRKJOBSCDE, job queues,…
[RPG PROGRAMMING]
Every RPG developer eventually writes a program that does something it should not. The calculation is wrong. The loop runs…
[RPG PROGRAMMING]
Most RPG programs are written to handle the happy path. The file exists, the record is found, the calculation succeeds,…
[OPERATIONS & ADMIN]
IBM i has a reputation for being secure. That reputation is earned — the security model is granular, well-designed, and…
[OPERATIONS & ADMIN]
Performance problems on IBM i tend to fall into a small number of categories. A query that reads every record…
[OPERATIONS & ADMIN]
Every IBM i developer eventually ends up doing some administration. A job gets stuck. The output queue fills up. A…
[MODERN INTEGRATIONS]
IBM i has been talking to other systems for decades. EDI over AS/400 communications, FTP file drops, MQ message queues…
[IFS & FILE SYSTEMS]
Most IBM i developers spend their entire careers working with physical files and never touch the IFS. That is understandable…
[DB2 FOR I]
Every physical file you have ever defined in DDS, every CHAIN and READ in your RPG programs, every logical file…
[CL COMMANDS]
If you write RPG, you already use CL whether you realise it or not. Every time you submit a job,…
[RPG PROGRAMMING]
You already know how to read files with READ and CHAIN. They work. But the moment your query involves a…
[RPG PROGRAMMING]
Subprocedures let you break logic into reusable blocks inside a single program. Service programs take it further — compile your…
[RPG PROGRAMMING]
You already write RPG. Free-format does not replace what you know — it removes the straitjacket. No more counting columns,…
[AI FOR IBM I]
A practical enterprise guide to IBM i modernization covering APIs, RPG transformation, AI-assisted modernization, and legacy system evolution.