IBM i System Health Checker – What is QSQIBMCHK?

  • Home
  • /
  • Blog
  • /
  • IBM i System Health Checker – What is QSQIBMCHK?

February 24, 2026

IBM i System Health Checker – What is QSQIBMCHK?

By NickLitten

February 24, 2026

IBM i

If you have ever hit weird SQL errors on your IBM i, seen missing functions in SYSTOOLS, or run into problems after an unexpected IPL or data migration, then QSYS/QSQIBMCHK is the tool you need to know. This is one of those hidden IBM i gems that quietly saves the day when your database catalog starts acting up.

Let me give you the straight story on what it is, why it matters, and exactly how to use it in real life.

What is QSQIBMCHK?

QSYS/QSQIBMCHK is an IBM-supplied program that checks the health of all the core database objects IBM delivers with the operating system. It scans the key system libraries that power SQL on IBM i:

  • QSYS2
  • SYSIBM
  • SYSIBMADM
  • SYSPROC
  • SYSTOOLS

It reports any missing objects or catalog entries but does not fix anything. Think of it as your quick diagnostic scan. Run it, check the job log, and you instantly know if something important has gone walkabout. It works for both the system ASP (SYSBAS) and any independent ASPs (iASPs) you have attached.

Why Every IBM i Programmer Should Run This Regularly

These objects are the foundation for everything SQL on IBM i. Missing pieces cause:

  • SQL statements that suddenly fail
  • SYSTOOLS functions disappearing (like the ones you use in ACS Run SQL Scripts)
  • Problems with Code for IBM i, IBM i Access Client Solutions, or third-party tools
  • Errors during migrations, restores, or after an unplanned IPL

In my daily work with RPG, free-format SQL, and open-source builds, I run this check whenever I see strange catalog behaviour. It takes seconds and tells me exactly where the problem is.

How can we run QSQIBMCHK? Super simple. Fire up a 5250 session or the terminal in Code for IBM i and use these commands.

For the system ASP (SYSBAS) – most common case:

CALL QSYS/QSQIBMCHK

The answers are streamed into your joblog. This might look like this:

CALL QSYS/QSQIBMCHK

For a specific iASP:

SETASPGRP ASPGRP(YOURIASPNAME)
CALL QSYS/QSQIBMCHK

After the call finishes, always check the job log:

DSPJOBLOG

or

DSPJOBLOG OUTPUT(*PRINT)

The output lists every missing object with clear messages. If everything is healthy you will see zero missing objects reported.

TOTAL IBM OBJECTS FOUND = 850
TOTAL IBM OBJECTS UNKNOWN = 0
TOTAL IBM OBJECTS MISSING = 0

When to Use It

Make this part of your standard checklist:

  • After any unexpected IPL
  • Following a data migration or system restore
  • When users report “missing SYSTOOLS functions” or SQL catalog errors
  • Before and after applying major PTFs or Technology Refreshes
  • During health checks on development, test, or production partitions

It is also the first thing IBM Support usually asks you to run when you open a database-related PMR.

Quick Tip – Pair It With the Recovery Tool

Remember, QSQIBMCHK only checks. If it reports missing objects, the fix is usually one call to the recovery program (after setting the right job environment):

CALL QSYS/QSQSYSIBM

But always run the check first so you know exactly what needs fixing.

Wrapping Up

QSYS/QSQIBMCHK is one of those small tools that makes IBM i administration so much smoother. Add it to your personal toolkit today. Run it once a month on every partition and you will catch problems before they bite your users or your builds.

Next time something feels off with your SQL catalog, do not guess. Just CALL QSYS/QSQIBMCHK and let the system tell you the truth.


Real World Example

I ran QSQIBMCHK while trying to figure out a storage problem I was experiencing last week. It reported one missing component: VIEW-QSYS2/CONDENSEDINDEXADVICE

missing component - VIEW-QSYS2-CONDENSEDINDEXADVICE

Aaaargh!

Luckily – I asked IBM to heal itself and it did a great job:

CALL QSYS/QSQSYSIBM                                           
PROCESSING QSYS2/QSQPDTBL                                     
VIEW QSYS2.CONDENSEDINDEXADVICE (07500000006) WILL BE CREATED 
Member CONDIDXA renamed to member CONDE00001.                 
Ownership of object CONDIDXA in QSYS2 type *FILE changed.     
Object copied.                                                
File QCSRC created in library QTEMP.                          
Member LPRINTF added to file QCSRC in QTEMP.                  
Member LPRINTF file QCSRC in QTEMP cleared.                   
File QCSRC in library QTEMP already exists.
Member IFS_RENAME added to file QCSRC in QTEMP.                  
Member IFS_RENAME file QCSRC in QTEMP cleared.                   
Ownership of object SERV_INFO in QSYS2 type *FILE changed.       
PROCESSING QSYS2929/QSQPDTBL                                     
File QTOOLSRC created in library QTEMP.                          
Member MRMSG2 added to file QTOOLSRC in QTEMP.                   
PROCESSING QSYS/QSQSYSIBM(QSQDBNAV)                              
QSQSYSIBM ASNEEDED PROCESSING SUCCESSFUL FOR 1177 COMPONENTS.

Run the QSQIBMCHK checker again and celebrate:

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Join the IBM i Community for FREE Presentations, Lessons, Hints and Tips

>