檔案傳輸子系統
檔案傳輸子系統提供在「遠端物件」、檔案存放庫和聯合伺服器之間管理檔案傳輸所需的方法。
除非指定,否則 Edge 用戶端與 ThingWorx Platform 之間的檔案傳輸需要從開始到結束全程與用戶端連線。使用可佇列功能指示 ThingWorx Platform 執行複製動作即可使 Edge 用戶端斷線,進而可啟動 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 用戶端提供其他指示。進行這些傳輸操作時,metadata 欄位中的資訊不應由 ThingWorx Platform 以外的任何處理流程所修改。
聯合伺服器之間的檔案傳輸
欲在聯合伺服器之間傳輸檔案,執行下列操作:
* 
建議使用斜線 (/) 作為檔案存放庫的路徑分隔符號。
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 服務:
sourceRepoSystemRepository
sourcePath: /
sourceFile: test.txt
targetRepo: RemoteThingA
targetPath: /
targetFile: test.txt
請勿變更其他參數的預設值。
6. 轉至 ServerA 上的 /ThingworxStorage/repository/ThingA 資料夾,並核對是否在此成功複製 test.txt 檔案。
組態
檔案傳輸設定
資料類型
預設
註記
分配到檔案轉換集區的最小執行緒
NUMBER
10
定義 ThreadPoolExecutor 的核心集區大小。此執行緒集區用於協調平台控制的檔案傳輸邏輯。
分配到檔案轉換集區的最大執行緒
NUMBER
10
定義 ThreadPoolExecutor 的最大執行緒集區大小。
如果 ThingWorx 離線,非同步檔案傳輸可能會遺失。例如,假設此設定的預設值為 10,卻提交了 50 個長執行時間的檔案傳輸作業。如果 ThingWorx 離線,則將遺失 40 個檔案。
新增新工作執行緒前最大佇列項目
NUMBER
100
定義 ThreadPoolExecutor 中所用佇列內項目數的上限。
這會限制一次所允許的使用中傳輸數。
閒置執行緒逾時 (以秒計)
NUMBER
600000
定義在 ThreadPoolExecutor 中使閒置執行緒保持連線的時間。集區將終止執行緒,並在指定時間之後恢復核心集區大小。
檔案傳輸閒置逾時 (以秒計)
NUMBER
30
檔案傳輸流程的每個步驟間 (checksumReadFromBinaryFileWriteToBinaryFilevalidation) 都會對閒置逾時進行檢查。如果步驟花費的時間長於所定義的逾時時間,則取消傳輸。
* 
請勿將此參數用於非同步副本。
最大檔案傳輸區塊大小 (以位元計)
NUMBER
128000
定義 ReadFromBinaryFileWriteToBinaryFile 操作所請求的位元組數。其表示每次寫入的內容塊大小。
此變數會在系統層級進行檔案傳輸時形成最大區塊大小。
EMS 組態仍具有優先權。但是,如果將 EMS 配置為 buffer_size 大於此變數內指定的值,則此變數將會限制該區塊大小。如果透過 EMS 配置較大的區塊大小 (128 KB),必須增加此值。最大編譯層級為 1 MB。
最大檔案傳輸大小 (以位元計)
NUMBER
100000000
定義複製操作所支援的最大位元組數。
如果來源檔案大於此值,傳輸作業就會失敗,且系統會顯示錯誤訊息。
離線佇列內所允許的最大檔案傳輸
NUMBER
50000
定義系統允許的最大離線佇列檔案傳輸數。
離線佇列內所允許的每一物件最大檔案傳輸
NUMBER
10
定義每個物件允許的最大離線佇列檔案傳輸數。
可佇列檔案傳輸的即時時間 (以秒計)
NUMBER
86400
定義排入佇列的檔案傳輸可於離線佇列中存在的最長時間。
在此指定的時間量過後,系統會將檔案傳輸作業從離線佇列中移除。
所允許的 Edge 控制的最大檔案傳輸總數
NUMBER
500
定義系統允許的每個物件的 Edge 控制的最大使用中檔案傳輸數。
跨平台間的總同步 Edge 控制傳輸範圍介於 1-1000 項傳輸。這不同於所允許的最大始終上線傳輸 (由「新增新工作執行緒前最大佇列項目」設定控制)。
每個物件所允許的 Edge 控制的最大檔案傳輸總數
NUMBER
2
定義在 Edge 控制的「物件」間來回傳輸的最大允許同步傳輸數。範圍介於 1-100 項傳輸。例如,值為 2,表示在指定時間內一個 Edge 控制「物件」只能有兩項使用中傳輸作業 (上載或下載)。系統會拒絕後續的取消檔案傳輸輸出要求,直到有足夠容量空出為止。
Edge 控制的檔案傳輸閒置逾時 (以秒計)
NUMBER
600
定義使用中作業可維持使用中狀態而不遭到變更的最大時間 (例如,資料傳輸作業或工作狀態更新作業)。範圍是 1-3600 秒。這類似於始終上線傳輸作業的閒置逾時設定,但其花費的時間通常較長,才適用於輪詢裝置的偵測循環。
這是否有幫助?