|
New Features and Updates for APPXLast Update: 02/19/01
3. APPX Advanced Compression
============================
APPX v3.30 and above supports advanced compression. APPX Advanced
Compression is a separately licensed feature of Across the Boards.
The use of Advanced Compression is largely transparent to APPX applications.
The following needs to be done in order to take advantage of Advanced
Compression:
1. Install compression modules as appropriate for your environment.
2. Update the APPX applications (both PC and mainframe) to select
a compression method to use (see below), and to use APPX v3.30.
3. Optionally alter the applications to make use of the
ppx_disable_compress switch.
The application should ensure that the selected compression method is
available, or the APPX session will be started without compression (APPX
v3.31 will ignore any methods configured that cannot be loaded, APPX v3.30
would fail on the connect if a module was unavailable). If an APPX that
does not support compression (pre-v3.30) tries to connect to an APPX that
does (v3.30+), any requested compression methods/options will be ignored
and the session will proceed as if compression had not been specified.
Note: a limitation of the mainframe v3.30 is that "Return if Busy" mode
is not supported if compression is in effect (the mode will be ignored if
specified). APPX v3.31 provides a new busy mode (PPXNOWT2) that provides
Return if Busy support in all cases. Note that PPXNOWT2 mode does not
support CICS pseudo-conversations, and returns busies in more circumstances
than the old (PPXNOWT) Return if Busy mode does. PPXNOWT is still supported
if compression is not in effect.
(c) Copyright 1995 by cfSOFTWARE, Inc.
Portions licensed under U.S. Patent No. 4,558,302 and foreign counterparts.
Selecting APPX Advanced Compression
-----------------------------------
An APPX application selects Advanced Compression by setting the ppx_compress
and ppx_decompress fields at APPX connect time. Each field consists of four,
two byte, entries, each of which defines a single compression method and
option. The first byte of each pair indicates the compression method, the
second byte, the option. Both the PC and the mainframe application indicate
which compression methods/options are acceptable. Note that the PC and
mainframe see different sides of the conversation, and so the PC's "compress"
selections are matched against the mainframe's "decompress" selections, and
vice-versa. The answering APPX (usually the mainframe), will select the
first matching method/option (the fields are scanned left-to-right).
If the compression method is specified as "0" (zero), a default internal
routine which does no compression is selected. If data transfer happens
almost exclusively in one direction, it may be advantageous to specify
method/option "00" for the opposite direction, in order to reduce storage
requirements.
The compression option may be specified as "*", or both the method and
option may be specified as "**". These will be treated as wild-cards.
For example, if the mainframe specifies "**", it will attempt to use
whichever compression method/option the PC requests. If the mainframe
specifies "A1A2B*", it will allow the PC to select compression
methods/options A1, A2, or any "B" method. If both the PC and the mainframe
specify "*" for a method or option, "0" is assumed.
Some examples:
Mainframe PC Result
--------- -- ------
A1A2B4B3 A3B3B4A1 A1
A*** A3B3B4A1 A3
A*** B3B4 B3
** A3B3B4A1 A3
** A*B*** A0
B* A*B*** B0
** ** 00
In general, "higher" compression options produce better compression, but
with higher system impact (either CPU, or memory, or both).
If the compression option is set to "0", or is negotiated to "0", a default
compression option for the indicated method will be used. The default
compression option for a given method is intended to provide a good balance
between compression and system impact.
Disabling Compression
---------------------
Compression can be controlled on a record-by-record basis. To prevent a
record being sent from being compressed, set ppx_disable_compress to 'Y'.
This can be useful if it is known that some data is about to be sent that
will compress poorly (or even expand).
Available compression modules
-----------------------------
At this time, two compression modules are available: CFXCMPRA, and
CFXCMPRV. CFXCMPRA implements compression method "A", and CFXCMPRV
implements compression method "V".
Compression method A supports four options:
Dictionary Dictionary Size (Bytes)
Option Entries Compress Decompress
------ ---------- -------- ----------
1 4K 25,060 16,384
2* 8K 49,165 32,768
3 16K 99,805 65,536
4 32K 196,615 131,072
For compression method "A", option "2" is the default. The CPU requirements
of compression method "A" are not significantly affected by the selected
option.
Compression method V is limited to the Microsoft Windows PC
environment, and the MVS/TSO mainframe environment.
Option Description
------ --------------------------------------------
0 Standard Compression
1 Optimize for maximum speed
2* Standard Compression
3 Optimize for maximum compression
For compression method "V", option "2" is the default. For
additional information on method V, see "Special Considerations
for method V", later in this document.
Compression Fast Path (Method "Z")
----------------------------------
Compression method "Z" is available in APPX v3.34 or v4.02 or later. This
"compression" method bypasses all compression (including basic compression)
in order to reduce CPU utilization when used with fast links. On fast local
links there may be no justification to improve link utilization at the
expense of mainframe CPU utilization, making method "Z" appropriate.
Method "Z" may be negotiated if both sides specify "Z0" in corresponding
ppx_compress/ppx_decompress fields at APPX Connect time.
Installing Compression Modules
------------------------------
MS-DOS
------
Copy the compression module(s) from the \DOS16 directory to a directory
that the APPX application will search (as specified in ppx_path).
Method Module Name
------ -----------
A CFXCMPRA.MOD
Special Requirements: <none>
Windows (16 bit)
----------------
Copy the compression module(s) from the \WIN16 directory to a directory
that the APPX application will search (as specified in ppx_path).
Method Module Name
------ -----------
A CFXCMPRA.DLL
V CFXCMPRV.DLL
Special Requirements: <none>
OS/2 (16 bit)
-------------
Copy the compression module(s) from the \OS2_16 directory to a directory
that the APPX application will search (as specified in ppx_path).
Method Module Name
------ -----------
A CFXCMPOA.DLL
Special Requirements: <none>
TSO
---
Compression modules are distributed in a single MVS load library
created with IEBCOPY. The following sample JCL illustrates how
to restore this library:
//ATBINST JOB ..........
//* ----- COPY COMPRESSION MODULES FROM TAPE - FILE 1
//STEP1 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SYSUT2 DD DSN=ATB.LOADLIB.LOAD,DISP=SHR
//SYSUT1 DD UNIT=TAPE,VOL=SER=CFX001,
// LABEL=(1,SL),DISP=OLD,
// DSN=CFX.LOAD
//SYSIN DD *
C I=((SYSUT1,R)),O=SYSUT2
Compression module names are of two forms:
CFXCMPRx - for 24-bit operation with standard TSO APPX service module
(CFXAPPXT).
CFXCMPXx - for 31-bit operation under MVS-XA using the reentrant
TSO service module (CFXAPXXT), or the APPC MVS service
module (CFXAPXXA).
In both cases, the lowercase x is replaced by the compression
method (e.g. "A").
If APPX is unable to load the compression module, one of two things
will happen:
1. The application program will be abnormally terminated.
The PC application program will time out waiting for a
response from the mainframe application;
2. For APPX v3.30:
The mainframe APPX will issue a disconnect with a message
to the PC, of the following form:
477: UNABLE TO LOAD COMPRESSION MODULE: CFXCMPRx
For APPX v.3.31+:
The mainframe APPX will discard the selected method,
and try the next matching method until no more methods
are available. Then the APPX session will be run without
compression.
In order to cause the second, less serious action to occur, you must
be running your TSO application program from a CLIST, which includes
the following statement:
ERROR OFF
This allows the application program to continue running when the load
fails.
CICS MVS
--------
Compression modules are distributed in a single MVS load library
created with IEBCOPY. The following sample JCL illustrates how
to restore this library:
//ATBINST JOB ..........
//* ----- COPY COMPRESSION MODULES FROM TAPE - FILE 1
//STEP1 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SYSUT2 DD DSN=ATB.LOADLIB.LOAD,DISP=SHR
//SYSUT1 DD UNIT=TAPE,VOL=SER=CFX001,
// LABEL=(1,SL),DISP=OLD,
// DSN=CFX.LOAD
//SYSIN DD *
C I=((SYSUT1,R)),O=SYSUT2
Compression module names are of two forms:
CFXCMCRx - for 24-bit operation under CICS versions <2.10
CFXCMCXx - for 31-bit operation under CICS 2.10 and above
In both cases, the lowercase x is replaced by the compression
method (e.g. "A").
As with any CICS program, the compression modules must be included in the
CICS PPT, e.g.:
DFHPPT TYPE=ENTRY,PROGRAM=CFXCMCRA
DFHPPT TYPE=ENTRY,PROGRAM=CFXCMCXA
Alternatively, the program definitions may be created using
CICS-supplied transaction CEDA.
If APPX is unable to load the compression module, compression will
not be used for the session.
VM CMS
------
Compression modules are distributed in CMS tape dump format.
To load the tape, the following command is used:
TAPE LOAD
The compression module(s) will be restored to the A-minidisk. From
there, they may be copied to a publicly available disk if that is
desired.
Compression module names are of the following form:
CFXCMPRx TEXT A
where the lowercase x is replaced by
the compression method (e.g. "A").
If APPX is unable to load the compression module, compression will
not be used for the session.
CICS VSE
--------
Compression modules are distributed in VSE/SP LIBR BACKUP format.
This format is usable under both DOS VSE/SP and DOS VSE/ESA.
Use the librarian program (LIBR) to add the ATB compression modules
to your libraries. Sample JCL follows:
// JOB RESTORE ATB COMPRESSION MODULES
// ASSGN SYS006,TAPE
// PAUSE MOUNT DISTRIBUTION TAPE ON SYS006
// MTC REW,SYS006
// EXEC LIBR
RESTORE CFSOFT.DISTATB.*.*:library.sublib
TAPE=SYS006 LIST=YES REPLACE=YES
/*
// MTC RUN,SYS006
/&
As with any CICS program, the compression modules must be included in the
CICS PPT, e.g.:
DFHPPT TYPE=ENTRY,PROGRAM=CFXCMCRA
Alternatively, the program definitions may be created using
CICS-supplied transaction CEDA.
If APPX is unable to load the compression module, compression will
not be used for the session.
DOS VSE
-------
Compression modules are distributed in VSE/SP LIBR BACKUP format.
This format is usable under both DOS VSE/SP and DOS VSE/ESA.
Use the librarian program (LIBR) to add the ATB compression modules
to your libraries. Sample JCL follows:
// JOB RESTORE ATB COMPRESSION MODULES
// ASSGN SYS006,TAPE
// PAUSE MOUNT DISTRIBUTION TAPE ON SYS006
// MTC REW,SYS006
// EXEC LIBR
RESTORE CFSOFT.DISTATB.*.*:library.sublib
TAPE=SYS006 LIST=YES REPLACE=YES
/*
// MTC RUN,SYS006
/&
Special Considerations for Method V
-----------------------------------
Method V employs the data compression libraries of COMM-PRESS, Inc.
Two special installation steps are required if you intend to use this
method:
1) COMM-PRESS supplied Windows DLL "COMMPRSS.DLL" must be copied to
the Windows system directory.
2) Mainframe PDS members CFXCMPRV and CFXCMPXV must be "zapped" with
the correct password to avoid COM-PRESS product expiration. Sample
JCL follows:
// JOB ZAPMODV ..............
//*
//* ZAP COMM-PRESS PASSWORD
//*
//ZAPEM EXEC PGM=AMASPZAP
//SYSLIB DD DSN=your library name,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
NAME modname
VER 03A0 C4C3,F6F3,F9F9,F4F7
REP 03A0 nnnn,nnnn,nnnn,nnnn
//*
where:
modname is CFXCMPRV or CFXCMPXV
nnnn,nnnn,nnnn,nnnn is the COMM-PRESS supplied password
|