z/OS MVS Programming: Callable Services for High-Level Languages
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Running zlib

z/OS MVS Programming: Callable Services for High-Level Languages
SA23-1377-02

Start of change

To compress data with zEDC, your installation must meet the system requirements. See Requirements for zEnterprise Data Compression for the system requirements for zEDC.

To use the IBM-provided zlib compatible C library for data compression or data expansion services, follow these steps:
  1. Link or re-link applications to use the IBM-provided zlib.
    The IBM-provided zlib is an archive file in the z/OS UNIX System Services file system and can be statically linked into your applications. The paths for the zlib archive file and the zlib header files are:
    Path for the zlib archive file:
    /usr/lpp/hzc/lib/libzz.a
    Path for the zlib header files:
    /usr/lpp/hzc/include/
    Note: When a new IBM service is provided for zlib, all applications that statically link zlib must re-link in order to use the updated IBM-provided zlib and take advantage of the new function.
  2. Provide System Authorization Facility (SAF) Access:
    • Access to zEDC Express is protected by the SAF FACILITY resource class: FPZ.ACCELERATOR.COMPRESSION.
    • Give READ access to FPZ.ACCELERATOR.COMPRESSION to the identity of the address space that the zlib task will run in.
  3. Use the z/OS UNIX environmental variable, _HZC_COMPRESSION_METHOD, to control if zEDC is used for data compression.
    Note: If the value of software is set, software-based compression services are used. All other values result in the default behavior of attempting to use zEDC for data compression.
  4. Ensure that adequately sized input buffers are available. If the input buffer size falls below the minimum threshold, data compression occurs using zlib software compression and not zEDC. This threshold can be controlled at a system level using the PARMLIB member IQPPRMxx.
  5. Allocate the correct amount of storage for I/O buffers. The zEDC requests generated by zlib use predefined I/O buffer pools. The size of these I/O buffer pools can be set using PARMLIB member IQPPRMxx.
When zlib is statically linked into an application that runs on software or hardware that is not compatible with zEDC, zlib uses the following compression and decompression:
Table 1. Compression and decompression with zlib
Hardware level z/OS level zEDC Express Description
zEC12 (with GA2 level microcode) z/OS V2R1 Active zEDC is used for both data compression and decompression.
zEC12 (with GA2 level microcode) z/OS V2R1 Not Active Requirements are not met for zEDC. When zEDC Express is not available, traditional software zlib is used for compression and decompression.
Pre-zEC12 (with GA2 level microcode) z/OS V2R1 or pre-z/OS V2R1 N/A Requirements are not met for zEDC. When zEDC Express is not available, traditional software zlib is used for compression and decompression.
zEDC error handling:
  • If a System z compression accelerator is unavailable, data compression requests transfer to another System z compression accelerator configured to the same partition. These request transfers are transparent to the application.
  • If all System z compression accelerators are unavailable, an error message is sent to the application.
End of change

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014