The TAA Productivity Tools are updated periodically for new tools, enhancements, and fixes. New versions are shipped a few times per year.
This document combines the most recent refresh notes that were previously in separate documents for new tools, enhanced tools, fixes, and incompatibilities. The document is organized by refresh with the most recent refresh listed first.
The complete set of release notes can be found on https://taatool.com.
Refresh T101 (January 15, 2024) is for IBM i 7.3, 7.4, and 7.5.
No further refreshes will be made for IBM i 7.2. However, fixes to 7.2 tools will continue to be supplied on an “as needed” basis until April 30, 2024.
No further refreshes or fixes will be made for IBM i 7.1 or earlier releases.
IBM has made a couple of changes in IBM i 7.5 that affect the results returned to the tools. The tools have been modified to accomodate these changes. You will have issues on IBM i 7.5 with CVTEDTD, CVTIFSAUT2, and DSPIFSOWN and tools that depend on them until you install this refresh. See the notes for the individual tools below.
CVTEDTD was affected by a spooled file output change.
While not technically incompatible the QSYLOBJA API now reports IFS path data in CCSID 1200 rather than the job CCSID. CVTIFSAUT2 and DSPIFSOWN were affected by this change. CVTIFSAUT2 is used by RVKIFSAUT, RVKIFSPGP, RNMIFSAUT, and RNMIFSPGP.
It should also be noted that the CVTIFSOWN command also uses QSYLOBJA. Since the reporting CCSID is included in the CVTIFSOWN output, the path name data in the output file is also reported in this CCSID. If are using CVTIFSOWN you may need to make changes to convert from the reported CCSID.
We are adopting a new scheme for naming our refreshes. Our Rxx numbering was being confused with IBM’s numbering of their releases. Refreshes are now named Tnnn, beginning with T101, this refresh. The T is either for “Tools” or “TAA” depending on your preference. We hope this makes things a bit less confusing.
The numbering of previous refreshes in our release notes will remain the same.
There are no new tools in this refresh. There are some new ones planned for the next refresh.
CVTDEVPRT
The output file for Convert Device Printer command has a new field for the last activity date added to the end of the record format. This can be useful if you have a large number of printers to track down the ones that are no longer being used.
CVTIFSOWN
Convert IFS Owners has been updated as described in our newsletter to convert path names on IBM i 7.5 from CCSID 1200 to the job CCSID so that they are more compatible with previous TAATOOL refreshes and IBM i releases.
CVTMSGQ
Convert Message Queue had a restriction that limited it to about 30,000 messages. This limit has been removed.
DSPJOBLOG3
The Display Job Log 3 tool has a new REFRESH keyword that is used to
view all the messages in the current job in a more convenient form than
that provided by F10 or by DSPJOBLOG. Try it with
DSPJOBLOG3 REFRESH(*YES)
.
DSPRCDLCK2
The Display Record Locks 2 command would complain about duplicate job names if duplicates existed even if only one of the duplicates was in active state. Since record locks can only exist in active jobs, the tool was enhanced to look for duplicates only in active jobs rather than all jobs.
DUPFILFMT
Duplicate File Format is extended to remove some limits on the file being created. This is important for RTVDLTRCD to handle extremely large files.
RTVDEVPRT
The Retrieve Device Printer command has a new keyword for the last activity date.
RTVDLTRCD
Retrieve Deleted Records was enhanced to allow for much larger files than it previously handled. See also DUPFILFMT enhancements needed for RTVDLTRCD.
WRKJOB2
WRKJOB2 now includes the completion date and time as the last column of the display for jobs in *OUTQ status.
WRKJOBSTS
Option 5 now does a WRKJOB immediately rather than prompting. Disconnect has moved from Option 7 to Option 13 to be consistent with WRKACTJOB.
ANZOUTQ
The Analyze Output Queue could run out of array space for very large queues. The tool now stops recording unique values in each section after 9998 have been found so the arrays never overflow.
CHGUSRPWD3
The CHGUSRPWD3 command did not monitor for the possible CPD escape messages sent by the APIs. The command now monitors for those.
CHKINACT
The Check Inactive Job Timeout tool would ignore a *ALL *ALL entry if
one was entered using WRKINACT. This entry is no longer ignored. This
has the effect of overriding the default action stored in the
application value TAASECURE/CHKINACT
. If such an entry is
not present then the application value becomes the default.
CMPJRNIMG2
The tool was incorrectly checking for a limit of 199 on the number of fields. This has been corrected to 998.
CPYSRCFIFS
CPYSRCFIFS did not issue reasonable error messages if the user was not authorized to the source file. New error messages have been added.
CPYUSRPRF2
Copy User Profile 2 is used on the SECOFR2 menu option 7. Code from the SECOFR2 menu was moved to the prompt override program to avoid a security exception when using option 7.
CVTCFGSTS
This tool would fail if executed in a server job such as one running SQL Scripts in ACS. This has been fixed.
CVTIFSOWN
There was a change in the IBM i 7.5 IFS APIs that returns path names in CCSID 1200 which is a UTF-16 CCSID. The code in CVTIFSOWN now takes the path name CCSID into account and converts it to the job CCSID for display and for use in commands.
CVTNETSTAT
The CVTNETCNN command of the CVTNETSTAT tool was failing when there was a large number of connections. The limits have been increased and the problem fixed.
CVTOUTQ
CVTOUTQ could receive a CPF3C44 exception if the output queue being converted had been moved from one ASP to another. CPF3C44 indicates that the internal spool id for a spooled file is no longer valid. CVTOUTQ was changed to not rely on internal spool ids. In addition CVTOUTQ could receive a CPF3C43 exception if the internal job id was no longer valid. This has been fixed.
DLTIFS
The DLTIFS command would not delete files if the file name contained trailing blanks. This has been corrected.
DLTOLDQRPL
The DLTOLDQRPL command would send an escape message if the total size of the objects remaining in QRPL exceeded 99,999,999,999 bytes. This has been increased.
DSPALLSAVF
The DSPALLSAVF command would not work when used from the FNDCMD list. This was due to conflicting overrides which have been fixed.
DSPDLTSPC
There was a possibility receiving a library not found message if the time between gathering the list of libraries and examining them was large enough for the library to be deleted in the interim. An additional test was added so that the timing window is now much smaller.
DSPJOBLOG3
The Display Job Log 3 tool would occasionally get lost when viewing large job log spooled files. The tool has been rewritten to avoid this issue.
DSPJOBLOG5
The Display Job Log 5 tool will filter just the last escape message and its related messages from a spooled job log file. If the job log being analyzed was too long this would fail with an array indexing error. This has been fixed.
DSPJOBSCDC
The Display Job Scheduler Calendar would fail with an exception if a *WEEKLY entry had *NONE for the days. This circumstance would be unusual, but valid. This has been fixed.
DSPMSG2
The Display Message 2 had an issue with filtering messages when used with explicit start and end times. This has been fixed.
DSPOBJD3
Display Object Description 3 allows for the examination of all libraries for objects. It would fail if the number of libraries examined was over 999. The limit has been extended.
DSPPWDLMT
Display Password Limit was not using the time and date ranges specified on the command. This has been fixed.
DSPTAACAT
DSPTAACAT would fail in Refresh R73 since we finally exceeded the array length for the number of tools in the product. We should have caught this one before shipping. Mea culpa.
GENRANPWD2
GENRANPWD2 would accidentally modify the PWDLEN parameter when used due to a parameter mismatch. This has been fixed.
MOVSPLF
MOVSPLF could fail in the cases where job numbers wrap so there are two identical job names with the same spooled file with the same spooled file number. While unlikely, this can happen when there are report jobs that are run every day for years. MOVSPLF will now pick one of those files instead of failing.
RMVMSGQMS2
Remove Message Queue Message 2 would fail if examining multiple queues and a queue was deleted after the list of queues was constructed. Any queues not found are now just skipped.
RTVFLDDTA
Retrieve Field Data would get a CPF0006 if run a second time before finalization. This was due to a working variable holding a constructed CHKOBJ command not being initialized. This has been fixed.
RTVJOBA2
The RTVJOBA2 command could fail in circumstances with a subscripting error when the information to be retrieved was too long for the area allocated. The area has been extended to handle that case.
RTVSPLSIZ
The Retrieve Spool Size tool could run out of room in a temporary file when working with a very large QSPL library. This would result in messages to QSYSOPR and possible cancellation. The maximum number of records in this temporary file has been increased substantially.
SECOFR2
Code from the SECOFR2 menu was moved to the prompt override program of CPYUSRPRF2 to avoid a security exception when using option 7.
CVTDEVPRT
The outfile for CVTDEVPRT has been modified to add a new field to the end of the record format. Outfiles from previous versions of the tool may need to be deleted. The tool will re-create these on first use.
There are no known incompatibilities in this refresh.
Refresh 73 (June 15, 2022) is for IBM i 7.3, 7.4, and 7.5.
No further refreshes will be made for IBM i 7.2. However, fixes to 7.2 tools will continue to be supplied on an “as needed” basis until April 30, 2024.
No further refreshes or fixes will be made for IBM i 7.1 or earlier releases.
IBM has made a couple of changes in IBM i 7.5 that affect the results returned to the tools. The tools have been modified to accomodate these changes. If you are migrating from a previous IBM i release such as 7.3 or 7.4 you should update your tools to refresh R73 prior to the upgrade. If you do not update your tools you will have issues with the CVTEDTD, CVTIFSAUT2, and DSPIFSOWN and tools that depend on them. See the notes for the individual tools below.
CVTEDTD was affected by a spooled file output change.
While not technically incompatible the QSYLOBJA API now reports IFS path data in CCSID 1200 rather than the job CCSID. CVTIFSAUT2 and DSPIFSOWN were affected by this change. CVTIFSAUT2 is used by RVKIFSAUT, RVKIFSPGP, RNMIFSAUT, and RNMIFSPGP.
It should also be noted that the CVTIFSOWN command also uses QSYLOBJA. Since the reporting CCSID is included in the CVTIFSOWN output, the path name data in the output file is also reported in this CCSID. If are using CVTIFSOWN you may need to make changes to convert from the reported CCSID.
We are changing the way tools are packaged as source files.
Each tool has a “builder”, a set of commands that is used by CRTTAATOOL that are used to build the tool from its source code. These builders were packaged in monolithic programs used by CRTTAATOOL. We are now packaging these builders with the tool itself.
Likewise the command help for a tool was packaged with the command help for other tools in large panel groups. Now the command help will be packaged in a separate panel group and packaged with each tool.
The intent of these changes is to make the tools a bit more self-contained so that enhancements can be made more easily.
These changes will be made over time to existing tools and will have no external effects other than you may see extra members if you unpack the source for a tool.
Many of the tools existed prior to the introduction of the ILE program model. As tools are modified for fixes and enhancements we may elect to convert them to the ILE program model.
All new tools will be written to the ILE program model. In addtion, all new RPGLE code will be written as fully free-format.
The intent of this change is to make the future creation and modification of tools more robust.
These should be no external effects of these changes.
CPYSRCFIFS
This tool will copy selected members of source files in a library into the IFS. It is meant to provide an easy way to populate an IFS directory from source physical files. You may wish to do this if comparing sources across systems or when you wish to establish a source directory usable with Source Control Management tool that operates on Unix or Windows style directories.
RUNTAABLDR
This command will compile and run a builder program for a tool. All new tools are written with these builder programs, allowing them to be easily patched onto existing systems.
CPYFRMCSV
Copy From Comma Separated Values tool has two commands: CPYFRMCSV and CPYFRMCSV2. Both were enhanced to allow DOC objects to be used in addition to STMF object in the FROMSTMF keyword. The commands also now allow using a | as a field separator character.
CPYSPLFIFS
Copy Spooled File to IFS would create the spooled file with AUT(NONE) if the PDF option was used. This was changed to use the authorities of the containing directory similar to the system’s CPYSPLF.
CPYUSRPRF2
The Copy User Profile 2 command would not allow a user profile to be created if ALLCRTCHG was specified in the QPWDRULES system value. This restriction has been removed. If ALLCRTCHG is specified then CPYUSRPRF2 will create a new profile from a template and assign a password to that profile that satisfies the password rules defined by the system values.
CVTCERT
Convert Certificates has been enhanced to allow any user that has the certificate store password to request a list of certificate expiration dates from a certificate store. This was previously only available to those users that had the password and had ALLOBJ and SECADM special authorities. The Convert Certificates command did not provide a very helpful messages when the user did not have the correct password or the proper authorities. The error messages issued are now use the system provided text.
RTVIFSEAUT
Retrieve IFS Entry Authorities has had minor enhancements to its internals for ILE. There should be no external effects.
SNDSPLMAIL
Send Spool Mail has been converted to ILE and the new tool source format. There should be no external effects.
RSNLSTMSG
The Resend Last Message command will now skip the Program Entry Procedure of ILE CL programs if one exists and send the message to the caller of that program.
CHKIFSE
Check IFS Entry had a bug in which it detected the root IFS directory, /, as not found. This affected a number of tools that used CHKIFSE such as FTP2. Fortunately, not too many explicit references to the root directory are made. This has been fixed.
It was also noted in the documentation that a CPF9898 escape message could be sent to the caller if an unusual exception not expected by the code occurred. Communications errors fall into this category.
CMPLIB2
The Compare Library 2 tool would fail if the files object files in the TOLIB library were empty. This could occur if the CAPLIB2 command was incorrectly used. The CMPLIB2 command now tolerates this condition.
CMPSYSVAL
Compare System Values would get an array index out of bounds if the member on which it was operating actually contained more than one set of data. This could show up in CMPSYSVAL or in CMPSECINF. The system value data would have to be duplicated in one of the members being compared for this problem to surface.
CPYTOCSV
The Copy to CSV command would produce incorrect results if varying length fields were present in the database file being copied. This has been fixed.
CVTEDTD
The Convert Edit Descriptions tool would fail in IBM i 7.5. The tool works from the DSPEDTD spooled file output, which has been changed in this release to add apostrophes around some of the character fields. The tool has been modified to on IBM i 7.3, 7.4, and 7.5 to account for the apostrophes.
CVTIFSAUT2
The CVTIFSAUT2 command would fail on IBM i 7.5 due to a change in the QSYLOBJA API which now reports path information in CSSID 1200 rather than the job CCSID. This command has been updated to accomodate that change. Errors would also show up in the following tools: RNMIFSAUT, RVKIFSAUT, RNMIFSPGP, and RVKIFSPGP which use the CVTIFSAUT2 command internally. No changes were needed to those tools.
CVTOPNF
There was a small timing window in the Convert Open Files command where it could issue a function check instead of a “job not found” message. This has been fixed.
CVTSBSD
The list of job queues in Convert Subsystem Description when using the TYPE(*JOBQENT) option could be incorrect. This has been fixed. CVTSBSD is used in other tools such as WRKSBSJOBQ.
DLTOLDSPLF
Delete Old Spooled Files had a minor bug in which it would fail if the underlying CVTOUTQ attempted to create the QGYSERVER jobs needed to process output queues and those jobs hit the maximum limit of the subsystem in which it was running. The tool was modified to use a new version of CVTOUTQ that avoids the creation of auxiliary jobs.
DSPIFSOWN
The QSYLOBJA API in IBM i 7.5 now reports IFS path name attributes in CCSID 1200 instead of the job CCSID. DSPIFSOWN converts the delimiter and path names back to the job CCSID for display.
GENRANPWD2
The Generate Random Password 2 had a bug where *REQANY3 was not handled properly if *DGTMIN0 and *SPCCHRMIN0 were defaulted or specified. The fix was to force mixed case and at least one special character if *DGTMAX0. A digit will be generated if *DGTMAXn was either not specified or n is greater than 0.
RSTAUTL
Restore Authorization Lists would fail if there was an unusually large number of authorization lists to process. The temporary database file it uses was changed to allow a larger number of records.
RTVIFSED
The Retrieve IFS Entry Description tool would leave a request message in the job log if the IFS entry being examined did not exist. The request message is now removed properly.
RTVSMTPA
Both the RTVSMPTA and RTVSMTPA2 commands had a *ANY value that performed no useful function. This special value has been removed from both commands.
SAVCHG23
The Save Change 23 command constructed an invalid SAVCHGOBJ command if the list of BYPASS libraries contained a library name that was 10 characters. Appropriate spacing is now done.
SCNIFS
The Scan IFS command would fail if a special value was supplied on the OBJ keyword. This has been fixed.
SRCARC
The Source Archive tool had a bug in the WRKSRCARC screen where it would not display or “copy out” source if the screen was in “display library” mode. This has been fixed.
WRKALLSPLF
Work with All Spooled Files could resend a CPF34C4 if there were too many spooled files on the system. This message is now handled instead of resent.
RTVSMTPA and RTVSMTPA2 have had the *ANY value removed. This value did not not provide any useful function and was confusing when prompted.
Commands that refer to previous releases (7.5 only)
All save commands, most compile commands, and commands that use *PRV compiler support have had their TGTRLS parameters updated for 7.5. While technically incompatible with previous release this is consistent with IBM i 7.5 changes. The following commands have been affected:
Tool | Command | Description |
---|---|---|
CHKPGMRLS | CHKPGMRLS | Check Program Release - CHKPGMRLS |
CHKTGTRLS | CHKTGTRLS | Check Target Release - CHKTGTRLS |
CMPOUTFILE | CMPOUTFILE | Compare System Outfiles - CMPOUTFILE |
CRTBNDCL2 | CRTBNDCL2 | Create Bound CL Pgm 2 - CRTBNDCL2 |
CRTBNDRPG2 | CRTBNDRPG2 | Create Bound RPG Pgm 2 - CRTBNDRPG2 |
CRTSFLPGM | CRTSFLPGM | Create Subfile Program - CRTSFLPGM |
CRTSFLPGM | RPLSFLPGM | Replace Subfile Program - RPLSFLPGM |
CRTSFLPGM2 | CRTSFLPGM2 | Create Subfile Program 2 - CRTSFLPGM2 |
CRTTGTRLS | CRTTGTRLS | Create Target Release - CRTTGTRLS |
RPLGENPGM | RPLGENPGM | Replace Generic Programs - RPLGENPGM |
RPLMOD | RPLMOD | Replace Module - RPLMOD |
RPLOBJ | RPLOBJ | Replace Object - RPLOBJ |
RPLPGM | RPLPGM | Replace Program - RPLPGM |
SAVACT | SAVALLACT | Save All Active - SAVALLACT |
SAVACT | SAVCHGACT | Save Changed Active - SAVCHGACT |
SAVJRNRCV | SAVJRNRCV | Save Journal Receivers - SAVJRNRCV |
SAVLIBIFS | SAVLIBIFS | Save Library to IFS - SAVLIBIFS |
SAVOBJIFS | SAVOBJIFS | Save Object to IFS - SAVOBJIFS |
SAVONELIB | SAVONELIB | Save One Library - SAVONELIB |
SAVOWNOBJ | SAVOWNOBJ | Save Owned Objects - SAVOWNOBJ |
SAVRCVL | SAVRCVL | Save and Receive Library with FTP - SAVRCVL |
SAVRCVL | SBMSAVRCVL | Submit Save and Receive Lib with FTP - SBMSAVRCVL |
SAVSNDL | SAVSNDL | Save and Send Library with FTP - SAVSNDL |
SAVSNDL | SBMSAVSNDL | Submit Save and Send Lib - SBMSAVSNDL |
SAVSNDM | SAVSNDM | Save and Send Member with FTP- SAVSNDM |
SAVSRCF | SAVSRCF | Save Source Files - SAVSRCF |
SNDOBJMAIL | SNDOBJMAIL | Send Object Mail - SNDOBJMAIL |
Refresh 72 (May 15, 2021) is for IBM i 7.2, 7.3, and 7.4. This is the last refresh for IBM i 7.2.
No further refreshes will be made for IBM i 7.2. However, fixes to 7.2 tools will continue to be supplied on an “as needed” basis until April 30, 2024.
No further refreshes or fixes will be made for IBM i 7.1.
CPUMON
The CPU Monitor tool monitors for jobs that consume CPU resources above a specified CPU percentage. When a job is found running above the CPU limit, a message alert is sent to the specified message queue describing the job which is using too much processing time. If several jobs are found to be over the limit, multiple messages will be sent to the message queue - one for each detected job.
RTVJOBSPLC
The Retrieve Job Spool Count tool will efficiently return the number of spooled files created in a job. This count includes files in FIN state and can be used to compare against the system value QMAXSPLF to see if a job is near the system specified limit.
CHKJOBMSGW
A new keyword, JOBQ, has been added to specify where to submit the CHKJOBMSGW job. It defaults to QSYS/QSYSNOMAX, which was the queue used prior to this enhancement.
CRTSTDSRCF
A new keyword, BYPEXIST, was added to Create Standard Source Files. The default is *NO and that preserves the previous function. *YES will allow the files that do not exist in the specified library to be created.
DSPMSGQA
The Display Message Queue Attributes tool was enhanced so that the printed report now includes all the attributes of the displayed report.
DUPALLSPLF
Time fields have been added to the FROMDATE and TODATE parameters for DUPALLSPLF. This allows for a much finer-grained duplication.
ENDSBSJOB
*CURRENT was added as a parameter for the USER keyword.
MNTALLJRN
The Maintain All Journals command has a new parameter that allows the deletion of journal receivers that are in %ELG state. This happens if the receiver has been saved, but no save date is present in the object description. This happens for receivers that have been saved with UPDHST(*NO). Receivers in QSYS are usually saved this way.
Install
The CRTFNDCMD that indexes commands at the very end of the install process could fail in very rare circumstances when indexing the commands in all libraries. Install has been modified to index only QSYS and TAATOOLS. If other libraries are desired you can rerun CRTFNDCMD after the the install has completed with the libraries of your choice.
CAPSECINF
The RFMSECINF command of the Capture Security Information tool is automatically invoked if changes in the security information file formats are detected. A bug was fixed that would fail to reformat the user profile files correctly.
CHGLIBOWN
The CHGLIBOWN tools would receive a MCH1210 exception when dealing with extremely large libraries. This has been fixed.
CHKBLKFLD
The Check Blank Field command would attempt to use an incorrect message file when sending a message about an empty member. This has been fixed.
CHKIFSE
The Check IFS Entry command would fail if the path specified ended with a ‘\’. This has been fixed.
There was also an issue where \ was not being converted to / if the path was “triple-quoted”. This has been fixed as well.
CPYFRMCSV
The Copy from Comma Delimited File command would fail with a CPF3303 error if it was run in a server job, such as from an ACS SQL session. This was due to the the fact that spooled files in server jobs are created in a separate QPRTJOB job instead of the server job. The QPDDSSRC spooled file that was causing the issue is now owned by the server job and properly deleted.
CPYFRMSTM2
The Copy from Stream File 2 command would fail if copying from a stream file with an extremely long name. This has been fixed.
CRTDBFJRN
This command would fail when converting from a table created with DDL
that contains CURRENT_TIME
or
CURRENT_TIMESTAMP
defaults. This has been fixed. The
command would also fail if run in a server job since it could not find a
temporary spooled file. That file is now owned by the server job instead
of the QPRTJOB for the current user.
CVTIFS
The pattern matching algorithm used in CVTIFS would not properly match some complex patterns i.e. those with multiple asterisks. The asterisk now matches the shortest string between constant strings in the pattern even if that string is a null string.
CVTIFSAUT2
In extremely rare circumstances the Convert IFS Authorities 2 command could get an MCH0601 as it was processing the user space returned by an API. This has been fixed.
CVTJOB
The Convert Job command would fail if there were more than enough jobs to fill a single user space with the QUSLJOB API (about 280,000 jobs). The tool has been updated to use the QUSLJOB continuation handle support. There is now no practical limit to the number of jobs it can convert.
CVTOBJAUT
The CVTOBJAUT command does not work with QTEMP, but using it on QTEMP failed to give an adequate report. This has been fixed.
CVTSBSD
The CVTSBSD command would produce some error messages when examining the job queues of subsystem descriptions. This did not affect the results, but could be confusing. Those error messages have been removed.
DLTUSRPRF3
If DLTUSRPRF3 was used to transfer ownership of objects when deleting a user profile those objects were deleted instead of being transferred. We issued a HIPER Alert for this and distributed the fix early. That fix is included in this refresh. Note that the patch had ‘Delete User Prof 3 - TAA-0001’ as the prompt heading for the command. This refresh restores the previous prompt heading of ‘Delete User Profile 3 - TAA’.
DSPALLJLG
Display All Joblogs would fail with a CPF34C4 (list too large for user space) if there were a fairly large number spooled files on the system. The code has been changed to ignore this error and process whatever spooled files are returned by the QUSLSPL API.
DSPALLSPLF
Display All Spooled Files would fail with a CPF34C4 (list too large for user space) if there were a fairly large number spooled files on the system. The code has been changed to ignore this error and process whatever spooled files are returned by the QUSLSPL API.
ENDSBS2
The ENDSBS2 command would fail if the subsystem referred to in the command was already ending controlled. The command now recognizes this situation and proceeds.
NBRCTR
The ADDNBRCTR command of the NBRCTR tool would receive a size exception when the amount to add keyword was 99999. This has been fixed.
PRTALLOUTQ
The Print All Output Queues would fail if an output queue exceeded 13,000 spooled files. This limit has been increased to 1,000,000 spooled files.
PRTLIBANL
The PRTLIBANL command would fail doing a CPYF if there was a mismatch between the outfiles used by it and the DSPUSRPRF command. This could happen if the tools and the underlying IBM i were out of sync. A *MAP option was added to the CPYF command to prevent this.
RTVOBJJRNA
The Retrieve Object Journal Attributes would send a TAA9896 escape message indicating that only physical files could be journaled when presented with a logical file that had a journaled access path. This now reports correctly for logical files.
RTVOBJLST
The RTVOBJLST tool would receive a MCH1210 when dealing with extremely large libraries. This has been fixed.
RTVPFSRC
The Retrieve PF Source command will not retrieve
CURRENT_TIME
or CURRENT_TIMESTAMP
defaults
from DDL into DDS since these are not allowed in DDS. It will no longer
attempt to generate ALIAS keywords if the name that contain a #, $, or
@. These cause DDS errors. The command also now works when the current
user and job user are different, such as in a server job.
RTVSTGPOOL
The Retrieve Storage Pool command is used by the Display Subsystem command. In systems with very large main stores this command would fail of the storage size in KB exceeded 9 digits. If this happens now, the value returned is 999,999,999.
SNDIFSMAIL
The Send IFS Mail command is can be used stand-alone or internally. It constructs a temporary working folder with a unique name in /QDLS/TAAFLR. If that folder name was longer than 4 characters the resulting document name would be truncated and the tool would fail. This would happen only after about 1.6 million uses of the tool. This has been fixed.
SNDSPLPDF
The Send Spool File as PDF command would fail if the number counter used by the tool to create unique working folders in the IFS did not exist. This has been fixed so that the counter is created. The command might also fail if the working folders existed. The command now skips over existing working folders.
SNDTXTMAIL
The Send Text Mail command constructs and issues a LOGMAILENT command. This would fail if the MAILADRP address name contains non-system-name characters such as a hyphen. The address names are now quoted if they contain non-system-name characters.
SPLARC
The STRSPLARC command of the Spool Archive tool did not take the spooled file creation date into account when looking for spooled files to archive. This led to rare situations where the wrong file was archived if there was a job number wrap condition. This has been fixed by checking the spooled file creation date as well.
SRCARC
The SRCARC tool had several commands that had limiting dates of 2020-12-31. These have all been changed to 2099-12-31.
STRJRNLIB2
This would stop processing objects in a library if it ran into a logical file that had its access path already being journaled. It now skips those files and continues as it does with other objects that are already journaled.
WRKASP
The Work with ASPs command would duplicate the previous ASP name on the display if an ASP was found but was in offline state. This now shows as *OFFLINE.
WRKSPLF2
The Work with Spooled Files 2 command would fail if the combined queues being examined exceeded 9999 spooled files. The display is now capped at 9998 spooled files.
Refresh 71 (April 15, 2020) is for IBM i 7.2, 7.3, and 7.4.
No further refreshes will be made for IBM i 7.1. However, fixes to 7.1 tools will continue to be supplied on an “as needed” basis until April 30, 2021.
CVTACCPTH
The Convert Access Path command produces an outfile of physical and logical files which have a 4 GB max access path limit. The outfile can be checked for files which are approaching their 4 GB limit. Use of this tool could prevent applications to fail if the 4 GB limit is surpassed.
CVTCERT
The Convert Certificates command produces an outfile of information from server or certificate authority certificates on your system. Most notably, certificate expiration dates are output, giving administrators an easy way of checking which certificates need to be renewed before they expire.
Install
The installation procedure now has the capability of adding new keys to application values found in TAASECURE. This will allow future tools to add new capabilities using application values without adding entirely new APPVAL structures in that library.
CHGOWNOBJ
The Change Owned Objects command has been enhanced to include two new parameters: ACTION and ESCAPE. ACTION(*CHECK) allow you to see what would be changed if ACTION(*CHANGE) is used. *CHANGE is the default. ESCAPE(*YES) will prevent the use of any profile beginning with Q. This is to prevent the wholesale assignment of ownership from system-supplied profile. *YES is the default. This introduces an incompatibility.
CVTOBJLCK
The Convert Object Lock command converts object locks to the OBJLCKP data base file with one record per lock. This allows you to determine who has the lock within a program. A field was added to show the current user profile holding the lock.
CVTOUTQ
Convert Output Queue uses a system API to find the contents of an output queue. Normally this system API will submit auxiliary jobs to perform an ansynchronous listing of the queue contents. This makes the tool more responsive. In some cases this submission of auxiliary jobs is not desirable; for example, when the subsystem in which this tool runs is near its maximum number of jobs. A new AUXJOB keyword has been added to the command to suppress these jobs and perform the listing synchronously.
MTNJRN
A new SEQOPT keyword was added to Maintain Journal so that the sequence numbers in the journal receivers can be reset during MTNJRN processing. The default is to continue the sequence numbers as it had been doing.
RTVMTHDAT / RTVSOMDAT
These two commands allow retrieval of dates based on specified criteria. RTVMTHDAT and RTVSOMDAT commands have been enhanced to support the *NEXT value for MONTH and YEAR parameters.
SCNALLSRC2
Scan All Source 2 will scan for up to 20 arguments in source files in one or more libraries. SCNALLSRC2 was enhanced with a FILE parameter, allowing the search to be narrowed to named source files, such as QCLSRC, QRPGLE, etc.
SECOFR2
The SECOFR2 menu entry for CPYUSRPRF2 now allows the prompt for this command to be tailored so that the new PWDEXP and CHGOWN parameters can be masked. See the documentation for SECOFR2 for more information.
WRKVTP
Work with Virtual Tape allows you to review and control the virtual tape devices created by CRTVTP. WRKVTP usage of available resources was improved by refreshing the available resource list before executing F8 = Avail Resources. Also, F9 command text was improved to indicate that either a ‘Not detected’ resource or a New resource will be returned.
ADDJOBSCD2
The Add Job Scheduler 2 command is used to add multiple job scheduler entries from a database file. A quoted entry would cause problems for subsequent entries found in the file. This has been fixed.
ALCTMPMBR
The Allocated Temporary Member tool is used internally by several other tools. In extremely rare circumstances this tool would fail and the tool using it would report the failure. It would have to be the first tool executed after midnight on a given day. This has been fixed. This initially showed up occuring in CVTQHST2.
CPYGENSRC
The Copy Generic Source command options for the source file lists (SRC1, SRC2, and *SRC3) were not working. The source lists are now read and processed correctly.
CVTLIBCNT
Convert Library Count creates an outfile with one record summarizing the objects in each library requested. CVTLIBCNT was fixed to bypass libraries that are too large to process in the user space. When CVTLIBCNT encounters such a library, it bypasses that library and then goes on to process the remaining libraries requested. An escape message is sent at the end in this situation.
CVTTAPSAVD
This Convert Tape Save Description command would fail if the device was a tape library or autoloader, a specific library/label was named, and VOL(*MOUNTED) was specified. This has been fixed.
ENDJOBWOL
End Job With Object Locks has been fixed to run in batch as well as interactive environments.
SNDINTMSG
The Send Interactive Jobs a Message tool was failing if the caller did not have explicit authority to read the application value used to control its use. This application value should be able to be read by the tool for any user authorized to the tool. The authority issue with a helper program has been fixed.
RMVSUPGRP
Remove Supplemental Group allows the removing of a supplemental group profile from one or more user profiles. This command was fixed to issue better completion messages.
RTVSYSPTN
Retrieve System Partition returns information about the partitions on a system and the current partition. RTVSYSPTN was returning the opposite Capacity Capped value than it should. The tool was changed to return the correct value.
SAVRSTJOBQ
The Save and Restore Job Queue tool supports two commands which support the save and restore of a job queue. CVTJOBQ2 creates an outfile of information about the jobs on a job queue, then SBMJOBQ2 command is used to read the outfile and perform a SBMJOB for each job found in the outfile. The outfile name was not being set correctly when SBMJOBQ2(*OUTFILE) was specified. This has been corrected.
SCNSPLF
Scan Spool File scans a spool file for a string and returns a count of how many strings were found. A fix was added so scan arguments over 10 characters would be found correctly.
SNDTCPOUTQ
The Send TCP Output Queue tool would fail in very rare circumstances due to a time out waiting for a port to become available in the SNDTCPSPLF tool. Retry logic has been added to minimize this possibility even further and, if the port does not become available, an informational message is logged rather than the tool failing.
CHGOWNOBJ
The new ESCAPE keyword on CHGOWNOBJ defaults to *YES. Any programs using CHGOWNOBJ with a from user or to user beginning with a Q will fail with a TAA9891 exception. You can use ESCAPE(*NO) to suppress this exception.
CVTOBJLCK
The outfile for CVTOBJLCK has been modified to add a new field identifying the current user to the end of the record format. Outfiles from previous versions of the tool will need to be deleted. The tool will re-create these on first use.
Refresh 70 (August 15, 2019) is for IBM i 7.2, 7.3, and 7.4.
No further refreshes will be made for IBM i 7.1. However, fixes to 7.1 tools will continue to be supplied on an “as needed” basis until April 30, 2021.
CMPENVVAR
The new Compare Environment Variables command allows a comparison of environment variables between two systems or two versions converted from the same system. A listing is printed noting the differences between the two ENVVAR files being compared.
CVTENVVAR
The new Convert Environment Variables command converts job and system environment variables to an outfile. The outfile can be used to verify current environment variable settings, or to compare ENVVAR settings overtime to ensure they remain consistent on the system.
Support for IBM i 7.4
A new version of the tools has been created to install and run on IBM i 7.4. If you upgrade your system to IBM i 7.4 you will have 60 days in which to upgrade the tools to match the operating system. The 7.3 and prior versions of the tools are not supported on IBM i 7.4 so you are encouraged to upgrade promptly.
Support for multiple licenses
The tools can now support multiple licenses on a single system. This makes it much easier to manage cases where the system image must be switched or replicated to a system with a different serial number. This would include cases for capacity backup (CBU), disaster recovery (DR), high availability (HA), or live partition mobility (LPM).
Supplemental licenses can be installed in addition to the base license for a system. The base license is created either during install or with CHGTAAKEY. Its serial number must match the system at that time. Supplemental licenses are installed on that same system and can reference other serial numbers. If a license check fails for the base license, the supplemental licenses are checked.
The base license resides in the TAATOOL/TAALICENSE data area. There can be up to 9 supplemental licenses in TAATOOL named TAALIC_001 through TAALIC_009. You create a supplemental license using the CHGTAAKEY command as follows:
CHGTAAKEY KEY(<key value for alternate machine>) LICNBR(1)
This creates a supplemental license in TAALIC_001.
When the additional system is used, the base license and supplemental licenses are available since they’ve been replicated or switched. The base license check will fail, but the supplemental license check will succeed. This will be entirely transparent to you.
Support for handling * and ? in IFS names
The Root and QOpenSys file systems in IFS can have files and directories that have the * and ? characters in the names. Various IFS command would come across these while scanning the directory structure and treat these as pattern names. Several commands have been updated to handle these names properly - most notably DLTIFS.
The commands now also allow for quoting arguments in the same manner as WRKLNK. Thus, if you don’t want a pattern match you have to quote the designated string twice on the command line. For example, suppose you have the following files in your home directory:
aaa.txt
abc.txt
abc*.txt
abc?.txt
abc'.txt
Let’s assume the current directory is your home directory.
The following command lists four files.
WRKLNK 'abc*.txt'
But this command only lists one file.
WRKLNK '''abc*.txt'''
Thus, the following command would delete the four files that begin with abc.
DLTIFS OBJ('.') OBJNAM('abc*.txt')
However, as expected, this command would delete only
abc*.txt
.
DLTIFS OBJ('.') OBJNAM('''abc*.txt''')
CHKIFSDMG
Check IFS Damage works by saving the IFS objects to a temporary save file. It now provides diagnostic information in the job log that shows the save file size calculation in case of a CRTSAVF failure.
CPYUSRPRF2
Copy User Profile 2 is an option on the SECOFR2 menu. It allows an “assistant security officer” the ability to establish a user profile by copying an existing one and initializing its password with INZPWD. CPYUSRPRF2 is now disabled if *ALLCRTCHG is specified in the QPWDRULES system value since the intent is to give the user a relatively easy password that will be immediately changed.
CVTQRYSTMT
Convert Query Statement was enhanced to allow it to be used in batch.
CVTSBSD
The Convert Subsystem Description tool was enhanced to include the last used date for the job queue in the SBSJBQENT outfile that is produced.
CVTSYSVAL
Convert System Values has been enhanced to fully capture all the system values. Prior to this refresh some long system values were not being fully captured.
DSAOLDPRF
We added a parameter to the DSAOLDPRF command that allows you to select a method for disabling old profiles. The *CHGUSRPF default method will disable any profile that meets the aging criteria including QSECOFR. The *DSAUSRPRF method will use a DSAUSRPRF command and can be more selective. It will never disable QSECOFR and other profiles can be protected as well. See the documentation for DSAUSRPRF for details.
DSPSBMJOB
Display Submitted Jobs received several enhancements.
Job numbers can roll over. Jobs are now sorted by their entry date and time, not by job number so job number rollover no longer prevents toggling between ascending and descending order.
Option 8 now shows an appropriate message if the job no longer exists in the system.
Displaying with no jobs now allows F5=Refresh and F6=Ascending/Descending.
A misbehaving SPLFPGM will no longer terminate the command, but will halt processing of the list.
DSPSBMJOB now shows batch immediate jobs as submitted jobs. These jobs are usually started by the system to carry out asynchronous tasks for long running APIs. WRKSBMJOB does show these.
DSPSUMJOBQ
The Display Summary of Job Queue command was enhanced by adding a sequence parameter to sort the outfile by ascending or descending order.
EXCCMD
The Execute Commands command can print a list of commands that were executed from a source file. This listing would truncate some lines if they were too long. The tool now prints a longer line along with its change date.
GENRANPWD2
The Generate Random Password 2 tool has been enhanced so that it now respects all the settings for QPWDRULES that could apply to generation without knowing the password history.
The following QPWDRULES are now supported:
*PWDSYSVAL
*MAXLENnnn *MINLENnnn
*REQANY3 *MIXCASEn
*CHRLMTAJC *CHRLMTREP
*LTRMIN *DGTMIN *SPCCHRMIN
*LTRMAX *DGTMAX *SPCCHRMAX
*LTRLMTAJC *DGTLMTAJC *SPCCHRLMTAJC
*LTRLMTFST *DGTLMTFST *SPCCHRLMTFST
*LTRLMTLST *DGTLMTLST *SPCCLHRMTLST
If QPWDRULES is set to *PWDSYSVAL then the following
system password rules are supported:
QPWDMAXLEN - like *MAXLENnnn
QPWDMINLEN - like *MINLENnnn
QPWDLMTREP - like *CHRLMTAJC or *CHRLMTREP
QPWDRQDDGT - like *DGTMINn (n is 0 or 1)
QPWDLMTAJC - like *DGTLMTAJC
QPWDLMTCHR - no corresponding rule in QPWDRULES
This is only used if the password level is 0 or 1
PRTJRNRCV
The Print Journal Receivers command has been enhanced by adding two fields to it’s output - the first sequence number and volume ID. This allows you to identify which media volume (usually tape) on which the journal receiver is stored.
QRYUSE
The Convert Query Statement command of the QRYUSE tool was enhanced to allow the tool to run in all environments, including batch.
RPLSYSVAL
The Replace System Value tool has been enhanced to be able to set the QSSLCSL value if QSSLCSLCTL is set to *USRDFN. QSSLCSL was being skipped and had to be manually set.
Also the exception report produced by RPLSYSVAL now has all of the message text associated with any errors that might be encountered when doing the CHGSYSVAL.
RTVDBR
The Retrieve Database Relations was enhanced to show the additional view of dependencies of a logical file.
APYUSRCHG
Apply User Journal Changes overrides a printer file to change the name of the report to the name of the file whose changes were being applied. This was failing if changes were being applied to *ALL files. The override in this case now assigns APYUSRCHG to the name of the report.
CHGOBJAUT
The Change Object Authorization would occasionally fail when used by the CVTWRKACT tool. This was due to an undocumented lock on the output file being held by a system thread in CRTDUPOBJ. The workaround is to wait on a lock for the object held by that thread and proceed when that lock is acquired.
CPYSPLFIFS
The Copy Spooled File to IFS would fail when creating a PDF when the overflow line of the spooled file was less than 60. This has been corrected.
CVTJRNA
The Convert Journal Attributes tool is used by several other tools. In very rare circumstances the tool would fail if the files being journaled were deleted while it was running. Monitors have been added to check for this condition.
CVTJOBACG3
The tool was not behaving well for ENDJOB *CNTRLD if accounting entries were being added on a frequent basis. The check for the *CTRLD end is now being made more frequently.
CVTLIBLCK
The Convert Library Locks tool would fail if an override existed for the file TAATOBJDP - the model file for the output from the command. This has been fixed.
CVTMSGQ
The Convert Message Queue tool could fail in rare circumstances with an index out of range due to extremely long messages in the message queue.
DSPMSGQINQ
The Display Message Queue Inquiries command would sometimes miss an inquiry message if those messages were present next to each other without replies in the message queue. This has been fixed.
DSPSBMJOB
In some was possible for Display Submitted Jobs to get a pointer error if there are a large number of job entries on the system. This has been fixed.
ENDSBSJOB
The End Subsystem Jobs command was fixed to continue processing when a job not found condition was encountered. This avoids command exceptions due to system timing conflicts when jobs end before the command completes.
FNDCMD
The Find Command tool would give a date conversion error when the command index file would exceed 183 days old. A parameter size was fixed to correct this problem.
INZPWD
The INZPWD and INZPWD2 commands will only use GENRANPWD2 if QPWDRULES system value specifies *ALLCRTCHG. If it is not specified then the passwords generated for users will be follow simpler rules that might not conform to the password rules. This is desirable for help desk use.
MTNJRN
The Maintain Journal command would not delete journal receivers in SAVED state if SAVINQMSG(*BYPASS) was specified and if the receiver had no object saved date. This could happen if the receivers had only been saved with GO SAVE 21 or SAVSYS. The receivers in SAVED state will now be deleted if they meet the attach or detach date qualfications for removal regardless of the save date.
MONMSGQ
The job submitted by SBMMONMSGQ would occasionally report on messages that had blank message ids. These have been removed.
RTVAUDMDLF
The IM type was missing as a valid type for the retrieve. This has been corrected.
RTVSYSSTS
The Retrieve System Status command changed to correctly retrieve the LPAR current available processor for the CURPRCCAP parameter.
VALDBF
The Validate Database File command has been changed to bypass null capable files, or files whose record length exceeds 4000. This improves VALMNYDBF, which would throw errors when these conditions were encountered. Now the files are bypassed, and a message is issued.
Commands that refer to previous releases (7.4 only)
All save commands, most compile commands, and commands that use *PRV compiler support have had their TGTRLS parameters updated for 7.4. While technically incompatible with previous release this is consistent with 7.4 system changes. The following commands have been affected: CHKTGTRLS, CMPOUTFILE, CRTBNDCL2, CRTBNDRPG2, CRTSFLPGM, CRTSFLPGM2, CRTTGTRLS, RPLGENPGM, RPLOBJ, RPLMOD, RPLPGM, RPLSFLPGM, SAVALLACT, SAVCHGACT, SAVJRNACT, SAVLIBIFS, SAVOBJIFS, SAVEONELIB, SAVOWNOBJ, SAVRCVL, SAVSNDL, SAVSNDM, SAVSRCF, SBMSAVRCVL, SBMSAVSNDL, SNDOBJMAIL.
Refresh 69 (October 15, 2018) is for IBM i 7.2 and 7.3.
No further refreshes will be made for IBM i 7.1. However, fixes to 7.1 tools will continue to be supplied on an “as needed” basis until April 30, 2021.
ADDDSTLE2
Add Distribution List Entry 2 is a new tool to assist with adding users to the same distribution lists to which another user belongs. If the user is already on one of the identified lists, no action is taken.
FNDMSGID
Find Message ID is a new tool which will find the message file(s) that hold a message ID. This is very useful when handling jobs which list a message id with and unknown message file. The product issuing the message can often be identified this way.
SCNALLDSTL
Scan All Distribution Lists is a new tool to scan all distribution lists for a particular User ID. An output file is created listing all the dist lists in which the User ID was found.
CVTIFSAUT
Performance of CVTIFSAUT has been improved by streamlining the connection between it and the CVTIFSEAUT tool.
CVTJOB
The CVTJOB command would occasionally get decimal data errors when dealing with a very large number of jobs. The module using the QUSLJOB API has been rewritten to avoid this problem.
CVTLIBOBJA
The Convert Library Object Authorities command would fail when LIB(*ALL) was requested. The tool has been fixed to handle the *ALL parameter.
CVTMSGQ
The Convert Message Queue tool could fail in rare circumstances with an index out of range. This has been fixed.
DSPAUDLOG2
The Display Audit Log 2 display was not updating the minutes field of the TIME column properly. This has been fixed.
DSPJOBSCDC
The Display Job Schedule Calendar tool was showing jobs scheduled starting tomorrow. The tool was changed changed to display jobs that are scheduled to run from the system job scheduler for the next 7 days, starting today.
DSPJOBSCDE
The Display Job Schedule Entry tool was always displaying jobs in scheduled order, even when SEQ(*JOB) was requested. SEQ(*JOB) now displays in job name order.
DSPSBMJOB
The Display Submitted Jobs tool was not displaying the jobs that were
submitted by the current user on behalf of another user. For example, if
SBMJOB CMD(...) USER(OTHER)
was used then that job was not
appearing on the DSPSBMJOB display. In addition, jobs belonging to the
current user, but not submitted by the current user were being
displayed. Both of these problems have been fixed. DSPSBMJOB now
functions as documented and behaves similarly to WRKSBMJOB.
DSPSBSJOBQ / WRKSBSJOBQ
The DSPSBSJOBQ / WRKSBSJOBQ display output was not refreshing
correctly. The job number in the header was not updating, and once a job
queue had all completed jobs, the queue did not list
*Nojobs*
. Both these problems have been corrected.
EDTDTAARA
The Edit Data Area tool will acquire an exclusive lock on the data area being edited. The tool presents a warning if you attempted to edit a character data area containing data with code points below x’40’. Canceling this warning failed to release this lock. This has been fixed.
GENRANPWD2
The Generate Random Password 2 tool was throwing an error when PWDLVL was set to 0 or 1. GENRANPWD2 was generating passwords which included lowercase characters, which is not supported with PWDLVL 0 or 1, causing INZPWD2 and INZPWD to fail when requested to generate a random password. This has now been corrected in the GENRANPWD2 tool.
PRTREVERSE
The Print Reverse tool was cutting off the last line of the last page when reverse printing a spool file. This has been corrected.
RTVIFSEAUT
The Retrieve IFS Entry Authority tool uses system APIs that cannot be run if the job is multithreaded. Some tools, such as SNDSPLPDF, use APIs that now spin off threads in the current job. RTVIFSEAUT will now wait for those threads to finish instead of failing with an exception when used in those tools.
RTVSBSBCH
The Retrieve Subsystem Batch Status tool would fail if the subsystem description for the named active subsystem could not be found in the library list. A fix was made so that the library of the active subsystems is correctly determined. In addition, the RTVSBSBCH command documentation indicated that *ALL was valid. It is valid on PRTSBSBCH, but not on RTVSBSBCH. The documentation has been corrected.
SNDSPLPDF
The Send Spool as a PDF tool documentation was updated to indicate that both PASE and Transform Services are required to run this tool.
SPLSTO
The Print Spool Store (PRTSPLSTO) command in the Spool Store tool (re)prints a stored spooled file. If that spooled file was created with an output queue specified as *DEV, *JOB, or *SAME then the output queue must be determined at run time. This is now done properly.
TAATOOL/TAAARCAC2 data area locked during install of the tools
After an IBM i release upgrade the data area TAAARCAC2 in TAATOOL could be locked by the TAAINQMSG2 job. The install process for the tools now ends this job so that the TAATOOL library can be cleared and refreshed.
There are no known incompatibilities in this refresh.