FLAM

Synopsis

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')

Description

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.

Arguments