文件传输子系统
文件传输子系统可提供管理远程事物、文件信息库以及联合服务器之间的文件传输所需的方法。
除非特殊说明,否则在 Edge 客户端和 ThingWorx Platform 之间的文件传输需要客户端从始至终均处于连接状态。可以在 Edge 客户端断开连接期间启动 ThingWorx Platform 文件传输,方法是通过指示 ThingWorx Platform 使用可排队功能执行复制。可排队文件传输将被置于离线队列中,并在代理连接后开始执行。
* 
如果您要使用 PostgreSQL 作为持久化方案提供工具,则离线队列会持续为故障转移提供支持,以实现 ThingWorx 高可用性。
启动传输后,不能断开 Edge 客户端连接,否则传输会失败。如果在“可排队文件传输存在时间 (秒)”配置设置值之前还未开始传输,则排队中的文件传输将会过期。
通常,文件传输由 ThingWorx Platform 控制。但是,如果您想实现 Edge 控制文件传输,可通过将 EdgeControlled 事物形态添加到参与了文件传输的远程事物中进行激活。要实现 Edge 控制文件传输,必须将源或目标设置为 ThingWorx Platform 上的 FileRepository 事物。在 Edge 控制文件传输中,传输是由 Edge 客户端控制的。Edge 客户端会调用 Touch 服务以在传输过程中更新文件传输时间戳。如果 Edge 客户端未更新时间戳,则 ThingWorx Platform 会令文件传输超时。Edge 客户端会指示传输成功或已完成但有错误。
您可以通过在启动文件传输时提供 metadata 参数来嵌入上下文。此字段为 JSON 对象,可以包含任意 JSON。某些基本功能将导致 ThingWorx Platform 使用此字段向 Edge 客户端提供附加说明。对于这些传输,除了 ThingWorx Platform 之外,任何其他过程都不得更改 metadata 字段中的信息。
联合服务器之间的文件传输
要在联合服务器之间传输文件,请执行以下操作:
1. 在 ThingWorx ServerA 和 ThingWorx ServerB 之间配置 联合。有关详细信息,请参阅 配置联合
2. 使用 FileRepository 事物模板将 ThingA 添加到 ServerA
a. 选中 ThingA“已发布”复选框,以便其他 ThingWorx 服务器可对其进行访问。
3. 使用 RemoteThingWithFileTransfer 事物模板将 RemoteThingA 添加到 ServerB
a. “标识符”字段中,输入 ThingA@ServerA
4. 将您的文件 (例如,test.txt) 复制到 ServerBSystemRepository 根文件夹。
5. ServerB 上打开 FileTransferSubsystem,然后使用以下参数值执行 copy 服务:
sourceRepo: SystemRepository
sourcePath: /
sourceFile:test.txt
targetRepo:RemoteThingA
targetPath: /
targetFile:test.txt
请勿更改其他参数的默认值。
6. 转至 ServerA 上的 /ThingworxStorage/repository/ThingA 文件夹,并确认此处已成功复制 test.txt 文件。
配置
文件传输设置
数据类型
默认
注解
分配到文件传输池的最小线程数
NUMBER
10
分配到文件传输池的最大线程数
NUMBER
10
如果 ThingWorx 出现故障,异步文件传输可能会丢失。例如,此设置默认值为 10,且提交了 50 个长期执行的文件传输。如果 ThingWorx 出现故障,其中 40 个都将丢失。
添加新工作线程之前的队列条目最大数目
NUMBER
100
一次允许的启用传输最大值。
空闲线程超时 (秒)
NUMBER
600000
文件传输空闲超时 (秒)
NUMBER
30
文件传输块大小上限 (字节)
NUMBER
128000
此变量规定了系统级别文件传输过程中块大小的上限。EMS 配置仍具有优先权,但是,如果 EMS 配置的 buffer_size 比此变量中配置的大,则此变量会超过此块大小。如果通过 EMS 配置了较大的块大小 (128 KB),则必须增加此值。最大编译级别是 1 MB。
文件传输大小上限 (字节)
NUMBER
100000000
如果源文件大于该值,则传输失败并且会显示错误消息。
离线队列允许的文件传输最大数目
NUMBER
50000
离线队列中每个事物允许的文件传输最大数目
NUMBER
10
可排队文件传输存在时间 (秒)
NUMBER
86400
指定时间过后,文件传输将从离线队列中移除。
整个平台的 Edge 控制文件传输最大数目
NUMBER
500
整个平台中并发 Edge 控制传输的总数。传输范围是 1-1000。这与最大允许 always-on 传输有所不同 (由“添加新工作线程之前的队列条目最大数目”设置控制)。
单个事物的 Edge 控制文件传输最大数目
NUMBER
2
允许向 Edge 控制事物或来自 Edge 控制事物的最大并发传输数量。传输范围是 1-100。例如,值为 2,意味着一个 Edge 控制事物在给定时间内仅能有两个启用的传输 (上载或下载)。在没有容量之前,会拒绝所有对出队文件传输出口的后续请求。
Edge 控制文件传输空闲超时 (秒)
NUMBER
600
启用的作业在未成为操作对象的情况下可以维持启用状态的最长时间 (例如,通过数据传输或作业状态更新)。范围是 1-3600 秒。这与 always-on 传输作业的空闲超时很相似,但通常占轮询设备 ping 循环的时间更长。