System Properties

The below table defines system property variables for FileCatalyst Server.

System Property Product Default value Known values

Description

filecatalyst.embedded.webserver.enable.cache All clients true true,false

System property that determines whether or not browsers should be caching files that are supplied by the internal web server.

In networks with high amounts of latency, enabling this property will reduce the amount of time that it takes for web browsers to load the web-based resources after they have been successfully loaded for the first time.

java.io.tmpdir All blank File system path to a temp directory. The java.io.tmpdir system property indicates the temporary directory used by the Java Virtual Machine (JVM) to create and store temporary files. The default value is typically "/tmp", or "/var/tmp" on Unix-like platforms. On Microsoft Windows systems the java.io.tmpdir property is typically "C:\WINNT\TEMP". When creating zip archives, the FileCatalyst Server creates the archives in the java.io.tmpdir. If this is not desirable, the java.io.tmpdir can be set to a more suitable location.
lmza_dict HotFolder, Server 16 0-28

2n value for dictionary size (16 represents 64K dictionary)

7-ZIP library specifies the following in their documentation: -d{N}: set dictionary - [0,28], default: 23 (8MB)

Default value was lowered to allow faster throughput per core and keep RAM requirements reasonable.

lmza_fb HotFolder, Server 8 Integer, 5-273

Change the value of LMZA fast bytes. 7-ZIP library specifies the following in their documentation: -fb{N}: set number of fast bytes - [5, 273], default: 128

Default value was lowered to allow faster throughput per core and keep RAM requirements reasonable.

lmza_mf HotFolder, Server 1 0 (EMatchFinderTypeBT2), 1 (EMatchFinderTypeBT4)

Set Match Finder. Default: bt4 7-ZIP library specifies the following in their documentation: -mf{MF_ID}: set Match Finder. Default: bt4.

Default value was lowered to allow faster throughput per core and keep RAM requirements reasonable.

tc_masquerade_local_ssl.address Server false true, false Server switch to enable masquerade only if local, and only if SSL.
unlimited.core.filesystem.msab.readAheadBlocks Server 10 positive integer value When using the Azure Blob EFS provider, this value controls the maximum amount of data that will be pre-cached during sequential reads.
unlimited.core.filesystem.jclouds.readAheadBlocks Server 10 positive integer value When using the Dropbox, Google Cloud Storage, or Backblaze B2 EFS provider, this value controls maximum amount of data that will be pre-cached during sequential reads.
unlimited.core.filesystem.s3.maxReadAheadSize Server 20480000 positive integer value (bytes) When using the Amazon S3 EFS provider, this value controls the maximum amount of data that will be pre-cached during sequential reads.
unlimited.core.filesystem.s3.readAheadBlocks Server 10 positive integer value When using the Amazon S3 EFS provider, this value controls the number of blocks that will be pre-cached during sequential reads.
unlimited.core.filesystem.s3.usehttp Server false true, false When using the Amazon S3 EFS provider, setting this property to true will force the use of HTTP instead of the default HTTPS.
unlimited.core.filesystem.swift3.maxReadAheadSize Server 20480000 positive integer value (bytes) When using the Openstack Swift3 or Wasabi EFS providers, this value controls the maximum amount of data that will be pre-cached during sequential reads.
unlimited.core.filesystem.swift3.readAheadBlocks Server 10 positive integer value When using the Openstack Swift3 or Wasabi EFS providers, this value controls the number of blocks that will be pre-cached during sequential reads.
unlimited.core.filesystem.swift3.usehttp Server false true, false When using the OpenStack Swift3 EFS provider, setting this property to true will force the use of HTTP instead of the default HTTPS.
unlimited.core.io.ftptransfer.receive.bufsize HotFolder, Server 40960 Any positive integer value Use this value to control the size if the receive buffer (in bytes) for FTP transfers. This value also controls the size of storage write operations. Increasing this value may increase write performance, particularly when writing against object storage. This value should be kept in sync with the "unlimited.core.io.ftptransfer.transmit.bufsize" value on the transmit side of the FTP transfer.
unlimited.core.io.ftptransfer.transmit.bufsize HotFolder, Server 40960 Any positive integer value Use this value to control the size if the transmit buffer (in bytes) for FTP transfers. This value also controls the size of storage read operations. Increasing this value may increase read performance, particularly when reading object storage. This value should be kept in sync with the "unlimited.core.io.ftptransfer.receive.bufsize" value on the receive side of the FTP transfer.
unlimited.core.util.MD5.MAX_BUFFER_SIZE Server 4096000 Any positive integer value Use this value to control the size if the MD5 read buffer. A larger buffer may increase the speed of MD5 calculations, in particular when the file is located on a cloud storage backed EFS.
unlimited.fc.allowRestrictedCharacters All clients false true,false System property that allows filenames/paths to use characters restricted on windows. Due to the fact you can never really know what OS is managing mounted network storage, we skip (and log the skip) file paths that would fail in windows.
unlimited.fc.blockBufferMultiplier Server 2 Any positive integer value Used in combination with unlimited.fc.blocksWrittenOutOfOrder. It controls the amount of block buffering. The amount of blocks buffered will be number of sender threads X this multiplier.
unlimited.fc.blocksWrittenOutOfOrder Server true true, false

Use this value to control how blocks are written to disk. If set to False, blocks will only be written in sequential order.

Warning: blocksWrittenOutOfOrder is considered a Labs feature as changing this value may have unexpected impact on other features. For example, setting this value to False will break congestion control.

unlimited.fc.database.maxActiveConnections Server, Central 8 Any non-zero integer value (negative or positive) Numerical value used to set the max number of active connections the internal SQL database can have. If no value is supplied then the default active connection amount of eight connections will be used. If a negative value is provided, the database will have no limit for active connections.
unlimited.fc.database.maxConnectionWaitTimeMillis Server, Central -1 Any non-zero long value (negative or positive) Numerical value used to set the amount of time that an idle database connection will wait for until it is exhausted. If no value is supplied then the default timeout value of -1 will be used. If a negative value is provided, then the database will never timeout an idle connection.
unlimited.fc.database.maxIdleConnections Server, Central 8 Any non-zero integer value (negative or positive) Numerical value used to set the max number of idle connections the internal SQL database can have. If no value is supplied then the default idle connection amount of eight connections will be used. If a negative value is provided, the database will have no limit for active connections.
unlimited.fc.delete_filesonly_after_transfer HotFolder false true, false When the HotFolder task uses the feature delete source files after transfer, it also normally removes the directory structure as well. This flag tells the HotFolder to maintain the source directory tree.
unlimited.fc.deployment.security.enforcement.strict All clients false true, false Strict SSL. This feature blocks SSL connections to the FileCatalyst server from being established if the server certificate is not trusted by your client. This feature is only applicable when SSL is enabled. When this is set to true on your client, the SSL certificate configured on the server must be trusted by your client. Your client must be stopped and restarted for this property to take effect.
unlimited.fc.deployment.security.enforcement.truststore All clients <not set> Path to truststore file Strict SSL - additional option. This setting is optional and only applicable when strict SSL is enabled. If you choose to provide a custom truststore file to assert the trust of the certificate you have configured in the server, you can specify the path to your truststore file with this property. If not set, the default truststore file provided by the your Java Runtime Environment is used. Your client must be stopped and restarted for this property to take effect.
unlimited.fc.diagnostics.captureHeapOnShutdown All false true, false This is an optional value that will generate a diagnostic when the application is shut down.
unlimited.fc.diagnostics.logSystemStats Server false true, false This will turn on system stats logging, logging cpu and memory useage on a one minute schedule, useful for troubleshooting.
unlimited.fc.diagnostics.maxOptionalFileSize All clients 200 Max size of logs pulled into diagnostics file in MB This is an optional value that can change the default maximum size of files pulled into the diagnostics zip file.
unlimited.fc.diagnostics.maxOptionalFileAge All clients 86400000 Max age of the last modified stamp on the file This is an optional value that can change the default maximum age of files pulled into the diagnostics zip file.
unlimited.fc.direct.disk_backed HotFolder, Server false true, false When performing transfers of very large file sets, the data must be loaded into memory. A 4GB heap can handle roughly 3 million files. In cases where increasing memory is not an option, setting this option to true will move the data structures to disk to save memory. In this case even a small heap is able to handled very large numbers of files. This will incur a performance hit because values must be retrieved from disk instead of memory.
unlimited.fc.direct.forceClientSideFilter HotFolder false true, false Isolated case where server-side filtering (downloads) was not working for customer. This switch brings back older behaviour of Server returning entire remote file list and forces client to then filter through the files it needs.
unlimited.fc.direct.httpUsePortsOutsideRange Server false true, false FileCatalyst HTTP transfers may use up TCP ports in the server port range quickly, leaving the server starved for ports, and preventing new transfers from taking place until the ports are released by the OS (up to 240 seconds on Windows). By setting this property to true, when connections to the server are via the HTTP servlet running inside the server, it will use ports outside the port range.
unlimited.fc.direct.udp_receive_timeout HotFolder, Server 60 integer value 60 or larger in seconds By default, the application will wait 60 seconds waiting for packets to be received before declaring that packets are being blocked by a firewall or network has dropped. This values allows someone to increase it beyond 60 seconds. Values below the default 60 seconds are discarded.
unlimited.fc.direct.useCreateTimeForFilter HotFolder, Server false true, false

This feature works with the "Transfer files older/newer than" feature on the HotFolder task "File Set" tab. When this feature is enabled, the filter will use the creation time rather than the modified time when comparing and deciding if a file should be transferred.

If you are doing downloads, this property needs to be added to the Server (since filtering happens server side when it is getting the list of files to download). For uploads it needs to be added to the HotFolder.

unlimited.fc.direct_mem.disabled All false true, false

Forces application to create regular byte buffers instead of direct memory byte buffers. Performance may degrade when this is used, but is helpful when constrained by platform or memory limitations.

Java8 API description: A byte buffer is either direct or non-direct. Given a direct byte buffer, the Java virtual machine will make a best effort to perform native I/O operations directly upon it. That is, it will attempt to avoid copying the buffer's content to (or from) an intermediate buffer before (or after) each invocation of one of the underlying operating system's native I/O operations.

unlimited.fc.direct_tcp_keepalive HotFolder Varies on JVM true, false

Triggers the Java Socket SO_KEEPALIVE value for the client control channel.

Java8 API description: When the keepalive option is set for a TCP socket and no data has been exchanged across the socket in either direction for 2 hours (NOTE: the actual value is implementation dependent), TCP automatically sends a keepalive probe to the peer. This probe is a TCP segment to which the peer must respond. One of three responses is expected: 1. The peer responds with the expected ACK. The application is not notified (since everything is OK). TCP will send another probe following another 2 hours of inactivity. 2. The peer responds with an RST, which tells the local TCP that the peer host has crashed and rebooted. The socket is closed. 3. There is no response from the peer. The socket is closed. The purpose of this option is to detect if the peer host crashes. Valid only for TCP socket: SocketImpl

unlimited.fc.disableGlobalByteBufferPool Server, HotFolder false true, false Disables use of a global byte buffer pool in the application.
unlimited.fc.disableMD5OnTheFly HotFolder, Server false true, false By default, during UDP transfers, FileCatalyst will verify each block using MD5. Value needs to be set in the product doing the transmitting (ie: Server for downloads, HotFolder for uploads). To disable this option set this property to true and restart the product.
unlimited.fc.doFullMD5WhenReconnected HotFolder false true, false If set to true, when doing a progressive transfer, if the connection is lost, upon reconnection the entire destination file will be verified using MD5 before attempting to append.
unlimited.fc.doMD5onProgressiveAppend HotFolder false true, false If set to true, when doing a progressive transfer, for each append the previous block will be verified using MD5 to ensure integrity. If set to false, this check is only performed if the connection was lost.
unlimited.fc.enable_delete_temp_file_thread Server true true, false

FileCatalyst Server will periodically scan user home directories for temporary files and clean up any that are no longer needed. Setting this property to false will disable this feature. This includes files with the following extensions: .fctmp, .fczip, .fcsigs, and .fcdeltas.

Note: User home directories that are backed by EFS storage are not scanned for performance reasons.

unlimited.fc.fastio.disable_attribute_cache HotFolder, Server false true, false FileCatalyst caches recently accessed file attributes (size, modification time, etc) to speed up file system performance. Disabling this value may slow down directory listings on larger structures, but will ensure that we hit the native file system directly rather then rely on cached metadata. This setting may be toggled if the HotFolder is not picking up file changes fast enough for frequently executed tasks (less than 30 minutes).
unlimited.fc.fastio.max_cache_age HotFolder, Server 120000 integer, age of cache in ms FileCatalyst caches recently accessed file attributes (size, modification time, etc) to speed up file system performance. This value determines the length of time the cached value is stored before expiring it. The default value of 2 minutes (120000 ms).
unlimited.fc.follow_symlinks Server false true, false If this value is set to true, the server will follow symbolic links instead of ignoring them. This does not prevent access to files outside of the users home directory and files may end up being pulled from outside of the user's sandbox. This was previously called unlimited.fc.allow_symlink_download and this label is backwards compatible.
unlimited.fc.force.ownership_throw_on_error Server, HotFolder, TransferAgent, Command Line true true, false If this value is set to true, the force file ownership feature will cause all failed force file ownership operations to mark the transfer as a failure. If the value is set to false, then failed force file ownership operations will be logged, but the file will continue to transfer as normal. When the transfer completes, the destination file will have the same user ownership of the FileCatalyst application.
unlimited.fc.globalMD5RateLimit 0 Integer value for rate in Kbps, for example, 10000 When set, all MD5 checks will be limited in speed to the specified rate. Default is 0 (no limit).  
unlimited.fc.hideWelcomeMessageVersionString Server false true, false If set to true, FileCatalyst Server will not return a version string in its welcome message. Instead the version string is returned as part of the reply to the SYST command. Note that if this option is enabled, only FileCatalyst clients v3.6 and higher will be able to connect.
unlimited.fc.idleBandwidthShareRatio HotFolder 4 1-99 Value indicates 1/n bandwidth that idle clients will be given compared to active clients. Setting to a lower value (for example, 1/20) may slow down transfers which toggle between states (moving from idle to active will not receive any new bandwidth until the next bandwidth reallocation broadcast every second). Should only be used to fine tune for optimal performance.
unlimited.fc.iptos_tcp HotFolder, Server 0 An integer value between 0 and 255 inclusive Sets the DSCP traffic class or type-of-service octet in the IP header for packets sent using TCP sockets in FileCatalyst. As the underlying network implementation may ignore this value, it should only be considered a hint to the OS.
unlimited.fc.iptos_udp HotFolder, Server 0 An integer value between 0 and 255 inclusive Sets the DSCP traffic class or type-of-service octet in the IP header for packets sent using UDP sockets in FileCatalyst. As the underlying network implementation may ignore this value, it should only be considered a hint to the OS.
unlimited.fc.log_file_listing_growth All 20000 Integer value Used by application for logging progress of large sorts of data items. By default, the application will output logs every 20000 items during filtering or sorting of larger directory structure. This value may be tuned up or down as needed.
unlimited.fc.maintain_uid_gid Server, HotFolder, CommandLine and Transfer Agent false true, false When set, use UID/GID rather than user name/group name. This will require the property to be set on the client side for uploads, and the server side for downloads. It is recommended to set the property on both sides to make it work for both upload and download.
unlimited.fc.no_so_linger HotFolder, Server false true, false

Force to not use SO_LINGER property on the socket. Setting to true will remove the SO_LINGER.

Java8 API description

unlimited.fc.output_timestamp All clients false true, false Run-time flag for logging statistic measurements in CLI. Timestamp will reflect transfer time and remove setup time, and will spit out to System.out string value containing transfer time in seconds.
unlimited.fc.packetlossThreshold HotFolder, Server 2 Integer, 2-10000 Advanced setting for congestion control. Indicates how many packets may be skipped (gotten out of sequence) before the congestion control considers it a packet loss event.
unlimited.fc.postURL.encodeAllPathsParameter HotFolder, TransferAgent, Server false true, false A system property that allows the FileCatalyst application to URL encode the "allFiles" parameter that is sent to web applications when performing HTTP based Post URL operations. If the value is set to false, the "allFiles" parameter will be non-encoded and will contain the raw text of all files that were transferred. If the value is set to true, each file in the "allFiles" parameter will be URL encoded in the same manner as the remote paths and local paths parameters.
unlimited.fc.preallocation HotFolder, Server false true, false FileCatalyst does not pre-allocate files to their full size when transferring. It relies on the underlying file system to optimize file write operations. If you wish to pre-allocation the entire file, set this value to true.
unlimited.fc.progressiveDelayBeforeAppending HotFolder 0 Delay value, in seconds When performing a progressive transfer, if this value is set, after each progressive append the transfer will delay X seconds to allow more growth before continuing with another append.
unlimited.fc.showHiddenFiles HotFolder, Server, Transfer Agent,Express false true, false FileCatalyst has the ability to toggle hidden files as a system property so that customers can modify behaviour based on their needs. By default, value is set to false (we hide hidden files).
unlimited.fc.udpbuffersize HotFolder, Server 32768000 (default 8388608 if AIX detected) Integer value, in bytes

Sets the UDP socket buffer for sender/receiver, in bytes.

Java8 API description ReceiveBufferSize

Java8 API description SendBufferSize

value is normally overridden by operating system settings to be smaller. IBM JVM on AIX only allows buffer sizes of 1MB, 4MB, and 8MB. It is important to match these up with values on the OS level. See support knowledge base article for details.

unlimited.fc.use.fast.md5 Server, HotFolder, Central, TransferAgent true true, false When attempting to verify the integrity of a given transfer, an MD5 checksum is calculated for both the source and destination files. If this property is enabled when the MD5 is generated, the application will use an MD5 implementation that is usually much faster than standard Java-based implementations. If this property is disabled when the MD5 is created, then a slower MD5 generation algorithm will be used to generate the MD5 checksums.
unlimited.fc.verifySizeAfterTransfer HotFolder false true, false If set to true, upon completion of a transfer, the size of the source and destination file will be compared. The transfer will fail if the size does not match.
unlimited.fc.waitForSourceFileToBeStatic HotFolder 0 Integer, time value in seconds This value if set, will not transfer a file unless it has been static for up to X seconds. Must also set "unlimited.fc.waitForSourceFileToBeStaticFilter" for this feature to work.
unlimited.fc.waitForSourceFileToBeStaticFilter HotFolder blank String value of file filter, for example, *.mxf When set, will apply the "unlimited.fc.waitForSourceFileToBeStatic" only to files that match the specified include filter. This is GLOBAL, meaning it affects all tasks. Default is blank. If the Hotfolders "Wait for file growth to cease" feature is being used in a task, using the same file filters in this feature would cause the matched files to wait the sum of both configured delays.