why is the cork on the fork?

IBM Domino Compact Options

The “compact” IBM Domino server command received a significant overhaul in version 8.5. To unlock the new features, it was necessary to set the “Debug_Enable_Compact_8_5=1” ini setting.

Compact continues to evolve in IBM Domino 9 and no longer requires the ini setting to unlock new features. However, with version 9, the command no longer accepts the “/?” switch to provide help with the options/switches. Furthermore, IBM Documentation (even for 9.0.1) fails to list many of these and most of the newer options avaialble.

Here are the options as of 8.5.x:
l compact /?
Purpose: Compacts one or more database(s).
Usage: Load COMPACT [path] [options]…
[path]: One database, one folder (recurses), or omitted (all, recurses).
[options]:

-A Archive and delete documents without compacting.

-a Archive and delete documents, then compact database.

-B Recover space and reduce file size (inplace-style).

-b Recover space without reducing file size (inplace-style).

-C Copy-style compaction.

-D Discard view indexes (copy-style).

-daos on Enable ‘Use Domino Attachment and Object Service’ database property. (Use with -C to move current objects into DAOS)

-daos off Disable ‘Use Domino Attachment and Object Service’ database property. (Use with -C to move current objects out of DAOS)

-0 Process NSFDB2 databases only. This will ignore NSF databases and is to be used with other switches.

-* Include *.ntf and *.box when processing a directory

-# nn Execute up to nn compactions in parallel using different threads.

-ODS Perform a copy-style compact only if the current ODS is less than desired default ODS.

A collection of Other Options and related information posted since 9.x.

-c -nifnsf on|off When set as on, stores view indexes separately from the NSF file to improve database performance. View indexes are moved to the location defined by the NIFBasePath setting in the NOTES.INI file. When set as off, moves views back into the database NSF file.

-REPLICA Creates a new replica in the background while compacting. The new replica is automatically renamed, and the source application remains accessible except during actual renaming and a final resync. Also applies any of the three optional parameters specified in this table. If the database is open or in use by local accessors <sic> at the time of the rename/resync, the rename/resync is deferred until the next time the database is opened.

Note that “Thibaud Maes” reported the following in the Knowledge Center in approximately September 2017:
One caveat regarding the -REPLICA option: It internally reorganizes the IDs in the new replica; thus, does not maintain NoteIDs (So compact -Replica will change original NoteID which Full Text Index is based on. So, full text index should be rebuilt after database running “compact – replica”, ex: have to use updall -X.
Otherwise, search result will be incorrect and list the new docs which occupying original NoteID.

-IDS_FULL Perform replication-style compaction only if a specified nn percentage of IDs in application has been reached.
Example: -IDS FULL 80 creates replica only after 80% of space for IDs in original application is full.

-REN_WAIT When performing replication-style compaction, attempts for nn minutes to rename the replica before the compact operation defers the rename until a restart or reopen of the database.
Example: -REN_WAIT 10 allows 10 minutes for compact process to complete replication and synchronization to attempt renaming.

-RESTART When performing replication-style compaction, if automatic renaming of replica does not succeed due to other accessors to the database, restarts the server and completes the renaming of the replica after server startup.

-upgrade Upgrade databases created with older DB classes to the most recent class.

However, I haven’t had any luck running compact with -upgrade. To test, I submitted the following:

load compact -e -upgrade
The 9.0.1FP8 server interpreted the command as “Database compactor: Effective arguments: -C -ODS -Y
It also failed to find over 1000 ODS 43:0 (ODS6) databases while the CREATE_R9_DATABASES=1 is set, saying, “0 databases had an older NSF ODS version. 0 of those databases were successfully upgraded to a later NSF ODS.”

An example of one of the problem applications is creation-class “65296.”