zEnterprise Data Compression 用 zlib

zlib データ圧縮ライブラリーは、解凍済みデータの整合性検査を含む、メモリー内圧縮/解凍機能を提供します。zEDC では、zlib 圧縮ライブラリーの変更バージョンが使用されます。zEDC が適切な場合は、IBM 提供の zlib 互換 C ライブラリーから、zEDC を使用する一連のラッパー関数が提供されます。zEDC が適切でない場合は、ソフトウェア・ベースの圧縮サービスが使用されます。

zlib ラッパー関数は、以下の基準を使用して、圧縮に zEDC を使用できるかどうかを判定します。
  • zEDC のシステム要件が満たされている。詳しくは、zEnterprise Data Compression の要件 を参照してください。
  • 圧縮ストリームの場合、deflateInit2() に指定されたパラメーターが zEDC でサポートされている。解凍ストリームの場合、inflateInit2() に指定されたすべてのパラメーターがサポートされている。詳しくは、標準 zlib 関数 を参照してください。
  • ハードウェアとの通信時にオーバーヘッド・コストがあるため、データ・ストリームを圧縮または解凍するための最初の呼び出しで、指定された入力を検査して、zEDC を使用できるだけの十分な大きさがあることを確認する。データ・ストリームに十分な大きさがある場合、zEDC が使用されます。データ・ストリームが小さい場合は、zEDC を使用してデータ・ストリームを圧縮するとコストが大きくなる可能性があるため、ソフトウェア・ベースの圧縮サービスが使用されます。注: この検査は、データ・ストリームを圧縮または解凍するための最初の呼び出しでのみ実行されます。
上記のいずれかの基準が満たされていないと、zlib ラッパー関数は、標準 zlib 関数を呼び出して、データ・ストリームをソフトウェアで処理します。
zEDC を圧縮メカニズムとして使用した後 (例えば、データ・ストリームを圧縮または解凍するための最初の呼び出しが完了した後) では、圧縮方式をソフトウェア・ベースの圧縮サービスに変更することはできません。同様に、ソフトウェア・ベースの圧縮サービスを圧縮メカニズムとして使用した場合 (例えば、データ・ストリームを圧縮または解凍するための最初の呼び出しが完了した後) は、圧縮方式を zEDC に変更することはできません。
注: データ・ストリームが圧縮に zEDC の使用し始めた後で、zEDC でサポートされない関数が呼び出された場合、または zEDC ハードウェアが使用不可になった場合は、該当のサポートされない関数からエラー戻りコードが返されます。