Komprimierung

Konfigurationsoptionen auf einem bestimmten Knoten und die Option dsmSendObj objCompressed legen fest, ob IBM® Storage Protect das Objekt während eines Sendevorgangs komprimiert. Außerdem werden Objekte mit einer Größenschätzung (sizeEstimate), die DSM_MIN_COMPRESS_SIZE unterschreitet, nie komprimiert.

Wenn das Objekt bereits komprimiert ist (objCompressed=bTrue), wird es nicht noch einmal komprimiert. Wenn es nicht komprimiert ist, entscheidet IBM Storage Protect, ob das Objekt komprimiert wird, basierend auf den Werten der Komprimierungsoption, die vom Administrator festgelegt wurde und die in den API-Konfigurationsquellen eingestellt ist.

Der Administrator kann die Komprimierungsschwellenwerte auf dem Server mithilfe des Befehls zum Registrieren des Knotens ändern (Komprimierung=Ja, Nein oder Client-bestimmt). Bei Angabe von Vom Client bestimmt wird das Komprimierungsverhalten durch den Wert der Komprimierungsoption in den Konfigurationsquellen bestimmt.

Bei einigen Datentypen, z. B. bereits komprimierte Daten, kann die Datengröße sogar zunehmen, wenn sie mit dem Komprimierungsalgorithmus verarbeitet werden. In diesem Fall wird der Rückkehrcode DSM_RC_COMPRESS_GREW generiert. Wenn Sie feststellen, dass dieser Fall eintreten könnte, Sie die Sendeoperation aber dennoch fortsetzen wollen, teilen Sie den Endbenutzern mit, folgende Option in ihrer Optionsdatei anzugeben:
  COMPRESSAlways Yes

Wenn Sie während der Ausführung der Funktion dsmSendData bei aktivierter Komprimierung den Rückkehrcode DSM_RC_COMPRESS_GREW empfangen, möchten Sie eventuell von vorn beginnen und das Objekt ohne Komprimierung erneut senden. Um dies zu erzwingen, setzen Sie die dsmSendObj ObjAttr.objCompressed auf bTrue.

Informationen zum tatsächlichen Komprimierungsverhalten während einer dsmSendObj-Operation werden durch den Aufruf dsmEndSendObjEx zurückgegeben. objCompressed gibt an, ob die Komprimierung durchgeführt wurde. totalBytesSent ist die Anzahl der von der Anwendung gesendeten Byte. totalCompressedSize ist die Anzahl Byte nach der Komprimierung. Der Aufruf dsmEndSendObjEx verfügt außerdem über ein Feld totalLFBytesSent, das die Gesamtanzahl der LAN-unabhängig gesendeten Byte enthält.

Achtung: Wenn Ihre Anwendung eine Zurückschreibung oder einen Abruf von Teilobjektdaten plant, können Sie die Daten nicht komprimieren, während Sie sie senden. Um dies zu erzwingen, setzen Sie die dsmSendObj ObjAttr.objCompressed auf bTrue.