HELP: FLAM parameter for write into a new archive TYPE: OBJECT SYNTAX: FLAM(CMPSUITE=GZIP/LZ4/BZIP2/ZSTD,CRYSUITE=V01-A11-FNV/V02-A11-CRC/V03-A21-FNV/V04-A21-CRC/V05-A22-FNV/V06-A22-CRC,MBRMODE=STOP/APPEND/OVERWRITE,RECMODE=SEQUENTIAL/INSERT/UPDATE/KEYED/DELETE/INSWRN/UPDWRN/DELWRN/INSIGN/UPDIGN/DELIGN/DELNOC/DELWNC/DELINC/DELFCL/DELWFC/DELIFC,ENCRYPT/EXPORT.{},MEMBER='str',STATE='str',DEFAULTS(),ROW[()...],NOROW=INFO/WARNING/ERROR,NOCOL=INFO/WARNING/ERROR,NORLBK[=num],REMOVE,ARCCMT/COMMENT='str',MBRCMT='str')
This object defines how the FLAM archive will be indexed, serialized, compressed and protected.
The compression suite (CMPSUITE
) sets the compression algorithm that
is used to compress archive contents. By default, gzip is used. The
compression level (better compression ratio = higher computational/memory
cost) can be selected per row (ROW(DEFAULTS(CMPLEVEL=...))
), pot (see
ROW(POT(CMPLEVEL=...))
) and data type (see DEFAULTS(POTPAR(...)))
) or
in general (see DEFAULTS(CMPLEVEL=...)
). The default level is DYNAMIC,
a compromise between compression ratio and CPU time.
The cipher suite (CRYSUITE
) determines which algorithms and key lengths
are used for encryption, checksums and other cryptographic procedures.
By default, AES256 is used for encryption with CRC32 for checksums to
make use of hardware-acceleration on most platforms. Like the compression
level, the protection type can be configured per pot and data type as well
as globally.
If desired, you can define per column whether and how flags, lengths and data should be compressed or encrypted. Pots can be used to minimize the computing effort and maximize the compression rates and data protection. For example, you should make a pot for everything that is already encrypted so that it is not encrypted again. For incompressible data that may contain sensitive information (e.g. JPG images), that data should be assigned to a pot with compression level COPY and encryption enabled. A third pot could be created for data that should be compressed and encrypted and the last pot could contain all the columns that can be compressed but do not contain any sensitive data, saving the effort of encrypting them.
The member mode (MBRMODE
) can be used to define what happens if the
a member with the same name already exists in the archive (after
input-output name mapping). By default, processing stops with an error.
You can alternatively select to append to or overwrite the existing
archive member.
The record mode (RECMODE
) is used to control which data records are to
be inserted into the archive. If no data is indexed, you can only write
the records sequentially. If columns are indexed with a primary key and a
record is about to be inserted with a primary that already exists in the
archive, this leads to an error. This check is rather expensive, as it
is necessary to check for each record whether it already exists in the
archive. So, if you know that the records are all unique, you can also
use SEQUENTIAL. Alternatively, you can select UPDATE or DELETE, which
stops with an error if a record is not found in the archive. RECMODE=KEYED
combines insert and the update. If the record is found, it is updated
and if not, it is inserted. Various other variations of these basic
modes can be selected here, including wariations that produce warnings
instead of stopping with an error.
The MEMBER
parameter sets the name for the member in the archive. The
INPUT TO OUTPUT NAME MAPPING can be
used.
The STATE
parameter can be used to change the status description of the
data, which should only be used in exceptional cases and if you know what
you are doing.
The NOROW
and NOCOL
selections can be used to control what happens
if row specifications (format) or column definitions are not applied. A
warning (results in completion code 1) is issued by default.
If you process many files at once, it may well be the case that if an
error occurs with a few of these files (e.g. if you have no access
rights), that you may not want processing to stop, which causes the
archive to be rolled back to its previous state. With NORLBK
you
can specify a number of tolerable errors. As long as this limit is not
exceeded, processing continues.
The REMOVE
switch can be used to ensure that all files that could only
be partially written are deleted again. This is recommended if the
NORLBK
parameter is used.
The COMMENT
can be used to add additional information to the archive.
It is displayed if the archive's list of contents is retrieved with the
LIST command.
NUMBER: CMPSUITE=GZIP/LZ4/BZIP2/ZSTD - Select compression suite [GZIP]
GZIP - GZIP compression suite
LZ4 - LZ4 compression suite
BZIP2 - BZIP2 compression suite
ZSTD - ZSTD compression suite
NUMBER: CRYSUITE=V01-A11-FNV/V02-A11-CRC/V03-A21-FNV/V04-A21-CRC/V05-A22-FNV/V06-A22-CRC - Select crypto suite [V06(AES256.AES256.CRC32)]
V01-A11-FNV - DRV/KTV(AES128).ENC/MAC(AES128).FNV32
V02-A11-CRC - DRV/KTV(AES128).ENC/MAC(AES128).CRC32
V03-A21-FNV - DRV/KTV(AES256).ENC/MAC(AES128).FNV32
V04-A21-CRC - DRV/KTV(AES256).ENC/MAC(AES128).CRC32
V05-A22-FNV - DRV/KTV(AES256).ENC/MAC(AES256).FNV32
V06-A22-CRC - DRV/KTV(AES256).ENC/MAC(AES256).CRC32
NUMBER: MBRMODE=STOP/APPEND/OVERWRITE - Error handling if the same member name is used again [STOP]
STOP - Stop processing with an error
APPEND - Add the new data to the existing file or member
OVERWRITE - Overwrite the existing file or member
NUMBER: RECMODE=SEQUENTIAL/INSERT/UPDATE/KEYED/DELETE/INSWRN/UPDWRN/DELWRN/INSIGN/UPDIGN/DELIGN/DELNOC/DELWNC/DELINC/DELFCL/DELWFC/DELIFC - Define record handling for keyed members [SEQuential]
SEQUENTIAL - Sequential processing (no verification of keys (simple and fast load))
INSERT - Only new records are inserted (error if record already exists)
UPDATE - Only existing records are updated (error if record not exist)
KEYED - Insert record if new and update record if exist
DELETE - Delete existing records (error if record not exist)
INSWRN - Only new records are inserted (warning if record already exists)
UPDWRN - Only existing records are updated (warning if record not exist)
DELWRN - Delete existing records (warning if record not exist)
INSIGN - Only new records are inserted (ignore if record already exists)
UPDIGN - Only existing records are updated (ignore if record not exist)
DELIGN - Delete existing records (ignore if record not exist)
DELNOC - Delete existing records but no cleanup (error if record not exist)
DELWNC - Delete existing records but no cleanup (warning if record not exist)
DELINC - Delete existing records but no cleanup (ignore if record not exist)
DELFCL - Delete existing records with forced cleanup (error if record not exist)
DELWFC - Delete existing records with forced cleanup (warning if record not exist)
DELIFC - Delete existing records with forced cleanup (ignore if record not exist)
STRING: MEMBER='str' - Name of member in the FLAM archive [origin]
STRING: STATE='str' - State string with attributes of the member [origin]
NUMBER: NOROW=INFO/WARNING/ERROR - Handling if provided row specification is not used [WARNING]
INFO - Informational
WARNING - Warning
ERROR - Error
NUMBER: NOCOL=INFO/WARNING/ERROR - Handling if provided column in row specification is not used [WARNING]
INFO - Informational
WARNING - Warning
ERROR - Error
NUMBER: NORLBK=num - No rollback as long as this amount of errors is not exceeded [FALSE]
SWITCH: REMOVE - Remove member from archive if an error occurs [FALSE]
STRING: ARCCMT/COMMENT='str' - Archive comment for FLAM archive (static no mapping) [DEFAULT]
STRING: MBRCMT='str' - Member comments in FLAM archive (with input output name mapping)