What’s new with ZOAU
To view APAR/PTF and related support information, see Fix list for IBM Z Open Automation Utilities.
The following updates are available for IBM Z Open Automation Utilities (ZOAU) version 1.4.x.
Version 1.4.0.0
ZOAU v1.4.0.0 (HAL5140) adds these capabilities and enhancements:
New utilities
vf- Lists active DASD volume status and space information.
zoau(7)- A new man page is added with descriptions of all the ZOAU commands. Use the command
man zoauto view it.
- A new man page is added with descriptions of all the ZOAU commands. Use the command
Improvements
dcat,dhead, anddtail- NULL bytes and unprintable characters in the input dataset are converted to spaces before printing. Unprintable characters can be left unchanged if the
-bargument is used.
- NULL bytes and unprintable characters in the input dataset are converted to spaces before printing. Unprintable characters can be left unchanged if the
dlsanddinfo- The
-soption now also includes the number of extents, the size of the first extent, and the secondary space of a dataset.
- The
dls- Removed the deprecated
dlshelpershell script from thebindirectory, dls is now completely implemented in C. - Removed extraneous trailing periods from certain error messages. These made it more difficult to see the dataset name in the message text.
- New
-tVSAMfilter to display VSAM clusters including their components. - Extended listings for VSAM components are now available when requested with the
-tVSAMargument in combination with one of the following options: -lto display the basic VSAM attributes.- New
-iand-poptions to display additional VSAM attributes. - New
-Soption to display the VSAM statistics.
- Removed the deprecated
pcon- New option
-Sallows reading the SYSLOG from different systems.
- New option
pjdd- New option
-iallows reading and filtering SYSIN datasets. - Removed the deprecated
dlshelpershell script from thebindirectory.dlsis fully implemented in C.
- New option
mls- The utility has been fully reimplemented in C, driving a substantial performance improvement.
mlsno longer groups the aliases of a member by default. All members and aliases are listed in the order they are found in the partitioned dataset directory.- A new
-goption groups the aliases by member. the aliases by member. - New
-Aoption to print analiasormemberindicator. Also displays the associated member name if the entry is an alias. - A new
-eoption to display the extended attributes of a member: - Last user that modified the member
- Codeset
- Modification time
- New
-jand-Joptions for JSON output. - New
-Soption to print the ISPF member statistics. - New
-xoption to display a header for the listing.
pjdd- New option
-iallows reading and filtering SYSIN datasets.
- New option
- The
samplesdirectory is reorganized, and new samples added. zoautil.so- Increased shared library version to
0x00020102.
- Increased shared library version to
Python Library
datasets.Dataset- Added three new fields for the space attributes, which are also fetched by
datasets.list_datasets(): allocated_extentsdisplays the allocated extents for the dataset in the volume.first_extent_sizeestimated size of the first extent of the dataset.secondary_spaceestimated size of the secondary space for the dataset.
- Added three new fields for the space attributes, which are also fetched by
datasets.list_members()- The returned list separates member names and alias names into individual elements. In previous releases, each member name was followed by all of its aliases in a single string.
datasets.read()anddatasets.write()- Both functions are rewritten to use the
zoau_ioextension module for better performance, reliability, and constraint relief. datasets.write()is able to write strings much longer than 1024 bytes.
- Both functions are rewritten to use the
- New module
members- New class
Memberto represent a partitioned dataset member including the following metadata: - Alias information.
- SMDE extended attributes.
- ISPF member statistics.
- New function
fetch_members()
- New class
- New module
volumes- New class
Volume - New function
list_volumes()to leverage the newvfutility.
- New class
- New module
vsam- New classes
VsamClusterandVsamComponentto represent a VSAM cluster including the following metadata: - VSAM cluster type
- VSAM component attributes
- VSAM component statistics
- New function
fetch_cluster()
- New classes
Prior versions of ZOAU
The following updates are available for prior versions of IBM Z Open Automation Utilities (ZOAU).
- Version 1.3.6.2 - October 2025
- Version 1.3.6.1 - October 2025
- Version 1.3.6.0 - June 2025
- Version 1.3.5.1 - May 2025
- Version 1.3.5.0 - March 2025
- Version 1.3.4.1 - February 2025
- Version 1.3.4.0 - December 2024
- Version 1.3.3.2 - October 2024
- Version 1.3.3.1 - October 2024
- Version 1.3.3.0 - September 2024
- Version 1.3.2.1 - August 2024
- Version 1.3.2.0 - June 2024
- Version 1.3.1.2 - June 2024
- Version 1.3.1.1 - April 2024
- Version 1.3.1.0 - March 2024
- Version 1.3.0.4 - February 2024
- Version 1.3.0.3 - February 2024
- Version 1.3.0.2 - February 2024
- Version 1.3.0.1 - January 2024
- Version 1.3.0.0 - December 2023
Version 1.3.6.2
ZOAU v1.3.6.2 (PH68399) fixes the following problems:
Bug fixes
mvscmdandmvscmdauth- Fixed an error that allocated a z/OS UNIX path with a read-write access group when read-only access was requested with the
statusgroupargument. - Fixed an argument parsing failure when you specify the
statusgroupoption in a dataset/file concatenation.
- Fixed an error that allocated a z/OS UNIX path with a read-write access group when read-only access was requested with the
Version 1.3.6.1
ZOAU v1.3.6.1 (PH67837) fixes the following problem:
Bug fixes
dzip- An existing output file is not deleted when message BGYSC3911E is displayed.
Version 1.3.6.0
ZOAU v1.3.6.0 (PH65078) adds these capabilities and enhancements:
Improvements
dls- The utility can display non-detailed listings of dataset aliases when the -t ALIAS argument is provided.
dunzip- New
-Targument to set the type of the temporary datasets. - New
--keep-temporary-datasetargument to preserve interim untersed dataset afterdzipexits. - Temporary datasets produced during dzip operation have extra allocated space released to reduce interim disk consumption.
- Lazy dataset allocation reduces overall disk consumption.
- New
dzip- The new
-Targument to set the type of the output and temporary datasets. - The new
--compressargument to enable ADRDSSU compression. - The new
--keywordargument to specify arbitrary ADRDSSU command keywords. - The new
--no-terseargument to disable AMATERSE compression. - The new
--process-sys1argument to enable dumping SYS1.* datasets. - Datasets produced during dzip operation have extra allocated space released to reduce disk consumption.
- Lazy dataset allocation reduces overall disk consumption.
- The new
jcan- Documented environment variable
CONCHARthat lets you modify the JES command prefix character.
- Documented environment variable
jls- Jobs on hold have status "HOLD" until released or canceled.
- Completion code (
ccode) for jobs with status 'NOEXEC' now shows '?', instead of '0000'.
vtocls- The performance of the
-uargument is significantly improved.
- The performance of the
Bug fixes
dcp- An attempt to copy a sequential dataset that is in use by other jobs displays an error message but finishes with a successful return code. This is fixed to properly fail.
- Fixes a bug that prevents a proper copy of generation datasets when the source GDG base name collides with the segments of a similarly named GDG.
dgrep- Adds new error message BGYSC1008E when a dataset is not found.
dmodanddsed- When the command string in the
-eoption contains double quotes it causes an error when JSON output is enabled, without affecting the operation of the commands. This is fixed.
- When the command string in the
mvscmd- New error message BGYSC5907E is displayed if the username for the current user ID cannot be determined,
- The utility is unable to allocate a dataset concatenation when the unit suboption is specified for one or more of the datasets. This is fixed.
- Fixes a crash when certain dataset error messages were printed.
zinfo- The
iodf.iodescfield has an incorrect length and is truncated. It has been corrected to display the full description. - The
sys_info.sysplex_namefield is empty on certain systems. It is changed to obtain its data fromECVTSPLXto properly display the sysplex name.
- The
Python Library
datasets.dzip()- Add new
dataset_typeargument that corresponds withdzip -T. - Add new
compressandtersekeyword arguments to modifydzipcompression behavior.
- Add new
datasets.exists()- VSAM datasets and aliases for non-VSAM datasets are supported.
gdgs.GenerationDataGroupView.delete()- Add new
include_rolled_offparameter to delete inactive generations still cataloged and named after the GDG base.
- Add new
jobs.read_output()- A nonexistent job ID argument raises a
JobFetchException.
- A nonexistent job ID argument raises a
mvscmd.execute()- The
tmphlqargument works correctly and no longer produces error messageBGYSC0209E.
- The
opercmd.execute()- Dollar signs (
$) are escaped automatically in the command input string.
- Dollar signs (
- Python stubs
- Python stubs include docstring content.
Version 1.3.5.1
ZOAU v1.3.5.1 (PH66203) fixes the following problems:
Bug fixes
zoautil_py.jobs.Job- The constructor for the Job class raises a ValueError exception when the value for
cpu_timeorsrb_timeis unknown (?). This is fixed by setting these fields to zero when the value is unknown.
- The constructor for the Job class raises a ValueError exception when the value for
Version 1.3.5.0
ZOAU v1.3.5.0 (PH64192) adds these capabilities and enhancements:
Improvements
dcp- Warning message
BGYSC0507Iis changed to the error messageBGYSC0507E. - The following new error messages are introduced:
BGYSC0512Ewhen a dataset does not exist.BGYSC0513Ewhendcpcannot perform the copy operation from a source data set to a target data set.BGYSC0514Ewhen the target file could not be defined to the system.BGYSC0515Ewhen the specified source file could not be located.
- Warning message
decho- Improved the error message BGYSC0705E. This message is displayed when the user tries to
dechoa PDS or PDSE dataset without specifying the name of the target member.
- Improved the error message BGYSC0705E. This message is displayed when the user tries to
dgrep- The utility works correctly on systems that use zopen
awk.
- The utility works correctly on systems that use zopen
drm- A new
-nargument will not scratch non-VSAM datasets from the VTOC of the volume they reside on.
- A new
dtouch- The error messages are enhanced to include the descriptions of severe dynamic allocation errors.
dunzip- Added new argument
--keywordto specify arbitrary ADRDSSU command keywords. - Added new argument
--tolerateto ignore errors in obtaining exclusive access to target datasets.
- Added new argument
jcan- New error message BGYSC3808E is added when the system is unable to determine the name of the current user ID.
jcanvalidates that the user hasALTERaccess to the RACF resourceCANCELin theJESJOBSclass. If the validation fails, the job is not cancelled and the new error message BGYSC3806E is displayed. The-dargument displays new informational message BGYSC3803I with the validation details.- If the system is busy,
jcanmight be unable to get a list of the user's jobs. In that case,jcandisplays error message BGYSC3807E and returns error code 8.
jls- The new fields
cputimeandsrbtimeare available through the extended output (-l) and field selection (-o) arguments.
- The new fields
llwhence- If the user is not authorized to use the
opercmdutility,llwhencedisplays error message BGYSC0819E. This message appears only if the-vargument is used.
- If the user is not authorized to use the
mvscmdandmvscmdauth- Added a new
rawsuboption for data definitions which allows the creation of datasets without default attributes. This permits the MVS program that is called to set its own defaults when available. - The error messages are enhanced to include the descriptions of severe dynamic allocation errors.
- Added a new
pdc- Added the environment variables
ISPF_HLQandISMF_HLQto specify custom locations of the ISPF libraries.
- Added the environment variables
pjdd- Added the new fields
cputimeandsrbtimewhen the step information is displayed by reading the EVENTLOG from a job.
- Added the new fields
vls- The output now includes VSAM alternate indexes and paths.
Bug fixes
dcat,dhead,dtail- Fixes an abend that occurs when processing JSON output that contains quotes and control characters.
jcan- Previously, when the job owner was not available,
jcanreturned the incorrect error messagesysmtem busy. It now returns the new messageBGYSC3809E.
- Previously, when the job owner was not available,
pcon- Fixes a bug that caused the same system log to be printed for each node in a sysplex.
- Fixes an error that prints the logs from 24 hours earlier than the specified time in the
-soption. - SYSLOG jobs that have a status other than "AC" cause the process to hang indefinitely. The jobs are skipped to prevent the hang.
pjdd- Records that are read from the job datasets are now sanitized to replace null and unprintable characters with a space (' '). This means that fixed-length records contain spaces up to the logical record length.
- Datasets that are generated by substeps are ignored and not printed when the wildcard step name or DD name filters are used.
Python Library
datasets.delete()- A new
no_scratchargument can be used to preserve a non-VSAM dataset in the VTOC of the volume it resides on.
- A new
datasets.dunzip()- Adds new boolean argument
toleratethat corresponds to thedunzipargument--tolerate - Adds new argument
keywordsthat accepts a dictionary of ADRDSSU command keywords. This permits you to pass arguments that are not explicitly supported.
- Adds new boolean argument
datasets.list_datasets()- Fixes a bug suppressing output when filtering the dataset list by volume.
jobsmoduleJobclass has new attributescpu_timeandsrb_timethat correspond withcputimeandsrbtimefromjls.
Job.wait()- The class method now supports a timeout limit through the optional
max_loopsparameter. This allows users to specify a maximum amount of time to wait for the job to complete before it times out.
- The class method now supports a timeout limit through the optional
lib/zoautil_py- The symbolic link has an incorrect user ID. It now matches the rest of the ZOAU installed files.
types.DatasetDefinition- Added a new
RAWstatus argument that allows creating a dataset without the default values. This permits the MVS program that is called to set its own defaults.
- Added a new
ztypesmodule- The new class
VolumeDefinitionallows defining volume data definitions to use with themvscmdmodule.
- The new class
Version 1.3.4.1
ZOAU v1.3.4.1 (PH64461) fixes the following problems:
Bug fixes
dcat,dhead,dtail- Fixes an abend that occurs when processing JSON output that contains quotes and control characters.
pcon- Fixes a bug that caused the same system log to be printed for each node in a sysplex.
- Fixes an error that printed the logs from 24 hours earlier than the specified time in the
-soption. - SYSLOG jobs that have a status other than "AC" caused the process to hang indefinitely. The jobs are now skipped to prevent the hang.
Version 1.3.4.0
ZOAU v1.3.4.0 (PH61919) adds these capabilities and enhancements:
Improvements
apfadm- A new
-iargument suppresses errors for duplicate add/delete dataset operations.
- A new
ddls- New field
<byte count>shows the number of bytes after blank truncation in the dataset.
- New field
dls- The utility is now able to display non-detailed listings of VSAM datasets using the following arguments:
-t CLUSTERfor VSAM clusters and their components.-t AIXfor alternate indexes and their components.-t PATHfor VSAM paths.
dtouch- A new
-uoption specifies the device unit.
- A new
dunzip- A number of new arguments support a subset of ADRDSSU RESTORE keywords.
- Long arguments are added for each existing short argument.
- A new
--target-gdsoption restores non pre-allocated SMS-managed generation datasets with a specific status.
dwhence- Generation dataset relative names as arguments are now permitted.
- New BGYSC2603I message is displayed when a dataset is ignored.
jls- New fields added:
executiontimeshows the elapsed execution time for a job.executionsecondsshows the number of seconds the job executed for.systemshows the MVS system name where the job ran.subsystemshows the same of the subsystem that executed the job.onodeshows the origin node.xnodeshows the execution node.membnameshows the execution JES member name.
mvscmd&mvscmdauth- Added new
unitsuboption for dataset allocations. - Added new
oldandunitsuboptions for volume allocations.
- Added new
Bug fixes
dmod- Regular expressions that used the global
gflag did not replace all occurrences. - Regular expressions with curly braces did not function correctly.
- Regular expressions that used the global
dsed- Regular expressions that used the global
gflag did not replace all occurrences.
- Regular expressions that used the global
dwhenceandmvscmd- Fixed a problem that prevented proper deallocation of concatenated datasets.
jls- Fixed an issue that added an extra character to the
jobtypefield.
- Fixed an issue that added an extra character to the
pcon- Fixed an allocation namespace collision that broke output for jobs with multiple DDs.
vlsvlsnow works correctly on systems that use zopenawk.
vtocls- Fixed the utility so it correctly lists the contents of the IPL volume instead of displaying the error message BGYSC4404E.
zoaversion- Fixed a bug that caused the health check argument (
-c) to incorrectly calculate the free space for the temporary directory.
- Fixed a bug that caused the health check argument (
Python Library
- Added support for IBM Open Enterprise SDK for Python 3.13.
datasets.compare(),mvscmd.execute(), andmvscmd.execute_authorized()- Added a new
tmphlqkeyword argument to alter the HLQ used for defining temporary datasets.
- Added a new
datasets.create()- Added new
device_unitkeyword argument to create a dataset on a specific device.
- Added new
datasets.dunzip()- Added new
target_gdskeyword argument to specify the status in which a SMS-managed generation dataset should be restored. - Added a number of new arguments to support a subset of ADRDSSU RESTORE keywords.
- Added new
datasets.find_member()- Added support for generation dataset relative names.
jobs.Jobclass- New attributes added to the class with support in
jobs.fetch_multiple()andjobs.fetch_multiple_as_json(): execution_time: Elapsed execution time.execution_seconds: Total elapsed execution time in seconds.system: MVS execution system.subsystem: Subsystem that executed the job.origin_node: Origin node.execution_node: Execution node.member_name: Execution JES member name.
- New attributes added to the class with support in
mvscmdmodule- Added a
device_unitargument for dataset definitions.
- Added a
zsystem.apf()- Added a new
ignoreargument that will ignore errors in the case of duplicate add or delete operations.
- Added a new
Bug fixes
mvscmdmodule- Fixed shell syntax errors caused by special characters in DD options that were not escaped correctly.
Version 1.3.3.2
Bug fixes
ZOAU 1.3.3.2 (PH63491) fixes the following problem:
dls- When listing the details of a multi-volume dataset, the utility only properly printed the line that contained the first volume. The remaining lines displayed the message BGYSC2006I. This has been fixed.
Python library
datasets.list_datasets()- Fixed a problem that prevented listing multi-volume datasets. A Dataset object is now returned for each utilized volume.
Version 1.3.3.1
ZOAU 1.3.3.1 (PH63490) fixes the following problem:
Bug fixes
vtocls- The utility was unable to list the contents of the IPL volume, the error message BGYSC4404E was displayed. This has been fixed.
Version 1.3.3.0
ZOAU v1.3.3.0 (PH60439) adds these capabilities and enhancements:
Improvements
a2eande2a- File permissions are preserved after the file is re-encoded.
dls- A new
-Uoption displays dataset sizes in "human-readable" format.
- A new
jls- The status field has new possible values for
SCANandEOM.
- The status field has new possible values for
mrm- Multiple dataset member arguments can now be specified. This previously returned error message BGYSC1702E.
mvstmp- The error message output code now runs much faster.
pdcandvtocls- Updated
-dargument to display debug data.
- Updated
zoaversion- The ZOAU diagnostic report that is invoked by the
-cargument now checks the temporary directory.
- The ZOAU diagnostic report that is invoked by the
The following utilities now support JES3 environments:
jcanjlspconpproc- The default proclib name used in JES3 is "IATPLBST".
Bug fixes
a2eande2a- The utility now calls
/bin/iconvdirectly in order to avoid conflicts with other versions oficonv.
- The utility now calls
dcat,dhead, anddtail- Fixed error BGYSC1311E when printing large datasets in JSON format.
dmodanddsed- Fixed a bug that returned error
BGYSC4909EorBGYSC4809E, and caused some records to be deleted from the target dataset.
- Fixed a bug that returned error
drm- Attempting to delete datasets with a wildcard in the HLQ incorrectly generated message BGYSC1503E.
dtouch- Allocating a dataset larger than 2GB failed with error message BGYSC1402E due to an improper size calculation. This has been corrected.
dtouchnow treats an allocation size of 1 KB to be 1024 bytes, 1 MB to be 1024 KB, and 1 GB to be 1024 MB.- Specifying a dataset name without any periods no longer causes an infinite loop.
zoautil.so- If the directory containing the
zoautil.soshared library was not in the LIBPATH, the code that searched for it did not properly build the library path.
- If the directory containing the
Python library
datasetsmoduledzip()anddunzip()have a newtmphlqkeyword argument to alter the HLQ used for defining temporary datasets.
zoau_iomodule- Added support to open a dataset in write, append, or update mode.
RecordIO- New
write()method for writing a bytes object to a record stream. RecordIO_TextWrapper- New
write()method for encoding and writing a string to a record stream. zopenandRecordIO- New keyword arguments to define the attributes of a new dataset:
blskize,lrecl,recfm, andspace.
Bug fixes
datasets.tmp_name()- When the
high_level_qualifierargument contained a dollar sign ($), an incorrect name would be returned. The function now returns a correct name.
- When the
zsystem.find_parmlib()andzsystem.find_proclib()- Member names containing a dollar sign (
$) are now handled correctly.
- Member names containing a dollar sign (
zsystem.apf()- If the
dsnameargument contained a dollar sign ($), an error would occur during the APF operation. The function now handles dollar signs correctly.
- If the
Version 1.3.2.2
ZOAU 1.3.2.2 (PH63169) fixes the following problem:
Improvements
mvscmd- Added new
oldandunitsuboptions for volume allocations.
- Added new
Bug fixes
vtocls- The utility was unable to list the contents of the IPL volume, the error message BGYSC4404E was displayed. This has been fixed.
Version 1.3.2.1
Bug fixes
ZOAU 1.3.2.1 (PH62335) fixes the following problem:
dcpdcpfailed when a PDS or PDSE target dataset was already in use by another job that opened the dataset in a shared disposition. This has been fixed.
Version 1.3.2.0
Improvements
ZOAU v1.3.2.0 (PH60438) adds these capabilities and enhancements:
JSON output support
pcon
Generation dataset (GDS) relative name support
dcatdechodheaddmvdtail
Other improvements
a2eande2a- Multiple files can be converted with one command.
- New error messages and improved error checking.
- New warning message when converting an untagged file.
- New
-qargument to suppress message output. - Fewer temporary files are created.
dls- The utility has been reimplemented in C, leveraging the catalog search interface.
- Listings now follow the catalog order.
- A new
-Hoption displays a header for extended listings.
dlsanddinfo- The
-Toption is now available to display the dataset type.
- The
dmvdmvis now capable of renaming generation data groups.
dunzip- The new
-Nargument restores datasets to their original HLQ from when they were archived. - Code is cleaned and reworked for minor performance optimizations.
- The new
dzip- Message BGYSC3910I is added to
-voutput. - Code is cleaned and reworked for minor performance optimizations.
- Message BGYSC3910I is added to
jls- The new field "job type" is now available with options
-land-o.
- The new field "job type" is now available with options
opercmd- The EMCS console used by
opercmdis now deleted after being deactivated. This prevents unused system consoles from consuming system resources. - If two instances of
opercmdare run at the same time by the same user, the command would fail and message BGYSC0822E would be printed. This has been changed to retry the command with varying console names until a console can be activated.
- The EMCS console used by
pcon- You can now use the -t argument to specify a number of minutes of log data to print.
- When called with no arguments, the default behavior is to print 10 minutes of data. This is identical to the
-rargument.
pjdd- Control characters are now escaped in JSON output.
zoaversion- Added the
zoauversionsymlink for consistent naming. - The
-jargument is now available for JSON output.
- Added the
Bug fixes
ddlsandpjdd- A bug that threw error BGYSC5403E when running on JES3 systems is fixed.
dtouch- The
dtouchmessage ID prefix was changed to BGYSC63 fix a collision with other message IDs.
- The
dzip- If a dataset is in use and cannot be serialized, new message BGYSC3908I is printed.
- If an error is detected during
dzipoperation and the-fargument is specified to ignore errors, new message BGYSC3909I is printed. - Previously, a shell syntax error occurred if the call to ADRDSSU failed. This is fixed.
jcan- Previously, the return code from
jcanwas not properly set if a user is not permitted to cancel a job. An error code is now returned when a SAF error message is raised.
- Previously, the return code from
mrm- A bug that prevented a deletion when a member name contains a dollar symbol is fixed.
mvscmd- Some messages are updated to print "ZOAU" instead of "ZOA Utilities".
Python library
-
The new attribute
job_typeis added to theJobclass, and support for it added tojobs.fetch_multiple()andjobs.fetch_multiple_as_json(). -
The
zsystem.list_data_classes()function is now available to retrieves a list of SMS data classes on the system. -
The optional argument
keep_original_hlqis now available for use withdatasets.dunzip()to preserve the original HLQ of the archived datasets. -
The following functions support generation dataset relative names:
datasets.read()datasets.read_as_bytes()datasets.read_head()
Version 1.3.1.2
Bug fixes
ZOAU 1.3.1.2 (PH62335) fixes the following problem:
jcan- If a user is not authorized to submit console commands and attempts to use
jcan, an abend may occur. This has been fixed.
- If a user is not authorized to submit console commands and attempts to use
Version 1.3.1.1
Bug fixes
ZOAU 1.3.1.1 (PH60717) fixes the following problem:
dcp,dgrep,mls, andmrm- A negative generation dataset relative name was resolving into an incorrect absolute name when the generation data group contained gaps between generations. This has been fixed.
Version 1.3.1.0
Improvements
ZOAU v1.3.1.0 (PH59399) adds these capabilities and enhancements:
JSON output support
JSON output support is now available for the following commands:
dgrepdtouchdwhencemvscmdmvscmdauth
Generation dataset (GDS) relative name support
Generation dataset support is now available for the following commands:
dgrepdmoddrmdseddtouchjsubmlsmmvmrm
Other improvements
dcp- The efficiency of
dcpis improved.
- The efficiency of
dmodanddsed- Documentation is now available for the
-roption.
- Documentation is now available for the
dls- Use the new
-toption to filter by dataset type, and the new complementary-Foption to print the type identifier for each dataset. - You can now list generation data groups and generation datasets.
- Use the new
drm- drm now deletes generation data groups as well as VSAM, non-VSAM, and generation datasets. The new
-Foption is required to delete non-empty GDGs.
- drm now deletes generation data groups as well as VSAM, non-VSAM, and generation datasets. The new
dtouch- The number of tracks allocated for primary and secondary space is now rounded up to fix a bug that allocated less space than specified by
-sor-e. - You can now create generation data groups by specifying the option
-tGDG. New options-E,-L,-P,-S,-X, and-Yare available to define GDG attributes.
- The number of tracks allocated for primary and secondary space is now rounded up to fix a bug that allocated less space than specified by
jls- Additional job states are documented.
mvscmdmsg- A reimplementation of
mvscmdmsgin C provides significant performance improvement when printing messages. This is especially noticeable for cases likeopercmd -dormvscmd -d.
- A reimplementation of
zoautil.so- The "OWNER" field in the product registration SMF89 record is now properly filled in.
Python library
- Documentation is now available for the
datasets.lineinfile()optional argumentbackref. - A new
datasets.search_dictionary()method is available that utilizes the JSON output fromdgrep. - The new
gdgsmodule provides an interface to z/OS Generation Data Groups. - Generation dataset relative names are now supported in the following functions:
datasets.blockinfile()datasets.create()datasets.delete()datasets.delete_members()datasets.find_replace()datasets.list_members()datasets.move_member()jobs.submit()
Bug fixes
ZOAU v1.3.1.0 fixes the following problems:
dcp- If a PDS member was deleted without removing its aliases, a subsequent call to
dcpdisplayed an error message. This has been fixed.
- If a PDS member was deleted without removing its aliases, a subsequent call to
ddls- A bug is fixed that caused incorrect return codes 2, 3, and 4 instead of 8, 5, and 6.
decho- Appending data to a full dataset appeared to be successful even though some data was not written. To fix this,
dechonow returns RC=8 and displays error message BGYSC0706E.
- Appending data to a full dataset appeared to be successful even though some data was not written. To fix this,
dls- A message has been removed that appeared if
dlswas invoked with the-aloptions to browse a dataset with no members.
- A message has been removed that appeared if
mls- In certain cases, the last member in a PDSE was not printed. This is fixed.
pcon- The algorithm used to calculate "recent" vs. "specific" times for the log start time has been fixed. A time provided with the
-sargument should produce similar results to one of the-dlmrwyarguments. - New diagnostic messages are available when using the
-voption.
- The algorithm used to calculate "recent" vs. "specific" times for the log start time has been fixed. A time provided with the
Python library
datasets.create()now raises a DatasetCreateException if thedtouchutility gives a non-zero return code.datasets.read_as_bytes()can now read a PDS member without quoting thedatasetargument.datasets.list_members()now raises a ZOAUException if themlsutility gives a non-zero return code.opercmd.execute()now raises a ZOAUException if theopercmdutility gives a non-zero return code.
Version 1.3.0.4
Bug fixes
ZOAU 1.3.0.4 ZOAU (PH59810) fixes the following problem:
Python Library
datasets.list_vsam_datasets- An exception was thrown if no datasets matching the provided pattern were found. This has been changed to return an empty list.
Version 1.3.0.3
Bug fixes
ZOAU 1.3.0.3 (PH59330) fixes the following problem:
Python Library
zoau_io.zopen- Passing an unsupported encoding page to the
zopen()factory function caused an abend. This has been fixed to throw an exception.
- Passing an unsupported encoding page to the
Version 1.3.0.2
Bug fixes
ZOAU 1.3.0.2 (PH59329) fixes the following problem:
opercmd- On some systems, issuing an operator command could result in abend SD22 R=00000020. This has been fixed.
Version 1.3.0.1
Bug fixes
ZOAU v1.3.0.1 (PH59328) fixes the following problem:
pcon- An off-by-one error occurred if the
-sargument was applied to January or February of a leap year. This has been fixed.
- An off-by-one error occurred if the
Version 1.3.0.0
IBM Z Open Automation Utilities release 1.3 is a major release with significant enhancements and changes, including new support for generation datasets (GDS) and JSON output, improved binary read capabilities, and compatibility with IBM Open Enterprise SDK for Python 3.12.
If you use a previous version of ZOAU, be sure to review Release planning for essential migration guidance.
Key Improvements
GDG dataset support. Generation datasets (GDSs) within generation data groups (GDGs) are common dataset types on z/OS. GDG dataset support streamlines interactions involving GDSs and reduces the need for pre- or post-processing outside of ZOAU. The same operations are fully supported in Python. GDG dataset support is available through the dcp, mvscmd, and mvscmdauth shell commands, and the Python API datasets.copy() function.
JSON output support. JavaScript Object Notation (JSON) is a popular open standard for data interchange between computer applications and computer systems. You can now use many popular commands to provide JSON output for your workflows, which can help make automation tasks easier and enable you to build more complex solutions. Included is an enhanced metadata feedback mechanism that you can use to evaluate return codes and other runtime information directly in the JSON output provided by ZOAU. JSON output capability is available for the utilities apfadm, dcat, ddls, dhead, dinfo, dls, dtail, jls, opercmd, pjdd, dmod, dsed, and zinfo, and the relevant Python API calls associated with these utilities.
Improved binary read capabilities. ZOAU utilities open and interpret datasets as text strings. With the binary read option, all dataset utilities and APIs involved in processing datasets can now handle non-printable NULL characters properly, including those present in legacy datasets. This capability is available through the dcat, dhead, and dtail utilities, and through the Python language pack datasets.read_as_bytes function.
IBM Open Enterprise SDK for Python 3.12 compatibility. IBM Z Open Automation Utilities 1.3 tests for compatibility with IBM Open Enterprise SDK for Python 3.12 and provides support for a wide range of Python workloads via the ZOAU Python API. To make installation easier, the Python language pack in ZOAU ships with a pip wheel. Once installed, you can use the Python capabilities in ZOAU through IBM Open Enterprise SDK for Python in your custom Python applications or automation projects, including those that leverage Red Hat® Ansible® Certified Content for IBM Z using Red Hat Ansible.
Stabilizations, deprecations, and withdrawals
Z Open Automation Utilities 1.3 streamlines support for ZOAU Python language pack operations and introduces changes to Python methods. To help you identify potential Python incompatibilities and migrate from prior versions of ZOAU, see Release planning.
Detailed change list for ZOAU v1.3
This is a new major release with significant changes and enhancements.
Improvements
ZOAU v1.3.0.0 adds these capabilities and enhancements:
- New JSON output support using the z/OS JSON Parser and a new schema for the following utilities:
dcatddlsdheaddinfodlsdtailjlsopercmdpjdd
- The existing JSON output for the following utilities has been updated to use the new schema:
apfadmdmoddsedzinfo
dcatanddhead- Added
-bargument for "binary read" support. - Added
-largument for suppressing newlines between dataset records.
- Added
dcp- Added support to reference a generation dataset by its relative name.
- Added support to copy a generation data group (GDG) and all its active generations to a new GDG.
dsed- The need to escape curly braces in regular expressions is eliminated.
mvstmp- A new
-cargument is added to check whether the current user can write to a temporary dataset. - The current user ID is now the default HLQ for a temporary dataset name.
- The provided HLQ will be validated to ensure it conforms to dataset naming requirements.
- A new
mvscmdandmvscmdauth- Added support for associating a generation dataset (GDS) with a DD name. It is now possible to reference the latest, a previous, or new generation by using a GDS relative name.
opercmd- Unprintable characters are converted to spaces. Certain operator commands contain non-text or control characters in their output. This would cause the Python wrapper API
opercmd.execute()to throw an exception. - The units of the
-T TIMEOUTargument have been changed to hundredths of a second (0.01). This allows for more granularity in setting the desired timeout.
- Unprintable characters are converted to spaces. Certain operator commands contain non-text or control characters in their output. This would cause the Python wrapper API
zoautil.so- The shared library version number has been increased to
0x00020101.
- The shared library version number has been increased to
Python library
This release of the ZOAU introduces significant changes to the Python APIs. Programs that use these APIs may need modifications in order to function correctly.
- Multiple function parameters are renamed to comply with Python style and security guidelines.
datasets.copy- Added support to reference a generation dataset by its relative name.
- Added support to copy a generation data group (GDG) and all its active generations to a new GDG.
mvscmd.executeandmvscmd.execute_authorized- Dataset definitions now support references to generation datasets by using their relative names.
- Exception Rework
- New exception schema for ZOAU related exceptions.
- All ZOAU Exceptions' content is now consistent, including a ZOAUResponse Object within them.
- Previously silent errors now throw detailed exceptions.
- Mislabeled ZOAU exceptions returned to Python's built-in exceptions (Ex. TypeError).
- Reworked
Jobobject- Object relocated to
jobs.py. - Object attributes names now comply to Python style guides.
- Improved
__str__and__repr__methods. - Extended fields are no longer loaded by default, improving performance.
- New
jobs.fetch_extended_fields()function to fetch extended fields for existing jobs. Purgedboolean attribute added to control the Job's workflows.- Type checking now enabled to ensure consistency.
- Unknown fields are now stored as
None
- Object relocated to
jobs.submit()redesigned to improve usability.- New
jobs.submit_return_job_id()function for batch job submission or special behaviors. jobs.cancel()redesigned to improve usability.- New standalone
jobs.purge()function. - Purged jobs no longer can be refreshed, cancelled, or purged.
- Attempting to do so is handled correctly and will not break workflows.
- Improved
jobs.fetch()replacesjobs.get() - Improved
jobs.fetch_multiple()replacesjobs.listing(). - New
jobs.fetch_multiple_as_json()function with enhanced fetch control. - New
jobs.exists()function. - Reworked
Datasetobject- Object relocated to
datasets.py. - Object attribute names now comply to Python style guidelines.
- Improved
__str__and__repr__methods. - Type checking now enabled to ensure consistency.
- Unknown fields are now stored as
None.
- Object relocated to
- Improved
datasets.list_datasets()replaces olddatasets.listing() datasets.dzip()&datasets.dunzip()replacedatasets.zip()&datasets.unzip().- New
datasets.list_dataset_names()lists only dataset names as strings.- This is now the only function that supports listing migrated datasets.
datasets.get_hlq()replacesdatasets.hlq()- Removed
volumes.pymodule and relocated its content todatasets.pydatasets.list_vsam_datasets()replacesvolumes.list_vsam_datasets()datasets.list_datasets_by_volume()replacesvolumes.list_datasets_by_volume()
- Internal functions now are building on JSON responses from the core ZOAU libraries.
- Multiple new internal utility functions.
Stabilizations, deprecations, and withdrawals
ZOAU v1.3.0.0 removes the following scripts from the bin directory. These were deprecated in the previous release, and are now removed from the product.
ddlshelper.oldjcanhelper.oldjlshelper.oldjsubhelper.oldopercmdhelper.oldpconhelper.oldpjddhelper.old
Bug fixes
ZOAU v1.3.0.0 fixes the following problems:
apfadm- When a volume does not have a VVDS, new error message BGYSC4720E will be displayed.
dls- Alias information was not shown when the user passed
-aas the only parameter on the command line. - The utility no longer generates temporary datasets.
- Alias information was not shown when the user passed
dlsraw- The error message BGYSC1205E was incorrectly formatted.
dsed- In debug mode
-d, the boolean JSON property"changed"was returning0or1. It now returnsfalseortrue, respectively.
- In debug mode
vls- Incomplete cluster information was shown when a dataset was in use. This has been changed to display message BGYSC4304E.
Python library
zsystem.read_console()- Fixed an issue that ignored the given 'options' argument and always returned the last 10 minutes of the log.
Version 1.2.x
- Version 1.2.5.11
- Version 1.2.5.10
- Version 1.2.5.9
- Version 1.2.5.8
- Version 1.2.5.7
- Version 1.2.5.6
- Version 1.2.5.5
- Version 1.2.5.4
- Version 1.2.5.3
- Version 1.2.5.2
- Version 1.2.5.1
- Version 1.2.5.0
- Version 1.2.4.5
- Version 1.2.4.4
- Version 1.2.4.3
- Version 1.2.4.2
- Version 1.2.4.1
- Version 1.2.4.0
- Version 1.2.3.2
- Version 1.2.3.1
- Version 1.2.3
- Version 1.2.2.1
- Version 1.2.2
- Version 1.2.1.1
- Version 1.2.1
- Version 1.2.0
Version 1.2.5.11
Bug fixes
ZOAU 1.2.5.11 fixes the following problem:
vtocls- Listing the contents of the IPL volume displays the error message BGYSC4404E. This is fixed.
Version 1.2.5.10
Bug fixes
ZOAU 1.2.5.10 fixes the following problem:
dcpdcpfailed when a PDS or PDSE target dataset was already in use by another job that opened the dataset in a shared disposition. This has been fixed.
Version 1.2.5.9
Bug fixes
ZOAU 1.2.5.9 fixes the following problem:
jcan- If a user is not authorized to submit console commands and attempts to use
jcan, an abend may occur. This has been fixed.
- If a user is not authorized to submit console commands and attempts to use
Version 1.2.5.8
Improvements
dcp- The efficiency of
dcphas been improved.
- The efficiency of
Bug fixes
dcp- Trying to copy a load module with aliases into an existing PDSE two times fails when the second copy attempt is the same load module. This has been fixed.
Version 1.2.5.7
Bug fixes
ZOAU 1.2.5.7 fixes the following problem:
Python Library
datasets.list_vsam_datasets- An empty list is now returned if no datasets matching the provided pattern are found. This function previously threw an exception.
Version 1.2.5.6
Bug fixes
ZOAU 1.2.5.6 fixes the following problem:
-
core.so- Unprintable characters in the response buffer from a ZOAU utility are now converted to a space character. This prevents a UnicodeDecodeError exception from being thrown when the response buffer is converted to a Python string.
Version 1.2.5.5
Bug fixes
ZOAU 1.2.5.5 fixes the following problem:
-
pcon-
The algorithm that calculates recent and specific log start times is fixed. A time provided with the
-sargument now produces results similar to those produced by the-dlmrwyarguments. -
More diagnostic messages are now available when you use the
-voption.
-
Version 1.2.5.4
Bug fixes
ZOAU 1.2.5.4 fixes the following problem:
opercmd- On some systems, issuing an operator command could result in abend SD22 R=00000020. This has been fixed.
Version 1.2.5.3
Bug fixes
ZOAU 1.2.5.3 fixes the following problems:
pcon- An off-by-one error occured if the
-sargument was applied to January or February of a leap year. This has been fixed.
- An off-by-one error occured if the
Version 1.2.5.2
The fix available in ZOAU v1.2.5.2 applies to the 1.2.x version. It will be available for ZOAU v1.3 in a future update.
Bug fixes
ZOAU v1.2.5.2 fixes the following problem:
Python Library
zoau_io.zopen- Passing an unsupported encoding page to the
zopen()factory function caused an abend. This has been fixed to throw an exception.
- Passing an unsupported encoding page to the
Version 1.2.5.1
Improvements
- Added support for IBM Open Enterprise Python version 3.12.
- A new wheel file has been added to easily install support for the latest Python runtime.
Version 1.2.5.0
New commands
ZOAU v1.2.5.0 adds the following new utilities:
a2eande2a- Convert files in-place between EBCDIC and ASCII. Reads and sets file tags during the conversion.
pdc- Print a list of the active data classes.
smsraw- Drive an SMS service through batch TSO.
ZOAU v1.2.5.0 adds these capabilities and enhancements:
Improvements
opercmd- New
-wargument added to toggle behavior when waiting for command response output. Specifying this argument causesopercmdto wait the entire timeout period before returning. - The default timeout value has been changed to 1 second. This is the maximum amount of time that
opercmdwill wait before returning, regardless if it received any command response.
- New
zoautil.so- Improved temporary file creation and cleanup.
zoaversion- A new
-cargument has been added to print a diagnostic report about the ZOAU installation. This is intended for use by IBM service personnel. - The release "codename" is printed as part of the command output.
- A new
Python library
core.so- The Python language pack correctly performs a version check before loading the ZOAU shared library. If there is a version mismatch, an exception will be raised.
datasets.copy- Add new
aliasandexecutablearguments to allow for copying of dataset aliases. - Fixed an issue that caused a dataset name containing a dollar sign to be unintentionally expanded as a shell variable.
- Add new
datasets.create- Creation of VSAM datasets is now properly validated.
datasets.list_members- Add new
aliasargument to toggle display of dataset member aliases.
- Add new
types.DatasetDefinition- Fixed an argument error that caused message BGYSC0224E.
zsystem.read_console- Fixed an issue that caused incorrect output when using
debug=True.
- Fixed an issue that caused incorrect output when using
Bug fixes
ZOAU v1.2.5.0 fixes the following problems:
- Many utilities did not properly support the
-doption to enable debug output. This has been fixed. ddls- The debug output is now correctly printed to standard error. This will allow using
debug=Trueinjobs.list_dds().
- The debug output is now correctly printed to standard error. This will allow using
decho- Fixed an issue that caused several "libdio error" messages to display.
dinfo- Fixed issues that produced unprintable characters in the output values and memory faults in certain cases.
dlsdls -snow shows the proper size of datasets larger than 4GB.- A memory overlay issue that caused corrupted output has been fixed.
dmod- Fixed a memory corruption issue.
- Added validation checks when writing out the modified dataset.
- New error message BGYSC4819E is produced when
dmodis unable to find a z/OS UNIX file.
dzip- Fixed return codes produced when the compression step fails.
dzippreviously returned RC=8 in all failure cases. It will now pass through return codes from called programs.
- Fixed return codes produced when the compression step fails.
jcan- Two new error messages BGYSC3804E and BGYSC3805E were added to
jcan. The first is triggered ifjcandetects a security manager error, and the second ifjcandetects a memory error.
- Two new error messages BGYSC3804E and BGYSC3805E were added to
jsub- It is now possible to submit a job from a dataset that has a hyphen in the name.
mvscmd- Fixed a bug that triggered a shell syntax error when verbose output was enabled and a PDS member was used as a DD.
pjdd- Fixed an issue that displayed error message BGYSC3703E even on success.
Version 1.2.4.5
Bug fixes
ZOAU 1.2.4.5 fixes the following problem:
Python Library
zoau_io.zopen- Fixed an issue that was causing an abend when calling the
zopenfactory function multiple times.
- Fixed an issue that was causing an abend when calling the
Version 1.2.4.4
Bug fixes
ZOAU v1.2.4.4 fixes the following problem:
drm- Fixed an intermittent problem where message BGYSC1505E was produced and the specified datasets were not deleted.
Version 1.2.4.3
Bug fixes
ZOAU v1.2.4.3 fixes the following problems:
-
jls- Adjusted the
-oand-loptions to make-ohave priority. Only the fields specified by the-ooptions will be honored, even if the-loption is also specified.
- Adjusted the
-
ddls- Fixed an issue that printed a single line with no details for jobs that were invalid or inaccessible to JES.
Version 1.2.4.2
Bug fixes
mvscmd- Fixed a bug that triggered a shell syntax error when verbose output was enabled and a PDS member was used as a DD.
- Fixed a bug that didn't allow certain programs to receive input from stdin while using the documented syntax.
Version 1.2.4.1
Changes
ZOAU v1.2.4.1 changes the following behavior:
opercmd- The default wait time for a command response has been reduced. This can improve the performance of scripts that make repeated calls to
opercmd.
- The default wait time for a command response has been reduced. This can improve the performance of scripts that make repeated calls to
Python library
opercmd.execute- The default value of the
timeoutparameter has been changed to0. This means that the API will accept whatever the minimum timeout value is from theopercmdutility.
- The default value of the
Version 1.2.4
Improvements
ZOAU v1.2.4 adds these capabilities and enhancements:
dcp- A new
-fargument is added to force the copy operation, which can be used to override a shared lock on the destination dataset. - NOTE: If a dataset member has aliases, and is not a program object, copying that member to a dataset that is in use will result in the aliases not being preserved in the target dataset. When this scenario occurs an error message will be produced along with a non-zero return code.
- A new
-iargument is added to preserve the aliases of text-based members.
- A new
ddls- New
-iflag to list SYSIN DDs, likeINPUT ONin SDSF. - New error messages BGYSC3405E and BGYSC3406E are produced if a job is in a phase when DDs cannot be queried.
- New
decho- Updates to the man page describe how to write a message starting with a dash.
dls- Automatically translates the dollar symbol to the pound sterling symbol when the locale is set to En_GB.IBM-285.
dtail- A new
-bargument is added to view "binary" files. This allows for viewing of data that contains NULL or terminal control characters. - A new
-largument is added that suppresses newlines between dataset records.
- A new
hlq- The
-dargument is now properly supported.
- The
jls- New field <pgmname> in
-loutput shows the program name from the job's last completed step. - New option
-oenables field selection and ordering.
- New field <pgmname> in
mls- Automatically translates the dollar symbol to the pound sterling symbol when the locale is set to En_GB.IBM-285.
mvscmd- Hyphens are now supported in dataset names.
pcon- The
-sargument is documented to support seconds in the timestamp. - Syntax help is displayed when
pconis invoked with no arguments.
- The
pjdd- Now supports reading the contents of SYSIN DDs.
- Special parsing of the EVENTLOG DD to show step information.
- Error messages are now produced if a job is in a phase when DDs cannot be queried.
samples/binary_read.c- A new sample program that shows how to use the new binary read capability for reading datasets.
samples/zoau_sample.c- A new sample program is available that shows how to utilize the ZOAU shared library.
zoautil.so- The ZOAU shared library version has been updated to support binary streams.
- An additional argument has been added to the function vector table to for a new options structure. This is used to modify the behavior of the shared library during a function call.
- The
zoau_responsestructure has been extended to handle binary streams.
- The man page titles are updated to say "ZOAU" instead of "ZOA Utilities".
Python library
datasets.copy- The new boolean parameter
forceis added to force the copy. - NOTE: If a dataset member has aliases, and is not a program object, copying that member to a dataset that is in use will result in the aliases not being preserved in the target dataset. When this scenario occurs an exception will be raised, along with an error message and a non-zero return code.
- The new boolean parameter
datasets.listing- A new
volumeoption has been added, this enables filtering by volume name.
- A new
jobs.list_dds- New
sysinoptional parameter that invokesddls -i. - New
DDQueryExceptionbased on job phases.
- New
Jobclass- New attribute
program_name.
- New attribute
volumes.list_vsam_datasets- A new
migratedoption has been added to optionally display VSAM datasets that have been migrated.
- A new
- Python Samples
- Python samples are now available within the
samplesdirectory. - A new multi-process asynchronous
mvscmdsample is included.
- Python samples are now available within the
- Stub files
- The ZOAU install now has a
zoautil_py-stubsdirectory that contains*.pyistub files for the python utilities. This allows you to import them into your IDE for enhanced language support.
- The ZOAU install now has a
- ZOAU IO module
- Addition of a new
zoau_iomodule that provides IO interfaces to z/OS sequential and partitioned datasets. - The module currently supports reading operations over a dataset opened in a record stream model.
- A new
RecordIOclass is defined, instances of this class represent a record stream in binary mode. This class provides areadrecord()method that returns a bytes object containing the data from the next record available in the stream. - A new
RecordIO_TextWrapperclass provides a decoding/encoding layer over aRecordIOobject to output readable text strings. - The module provides a
zopen()factory function that creates an instance of the previously mentioned classes depending on an optional encoding parameter. - All the classes in the module support the iterator protocol to read the stream in a record-by-record approach. These classes also suport the context manager protocol to automatically open and close a stream using the
withoperator.
- Addition of a new
Bug fixes
datasets.lineinfile- Fixed issue where the
lineinfile()function was duplicating lines when the instruction was to replace them.
- Fixed issue where the
datasets.write- A string starting with a hyphen (-) character can now be written to a dataset.
dgrep- The
-dargument is now properly supported. - The man page mentioned a
-margument that was never implemented. This has been removed.
- The
dls- Fixed an issue that caused
dinfoto return blank dataset names. - New error BGYSC2010E for failed memory allocation in
dinfo.
- Fixed an issue that caused
jls- Fixed an issue that showed incorrect creation date under z/OS 2.3.
jsub- Submitting JCL from a file without a trailing newline now works correctly.
opercmd- It now waits the exact amount of time specified in the TIMEOUT argument while collecting messages. This allows it to collect more complete message responses from commands that produce multiple single line messages.
vls- The man page now documents the new
-margument, for displaying migrated VSAM datasets.
- The man page now documents the new
zoautil.so- Running a command when your LIBPATH points to a backlevel version of the ZOAU shared library no longer causes an abend.
- The ZOAU version reported in SMF records now matches the build version.
Version 1.2.3.2
Bug fixes
ZOAU v1.2.3.2 fixes the following problem:
- jdc
- Julian dates with years between 2000-2009 are now handled properly.
- The man page has been updated to mention the new input formats yyyy.ddd, yy.ddd, yyyyddd, and yyddd.
Version 1.2.3.1
Bug fixes
ZOAU v1.2.3.1 fixes the following problem:
- zoautil.so
- Temporary files are properly cleaned up when the shared library is invoked from an ASCII mode caller.
Version 1.2.3
Improvements
ZOAU v1.2.3 adds these capabilities and enhancements:
dmod- A new
-jargument is added to produce JSON output.
- A new
dtouch- The
-rargument now accepts record formatFfor creating fixed unblocked datasets.
- The
jls- New
-loption to show additional fields. - Verbose output shows a list header.
- New
jdc- Supported input formats now include yyyy.ddd, yy.ddd, yyyyddd, and yyddd.
- Now supports
-?for syntax help. - New error message for invalid input length.
zoaversion- The APAR number is now displayed as part of the program output.
Python library
- Python wheel packages now provide easier installation and eliminate the need for a C compiler to be available during installation.
- Memory leaks are fixed in the Python extension module.
datasets.blockinfile()- Added a new as_json argument to display output in JSON format.
datasets.create()- Added support for
record_formatto accept a type ofF(fixed unblocked).
- Added support for
datasets.read_head()- This new function displays the head content of a non-VSAM dataset.
types.py.Job- New attributes are added to support the new
jls -loption. - The
rcattribute type is changed tostr.
- New attributes are added to support the new
Bug fixes
ZOAU v1.2.3 fixes the following problems:
dcp- The
-Iand-darguments are now properly supported.
- The
dls- Fixes the error message that is displayed when a partitioned dataset member is deleted but aliases that point to it remain.
dtouch- An example in the man page is fixed.
- New message BGYSC1429E indicates an unknown dynParm type.
dzip- Message BGYSC3907I now prints correctly when
AMATERSEfails with RC=0B37.
- Message BGYSC3907I now prints correctly when
jls- Listing the caller's jobs is now working properly when executing
jls '*'.
- Listing the caller's jobs is now working properly when executing
jsub- An attempt to submit invalid JCL now properly terminates with an error.
mls- Fixes the error message that is displayed when a partitioned dataset member is deleted but aliases that point to it remain.
mvscmdmsg- Messages from the various utilities are properly displayed if the shell environment variable
LANGis not set.
- Messages from the various utilities are properly displayed if the shell environment variable
Version 1.2.2.1
Python library
- The ZOAU Python libraries now support IBM Enterprise Python 3.11 with the IBM C/C++ for Open Enterprise Languages compiler.
Version 1.2.2
New commands
ZOAU version 1.2.2 adds the commands dcat and dhead.
dcatdisplays the contents of a dataset to a z/OS UNIX terminal.dheaddisplays a specified number of lines from a dataset to a z/OS UNIX terminal.
Improvements
ZOAU v1.2.2 adds these capabilities and enhancements:
dgrep- A new
-coption to count the number of matching lines.
- A new
dls- A new
-Voption to specify a volume for browsing. - A new
-aoption to list the dataset members and member aliases.
- A new
mls- A new
-Hoption to see or hide PDS member aliases.
- A new
mrm- A new
-foption to delete PDS members that are in use.
- A new
parmwhence- Improves error message handling with incorrect member name input.
Python library
datasets.blockinfile()- Special shell characters are now properly escaped.
datasets.delete_members()- A new
forceargument is available to force the deletion of a dataset member that is in use.
- A new
datasets.listing()- A new
name_onlyboolean argument is available to limit the returned object so that it only contains the names of matching datasets. This can improve performance if there are a large amount of matches. Thedetailedargument is removed because it is identical to the default behavior.
- A new
datasets.search()- A new
count_linesargument is available to display the number of lines matched in the dataset.
- A new
ZOAUResponse.from_dict()- This is now a class method instead of a static method to improve code readability and Python conformance.
Bug fixes
ZOAU v1.2.2 includes the following fixes:
dls- Static system symbols used for indirect volume serial support are resolved.
jsub- Now displays an error message when the user tries to submit a directory, PDS, or PSDE.
mmv- An error is fixed that prevented renaming when a volume couldn't be mounted.
mvscmdauth- A message truncation issue when using the
-dargument is fixed.
- A message truncation issue when using the
opercmd- The EMCS console created by
opercmdnow has MASTER authority. This allowsopercmdto reply to WTOR messages issued by a different console. - Truncation of console command output is prevented in certain circumstances.
- Error message text is improved.
- The EMCS console created by
Version 1.2.1.1
Bug fixes
ZOAU v1.2.1.1 fixes the following problems:
configure.py- The script is properly tagged with ISO8859-1 encoding and has the execute bit set. It also supports an optional argument to a different Python installation.
Version 1.2.1
New commands
Use the new zinfo command to view z/OS system information from the z/OS UNIX terminal in human-readable or JSON formats. Learn more at zinfo.
Important notices
- The utilities
opercmdandjcannow require authorization before use. Users must obtain READ access to theMVS.MCSOPER.ZOAUfacility in theOPERCMDSclass. Running these commands without authorization results in an error message. Learn more at Installing and configuring ZOAU. - This version of ZOAU has been rebased on IBM Enterprise Python version 3.9. To use the Python language bindings with ZOAU, you must have version Python 3.9 or 3.10 installed.
- The ZOAU license agreement is now located in the LICENSES directory.
Improvements
ZOAU v1.2.1 adds these capabilities and enhancements:
decho- Displays a new error message if passed a quoted dataset name.
opercmd- Supports user-defined command timeout.
- Allows user to influence console name to avoid console conflicts.
Bug fixes
ZOAU v1.2.1 fixes the following problems:
Core utilities
dgrep- Searching a dataset for strings that contain single quotes (') now works correctly.
dls- A new error message is displayed for RC=12 condition.
- Datasets with hyphens in the name are properly displayed.
dmod- Various constraints limiting input marker sizes are relaxed.
dtail- A file handle leak is fixed.
dwhence- A memory leak is fixed.
jls- Batch jobs that do not yet have an owner now display correctly.
mls- If the running user does not have a TSO user ID, the output now displays correctly.
pproc- The
-aargument is now correctly honored. - Now strips trailing parenthesis from dataset name.
- The
opercmd- Now displays reply-ID and allows user response when a WTOR message is issued to the console.
- Output header is now properly aligned regardless of system name length.
- Julian date in header now displays correctly when the day in the year is less than 100.
zoautil.so- Memory leaks are fixed and string building code is improved.
Multiple utilities
- Temporary HLQ prefix now gracefully handles the case when
getlogin()returns NULL. - Help arguments for shell commands are more consistent.
- Running commands without setting ZOAU LIBPATH first no longer results in 0C4 or 0C6 abends.
Python library
datasets.exists()- Is rewritten to reduce CPU consumption.
core.so- A rare abend is fixed.
Version 1.2.0
Important notices
Full reimplementation in C of ddls, jcan, jls, jsub, pjdd, opercmd, and pcon
The utilities ddls, jcan, jls, jsub, pjdd, opercmd, and pcon are fully re-implemented in C, which brings new benefits:
- Significantly improves performance.
- Removes dependency on SDSF by interacting directly with the subsystem.
- Adds new features:
DSID(dataset ID) toddlsandpjdd.- Providing JCL content from stdin or a UNIX System Services file to
jsub.
Note: Some reimplemented utilities introduce options that are not compatible with previous versions. To learn more about these new options, run the utility with -h, or refer to Shell commands reference.
Return codes are standardized across utilities
ZOAU now features standardized return codes across utilities. To learn more about new or changed return codes, see Return codes.
Java API is removed
The ZOAU Java API, which was deprecated in v1.1.0, has been removed.
Improvements
ZOAU v1.2.0 adds these capabilities and enhancements:
- dcp - Copy from a partitioned dataset (PDS) to another PDS, or to a PDS target that does not yet exist. Learn more.
- dsed, dmod, and decho - Write to a dataset in shared mode (DISP=SHR).
- dtouch - Create datasets in FBS or VBS format.
- dunzip - Use the IMPORT option (
-I) for cross-system unarchiving . - Enhanced argument parsing, code quality, debug/tracing info, and message printing.
- Bug fixes and other improvements.