CHANGE LOG of IFSTOOL 2023-03-12 - Added command PRTSTMF (Print a Stream File). The printout can be in characters or in hexadecimal values. 2022-11-23 - Granted *PUBLIC authority *ALL for library IFSTOOL. 2022-11-11 - Some changes to command CPYSTMF: added parameters FREXT and REPLACE, better support for UTF-8 conversion. 2022-03-01 - Printer file READDIR extended to 360 positions per line. 2022-01-30 - READDIR command improvements: -- When IFSTOOL/READDIR DIR(/), parameter IGNQDIR(*YES) ignores IFS directories with name starting by letter Q (System IFS directories) thus saving a huge amount of processing time. -- Simbolic links are ignored. -- Added a final summary page listing sizes of directories inclusive of their subdirectories. 2021-12-26 - Some fix to pgm IFSTOOL/REPLACE. 2021-12-16 - A new version of command IFSTOOL/REPLACE has been made available . 2021-12-07 - A new version of command IFSTOOL/FIND has been made available . 2021-07-26 - GRTOBJAUT OBJ(IFSTOOL) OBJTYPE(*LIB) USER(*PUBLIC) AUT(*CHANGE) . 2021-07-06 - Command READDIR now supporting back slash "/" . 2021-07-03 - Fixed online documentation of command READDIR 2021-03-23 - Command READDIR. Fixed small problem with long directory name in module READDIRM. 2021-03-25 - In command READDIR, parameter PATTERN was not providing the expected results. 2020-08-01 - The Change Log can now be displayed as an HTML page from the online manual. 2020-07-01 - Fixed error in pgm COMPILE (pgm MONIFSEVT was not created). 2020-06-24 - Some changes to MONIFS utility: -- Program MONIFSEVT now records the timestamp of the last RCVJRNE entry to data area IFSTOOLDTA/MONIFSLAST -- Program MONIFS, when a journal receiver ends, starts again receiving journal entries specifying as start time the timestamp recorded on data area IFSTOOLDTA/MONIFSLAST (instead of the current timestamp). This is done to recover possible audit journal events occurred during the switching of a journal receiver to the next one. 2019-11-14 - Command IFSTOOL/COMPILE can now run without problems even when library MMAIL is in the system library list. - Command IFSTOOL/MONIFS now self submitting as a batch job - Command IFSTOOL/MONIFS can now be executed only once at a time - In MONIFS utility, the audit journal parameter MNGRCVDLY has been reduced from 10 minutes to 1. 2019-11-04 - Command IFSTOOL/STRAUDJRN can now be used to have the Audit Journal providing the journal entries required by command IFSTOOL/MONIFS. Command IFSTOOL/ENDAUDJRN can be used to stop the Audit Journal from providing the journal entries required by command IFSTOOL/MONIFS. 2018-12-04 - Fixed pgm.s READDIRM, READDIRB and READDIRB01 for the case when IFSTOOL/READDIR DIR('/') . 2018-09-06 - In program MONIFS, added parameter RCVRNG(*CURCHAIN) to command RCVJRNE (Pierre M.'s suggestion). 2018-04-08 - In commands MONIFS and ENDMONIFS the format of the "Ending date" has been changed from MMDDYY to YYMMDD. - Program MONIFSEVT ends when an event "occurs" at a date and time higher than its ending date and time (in the previous version it used to end when an event "is reported" at a date and time higher than its ending date and time). 2018-07-31 - Command MONIFS was added two new parameters (FROMTIME and TOTIME) allowing to specify the time interval for reception of journal entries. - New command ENDMONIFS allows to reschedule the ending date and time of an ongoing MONIFS atcivity. 2018-07-28 - Command READDIR now supports IFS path names: -- with leading and / or trailing blanks -- imbedding quotes (char ' ) 2017-12-16 - Fixed pgm REPLACE (command REPLACE) for the following errors: -- It would discard a stream file if written "as is" (no *) in the PATTERN parameter -- It would add a number of null bytes (ASCII x'20') at the end of the updated stream file. 2017-08-06 - New command GETOBJATTR provides a lot of information about the properties of an IFS object. 2017-05-22 - Fixed dir ckecks in pgm CPYSTMF. 2017-05-20 - New command CPYSTMF allows to copy in a single shot multiple stream files and to optionally convert them to a different CCSID. See page http://www.easy400.net/ifstool/html/ifstool.htm#C6 . 2017-04-10 - Fixed program MONIFSEVT. It was not recording some IFS events. 2017-01-02 - Added command FIND. It provides a list of IFS objects matching a given name pattern. 2016-08-29 - In command READDIR, parameter MASK renamed PATTERN. Its function was improved. Added parameter PATTERN to commands SEARCH and REPLACE. 2016-08-26 - Fixed program REPLACE. 2016-08-15 - Fixed the cased when in command READDIR parameter DIR contains a generic path name. 2016-06-29 - Fixed some text in MONIFS panel group. 2016-04-08 - Program READDIRM no longer creates a DTAQ in library IFSTOOL when running in a batch job. 2016-04-07 - Added parameter IFSDIR to command MONIFS. When IFSDIR(*DEFINED), only the IFS directories documented thru command WRKMONDIR are monitored from command MONIFS. 2015-10-27 - Commands READDIR, SEARCH and REPLACE now automatically fix the user error when the initial slash ("/") of the IFS directory path is missing or is a back slash ("\") instead. 2015-10-01 - Fixed a problem in pgm READDIRM. It was not really deleting its temporary data queue in library IFSTOOL, thus building over time a giant number of data queues in that library. 2015-07-25 - In RPG pgm MONIFSEVT, the write operation to file IFSTOOLDTA/MONIFS is now monitored for file and program errors. If error, a message is sent to joblog but program execution in not terminated. 2015-07-18 - In RPG pgm READDIRB01 fixed the case when parameter MASK specified in command READDIR. 2015-06-28 - In CL pgm MONIFS, some code was added to make sure that member MONIFS in file IFSTOOLDTA/MONIFS exists. 2015-04-30 - Parameter MONITOR was added to command REPLACE. When MONITOR(*YES), the user gets control on any string change and can approve or reject it. 2015-04-29 - A new command, REPLACE, allows to scan all the stream files in a given IFS directory and to substitute a given character string - whenever it is found - with another character string. 2015-04-03 - Fixed program WRKIFSREFV. 2015-03-21 - New command WRKIFSREF provides a list of all jobs currently referencing (using) a given IFS object. 2015-03-18 - Parameter MAXWAIT added to command MONIFS. When LOCKWAIT(*YES), parameter MAXWAIT controls the maximum number of seconds the program should wait on an IFS object lock before tracing the event on file IFSTOOLDTA/MONIFS. 2015-03-01 - A new parameter, LOCKWAIT, was added to command MONIFS. When LOCKWAIT(*YES), before writing a record to file IFSTOOLDTA/MONIFS the IFS object resulting from the journal entry is checked for lock. If locked, the record is written as soon as the IFS object is unlocked. This allows the trigger program, defined on file IFSTOOLDTA/MONIFS, to get in control of the IFS object when locks are gone. - The database file receiving records from command MONIFS when IFS events occur, is no longer file IFSTOOL/MONIFS, it is now IFSTOOLDTA/MONIFS. 2014-11-04 - Sample program MONIFSTRG ( "Sample Trigger program over file IFSTOOL/MONIFS") now created both in library IFSTOOL and QGPL. That was done to help hasty documentation readers. 2014-10-14 - A free trial version (file "ifsttry.zip") has been made available for V5R3 and subsequent releases. This version is "object code only" and can be used for 30 days. 2014-09-29 - CLLE program MONIFS updated to resume receiving journal entries after a journal swap. 2014-07-19 - In program READDIRM rewmoved the allocation of a data area used to queue the READDIR command requests. - Granted to *PUBLIC the *CHANGE authority for library IFSTOOL, needed to create data queues on it. 2014-07-26 - Fixed a wrong CRTDTAARA command in pgm READDIRM. 2014-03-18 - Command READDIR has a new parameter, MASK, which allows to report back only the stream files with names matching a given pattern. 2013-10-22 - Library name IFSTOOL no longer hard coded in RPG programs. 2013-02-21 - Fixed module SCANOBJ for the case when job CCSID is 65535. 2013-02-10 - A new parameter in command READDIR, RUNBATCH(*YES), allows to build the IFS directories report through a job submitted for batch execution. RUNBATCH(*YES) is recommended when the expected number of reported IFS objects exceeds 10 thousands. In this case the output file containing the reported data, still named DIRLIST, will be created in a user specified library, so that it may be processed by some user program. Also in this case, a printout can be optionally be generated. For more information see page http://www.easy400.net/ifstool/html/ifstool.htm#C2 . 2013-01-07 - It was found that IFS objects date/time values are based on UTC/GMT without taking into account system value QUTCOFFSET. Some code has therefore been added to report the correct date/time values. 2013-01-03 - New parameter MAXDIRLVL in command READDIR allows to tell the maximum subdirectory level the report must reach. 2012-10-21 - SBMJOB command in pgm READDIR2 now monitored. - Program TESTCHKIFS now released. - Command SEARCH added a new parameter to display results. 2012-10-02 - Fixed a small irrelevant bug, a bad DLTOVR command, in program SEARCH. 2012-09-17 - IFS objects with type *SYMLNK (symbolic links) are now ignored. 2012-09-13 - Removed a bug in pgm READDIRB causing parameter IGNDIRS in command READDIR not to work properly. 2012-08-24 - Command IFSTOOL/SEARCH (Search a text string in all stream files of a given IFS directory) (see page http://www.easy400.net/ifstool/html/ifstool.htm#C3 ) is no longer restricted to stream files with extension HTM or HTML. 2012-08-17 - The IFSTOOL unability to report stream files larger than 2,147,483,647 byte has been removed. 2012-07-26 - Fixed bug causing stream files - with names starting by blank(s) - not to be correctly reported. - Parameter IGNDIRS (Sub-directories to be ignored) of command READDIR now supports single value *ALL (ignore all sub-directories). 2012-02-22 - Command READDIR now reports also the IFS object creation/last_changed time. 2012-02-21 - Command CHKIFSOBJ now displays error message from API stat() in the joblog. 2012-01-03 - Reported error in pgm READDIR from subprocedure RandomString in an August 2006 IFSTOOL release running on V5R4. As a consequence, call to subproc RandomString in pgm READDIR2 is now monitored and an alternate solution is given on-error. 2011-11-16 - Parametr DIR in commands READDIR and SEARCH now supports a generic path name (ending with an *). - SEARCH command now able to scan also Unicode stream files. 2011-10-27 - Added parameter IGNDIRS to command READDIR. It allows to tell the path names of the sub-directories that should not be investigated. 2010-08-30 - User profiles other than QPGMR and QSECOFR-like were not able to use command READDIR, as the user profiles were not able to add a temporary member to file IFSTOOL/DIRLIST. The problem was solved by command GRTOBJAUT IFSTOOL *LIB *PUBLIC *CHANGE . 2010-06-16 - Weird case of a stream file /sap/hmq330/S_GLAC//GLAC1000008500102520100121160523 (note the //) claimed by Moti Seif (Israel). Though I could not reproduce it, added subroutine DrlnamCutOff to module READDIRB01. 2009-07-23 - Command READDIR was staying idle if the base directory to be investigated could not be accessed. In such a case, it now just returns. ... ... ... 2003-11-20 - New command MonIfs released with library ifstool. It allows to monitor IFS events (object creation, movement, deletion, authority / ownership changes) 2003-09-08 - A severe bug fixed in IFSTOOL: Command READDIR used to leave directories in open status. After reaching the maximum allowed for open paths, the job was not able to read any other directory. As a consequence, partial results were given when reading huge directory trees. 2003-05-06 - First release of IFSTOOL.