Wednesday, April 8, 2026

New Job columns added to the Record Lock View

In my last post I explained how the parts of the IBM i job name had been added as separate columns to the OBJECT_LOCK_INFO SQL View. I am pleased to say that the same three columns have been added to the RECORD_LOCK_INFO View too:

  1. JOB_USER:  User profile of the job
  2. JOB_NAME_SHORT:  Name of the job
  3. JOB_NUMBER:  Number of the job

Before these columns were added, if I wanted to list my jobs, with the user profile "SIMON", I would need to extract it from the full job name or use a wildcard in the Where clause. With the addition of these three columns, I will show much easier this becomes.

If I wanted to check for record locks, not using RECORD_LOCK_INFO, I would use the Display Record Locks command, DSPRCDLCK. For example, if I wanted to check for record locks on TESTFILE, in my library, I would use the following:

01  DSPRCDLCK FILE(TESTFILE)

Which will show me the following:

Tuesday, April 7, 2026

New columns added to the Object Lock View

While the addition of these three new columns to the OBJECT_LOCK_INFO SQL View may not appear to be significant, I know it will make it easier for me to process data for jobs.

The three new columns are all part of the long job name, and now have their own columns:

  1. JOB_USER:  User profile of the job
  2. JOB_NAME_SHORT:  Name of the job
  3. JOB_NUMBER:  Number of the job

Prior to the addition of these columns if I wanted to list my jobs, with the user profile "SIMON", I would need to extract it from the full job name or use a wildcard in the Where clause.

Before I show any SQL statements I need to explain the scenario I created. I have two programs:

  1. Program 1: This RPG program opens the file TESTFILE for update and then pauses for ten minutes
  2. Program 2: The second program uses a display file, TESTDSPF, and uses the EXFMT operation code to show it on the screen

Thursday, April 2, 2026

April presentations

I will be presenting at two in-person conferences this month, and look forward to seeing you at one or both of them.


The first is in Leominster, MA, for the Northeast User Group Conference, NEUGC, Tuesday April 7 - Thursday April 9.

This is my first time at this conference. I will be making eight presentations, starting with a two hour presentation on Tuesday night about SQL Views. You can see the complete schedule here.

To register go here.


Then on Monday April 27 - Thursday April 30 I will be in New Orleans, LA, for COMMON PowerUp 2026. This is the biggest IBM i conference of the year.

I will be busy here too making seven presentations. You can see the event's schedule here.

And register here.

Wednesday, April 1, 2026

Viewing the job's overrides

I have been burned before by file overrides, which point input, output, update, etc. both to an expected file. Anything new that comes along to help me show overrides makes me happy. The Fall 2025 Technology Refreshes, IBM i 7.6 TR1 and 7.5 TR7, has done that with a new SQL View: OVERRIDE_INFO. This view will return information about the overrides for the current job only.

I can override all kinds of files:

  • OVRDBF:  database files
  • OVRDSPF:  display files
  • OVRMSGF:  message files
  • OVRPRTF:  printer files
  • OVRSAVF:  save files
  • OVRTAPF:  tape files

I readily admit I have not used all of these commands.

There are three different levels I can scope an override:

Friday, March 27, 2026

Update to the technical resources roadmap

Yesterday an updated version of the IBM i technical resource roadmap was published. This web page contains a list of useful links for all things IBM i, from both IBM and other sources too. You will even find a link to this website in the Blogs section.

You can visit the page using the link here.

I have also updated the link, number 6 in the "Links to useful sites", on the right.

I am sure you will find something of interest on that page.

Wednesday, March 25, 2026

Using SQL to view system problems

Just a few weeks ago someone asked me if there was a way, using SQL, he could view problems on his system. What we mean by "problems" are not just error messages. These are the kinds of problems/errors that create a "problem" on your partition that you would use the DSPRPB, Display Problem, command to view.

Fortunately in the Fall 2025 Technology Refreshes, IBM i 7.6 TR1 and 7.5 TR7, was a new SQL View that displays this information: PROBLEM_INFO

Before I describe PROBLEM_INFO, I want to explain the methodology that was used before. IBM i has a Problem Management function that alerts when there are issues with hardware and system software. If I wanted to see what problems there are on this partition I would use the DSPPRB, Display Problem, command. I can enter the following on any command line:

 DSPPRB

Tuesday, March 24, 2026

Wisconsinites join the RPGPGM.COM-unity

At my first conference of the year, WMCPA iCon, I handed out 51 ribbons to the newest members of the RPGPGM.COM-unity.

You can see photographs of these new members here.

If you see me at an IBM i event feel free to introduce yourself to me. In all likelihood I will have a RPGPGM.COM-unity ribbon on me, and you can become a member. All I ask in return is a photograph of you with it.

If you would like to learn more about the RPGPGM.COM-unity click here.

Wednesday, March 18, 2026

Reducing the amount of unnecessary Index Advisor data

I do check the Index Advisor on a regular basis to see what is recommended. I have found that this perspective can become overwhelmed by old data. Who cares what index were advised over a year ago? I either addressed that advice, or the program(s) were changed that used the files in that way.

Every six months I go into the tool and clear the data. This way I will only see the recent recommendations. I have an entry in my calendar to remind me to do this. Wouldn't it be nice if this could be automated.

As part of the latest Technology Refreshes, IBM i 7.6 TR1 and 7.5 TR7 a new Global variable is introduced that will automate the purging for me.

Tuesday, March 17, 2026

Limiting the amount of data SELF retains

While I love the amount of information that the IBM i will retain for us, there are times where it can become overwhelming, or redundant. An example of this is how much SELF, SQL Error Logging Facility, data do I wish to retain.

Prior to the latest Technology Refreshes, IBM i 7.6 TR1 and 7.5 TR7, I was responsible for purging the SELF error log table, QSYS2/SQL_ERRORT. As part of these TRs a new Global variable was introduced.

Wednesday, March 11, 2026

Finding Table functions with SYSFUNCS

In every IBM i recent release and Technology Refresh a few new Audit Journal Table extract functions are added. I wanted to see which one were on the IBM i partition I was using. I was tempted to use the OBJECT_STATISTICS Table function to get a list of them:

01  SELECT OBJNAME,OBJLONGNAME
02  FROM TABLE(QSYS2.OBJECT_STATISTICS('SYSTOOLS','*ALL','AUD*'))

Line 1: I am only interested in the system object name, OBJNAME, and the long (SQL) object name, OBJLONGNAME.

Line 2: The Audit Journal Table functions are in the SYSTOOLS library. I am using the wild card for the object name, in the third parameter, to find all the objects that start with 'AUD'.

The results were:

Wednesday, March 4, 2026

Retrieving the description for the Audit Journal Entry Types

I have, to date, been disappointed that I could not programmatically retrieve a description for the 420 Audit journal entry types. Referring to IBM's documentation was just not practical. A new SQL View in the Fall 2025 Technical Refreshes has given me what I wanted, a list of all the journal entry types with their descriptions.

The View is JOURNAL_CODE_INFO, which is found in the library QSYS2. It contains the following columns:

  1. JOURNAL_CODE:  The journal code
  2. JOURNAL_CODE_DESCRIPTION:  Description of the Journal code
  3. JOURNAL_ENTRY_TYPE:  Journal entry type
  4. JOURNAL_ENTRY_TYPE_DESCRIPTION:  Description for the journal entry type

The journal codes are for a specific "action", while the Journal Entry Type is the type of information. You can see this with the new View with the following statement: