Thursday, March 27, 2025

One thousand posts

Yesterday another milestone was reached for this website, its one thousandth post!

Personally I think this is a remarkable achievement, to have been able to provide you with information about IBM Power and IBM i for the past 11 years, 9 months, and 17 days.

I want to thank all of you for helping make this possible. Without your encouragement, via social media, email or in-person, this blog would not have become what it has.

Wednesday, March 26, 2025

For RPG program where can I see the path name?

This post is in answer to a question I was asked:

We have compiled an RPG program from an IFS location but we are unable to determine the source of the compilation. We attempted the DSPPGM command and APIs, but they only show the member location when the program is compiled from a library, not for the IFS.

All modern RPG programs contain modules, even if I used the CRTBDNRPG command to create the program object. In this example I have a program TESTRPG, that is in the library MYLIB, that I created using CRTBDNRPG.

Wednesday, March 19, 2025

MTI_INFO now includes member name

As part of the latest round of Technology Refreshes, IBM i 7.5 TR5 and 7.4 TR11, the MTI_INFO Table function was enhanced with the addition of the member or Table partition name the MTI was created over. I have to admit I was surprised this was not included when the Table function was first introduced.

The new column is called TABLE_PARTITION, it is the third column in the results, and is a VARCHAR of a maximum of 128 characters.

If I just wanted to view all of the MTIs in my partition I would use the following statement:

01  SELECT TABLE_SCHEMA,TABLE_NAME,FILE_NAME,
02         TABLE_PARTITION
03    FROM TABLE(QSYS2.MTI_INFO())
04   ORDER BY 1,2
05   LIMIT 5

Wednesday, March 12, 2025

New parameter added to Audit Data Mart procedure

Audit Data Marts were added to IBM i in the previous round of TRs, and in the latest round of TRs comes what I can think is a significant improvement.

IMHO Audit Data Marts are a big improvement in the way I can manage Audit journal data. It allows me to copy the data from the QAUDJRN journal into a series of Audit Data Mart Tables. Each Audit Data Mart Table contains the data for one particular audit journal entry types. I am not going to go into more detail about creating Audit Data Marts as I wrote, in detail, about how to use them in my post: Audit Journal Data Mart in October of last year.

An additional parameter was added to the procedure MANAGE_AUDIT_JOURNAL_DATA_MART that makes it possible to select the information when I create or reload the Audit Data Mart. It is the DATA_MART_FILTER parameter. With this I can add additional selection criteria, in SQL format, to the MANAGE_AUDIT_JOURNAL_DATA_MART statement. Up to a thousand characters can be entered. Be warned the statement entered here is not validated, therefore, if what you enter is not valid it will cause an SQL syntax error when the statement is executed.

Monday, March 10, 2025

RPGPGM.COM-unity reaches India

I handed out a lot of RPGPGM.COM-unity ribbons at last month's COMMON India conference in Pune.

You can see who I gave them to here.

And you can learn about what the RPGPGM.COM-unity is here.

Wednesday, March 5, 2025

Deleting all spool files with a certain form type

The idea for this post came from a question I was asked in a presentation last month. The more I think about the solution I developed I am of the opinion that many of you might find this useful.

The question was: Is there a way, using SQL, to delete all the spool files that have a particular form type?

I have been using the DELETE_OLD_SPOOLED_FILES SQL procedure to delete old spool files on my partition. Alas, the Procedure does not have a parameter for form type.

Another idea sprung to mind, I could use the OUTPUT_QUEUE_ENTRIES_BASIC SQL View to select the spool files I want to delete, and do the deleting in the same statement using the appropriate CL command in the QCMDEXC Scalar function. I am sure some of you are wondering why I picked OUTPUT_QUEUE_ENTRIES_BASIC View rather than OUTPUT_QUEUE_ENTRIES View. The "basic" version has less columns than the "full" version, which makes it faster to return results.

The crucial part of my design is that I must get the selection criteria correct when I use the OUTPUT_QUEUE_ENTRIES_BASIC.

Tuesday, March 4, 2025

Inaugural Common India a great success

Last week, Monday 24 – Wednesday 26 February, was a truly historic event. The first COMMON event in India. I was lucky to be invited to make some presentations at the event.

I was most impressed by the attendees' thirst for knowledge for the latest about the IBM Power server and the IBM i operating system. While helping at the registration desk I was surprised how many people recognized me and the other USA based IBM Champions who were attending the conference. I soon lost count of the number of times I was asked to appear in someone's selfie. There was a range of experience there, from people who has been working with IBM i for decades, to students who want to learn about whether this was an environment they could have a career in.


IBM Champions: Gajendar Tyagi, Simon Hutchinson, Ranga Deshpande,
Marina Schwenk, Nirmal Kumar Khatri, Charlie Guarino