|
If you are using PostgreSQL as your persistence provider, the offline queue is persisted to support failover for ThingWorx high availability.
|
|
A forward slash (/) is the recommended path delimiter for file repositories.
|
File Transfer Settings
|
Data Type
|
Default
|
Notes
|
||
---|---|---|---|---|---|
Min Threads Allocated to File Transfer Pool
|
NUMBER
|
10
|
Defines the core pool size for ThreadPoolExecutor. This thread pool is used to coordinate the platform controlled file transfer logic.
|
||
Max Threads Allocated to File Transfer Pool
|
NUMBER
|
10
|
Defines the maximum thread pool size for ThreadPoolExecutor.
Asynchronous file transfers can be lost if ThingWorx goes down. For example, suppose this setting has the default value of 10 and 50 long-running file transfers are submitted. If ThingWorx goes down, 40 files will be lost.
|
||
Max Queue Entries Before Adding New Working Thread
|
NUMBER
|
100
|
Defines the upper limit for the number of entries in the queue used in ThreadPoolExecutor.
This restricts the number of active transfers allowed at a time.
|
||
Idle Thread Timeout (sec)
|
NUMBER
|
600000
|
Defines how long to keep idle threads alive in the ThreadPoolExecutor. The pool will terminate threads and move back to the core pools size after the specified time.
|
||
FileTransfer Idle Timeout (sec)
|
NUMBER
|
30
|
Between every step during the file transfer process (checksum, ReadFromBinaryFile, WriteToBinaryFile, validation) idle timeout is checked. If the step is taking longer than the defined timeout time, the transfer is cancelled.
|
||
Max FileTransfer block size (bytes)
|
NUMBER
|
128000
|
Defines the number of bytes requested for ReadFromBinaryFile and WriteToBinaryFile operations. This represents the chunk size for each write.
This variable imposes a maximum block size during a file transfer at the system level.
The EMS configuration still takes precedence. However, if the EMS is configured with buffer_size larger than what is specified in this variable, then this variable will cap this block size. If larger block sizes (128KB) are configured through the EMS, this value must be increased. The maximum compile level is 1MB.
|
||
Max FileTransfer size (bytes)
|
NUMBER
|
100000000
|
Defines the maximum number of bytes that a Copy operation supports.
If the source file is larger than this value, the transfer fails and an error message is displayed.
|
||
Max File Transfers Allowed in Offline Queue
|
NUMBER
|
50000
|
Defines the maximum number of offline queued file transfers allowed in the system.
|
||
Max File Transfers Allowed Per Thing in Offline Queue
|
NUMBER
|
10
|
Defines the maximum number of offline queued file transfers allowed per thing.
|
||
Time to Live (sec) of a Queueable File Transfer
|
NUMBER
|
86400
|
Defines the maximum time that a queued file transfer can stay in the offline queue.
A file transfer is be removed from the offline queue after this specified amount of time.
|
||
Total Max Edge-Controlled File Transfers Allowed
|
NUMBER
|
500
|
Defines the maximum active edge-controlled file transfers that is allowed in the system.
The total concurrent edge-controlled transfers across the platform. This is separate from the maximum allowed always-on transfers, which are controlled by the Max Queue Entries Before Adding New Working Thread setting.
The upper limit of this property is controlled by MaxConcurrentFileTransfersEdgeCtrl in platform-settings.json file. The default value is 1000.
|
||
Total Max Edge-Controlled File Transfers Allowed Per Thing
|
NUMBER
|
2
|
Defines the maximum number of concurrent transfers allowed to or from an edge-controlled Thing. For example, a value of 2 means that one edge-controlled Thing can have only two active transfers (upload or download) at a given time. Subsequent requests to dequeue a file transfer egress are rejected until there is sufficient capacity.
|
||
Idle Timeout for Edge-Controlled File Transfers (sec)
|
NUMBER
|
600
|
Defines the maximum time an active job can remain active without being acted on (for example, by a data transfer or a job state update). The range is 1–3600 seconds. This is similar to the idle timeout for always-on transfer jobs, but usually it takes longer to account for the ping cycle of polling devices.
|
||
File Transfer Cleanup Frequency (sec)
|
NUMBER
|
10
|
Defines the frequency of the cleanup task for evaluating the file transfer operations.
The cleanup task removes stale and expired jobs from the active jobs table. This action releases the file transfer slots, which will help other queued operations. The recommended minimum and maximum values must be between 1 second and 60 seconds, respectively.
The value for this setting must be set judicially. The default value, 10 sec, is expected to work for most of the use cases.
• A very small value will start the background task too frequently. It will get all currently active file transfer jobs from the cache and evaluate for expiration. This will also add unnecessarily computation and load on caches.
• A very high value will start this task less frequently and there could be stuck file transfers holding the valid reservation and possibly not releasing the reservation in timely manner. This could possibly impact overall file transfer operations if there are many stuck operations like unstable network, device not connecting, and so on.
|