Подсистема передачи файлов
Подсистема передачи файлов предоставляет требуемые методы для управления передачей файлов между удаленными вещами, репозиториями файлов и объединенными серверами.
Если не указано явно, для передачи файлов между клиентом Edge и ThingWorx Platform требуется, чтобы клиент был подключен от начала передачи до ее завершения. Передачу файлов платформой ThingWorx можно инициировать и, когда клиент Edge отключен, выдать ThingWorx Platform команду выполнить копирование с помощью функциональности постановки в очередь. Передаваемые файлы, которые можно ставить в очередь, помещаются в автономную очередь и выполняются после подключения агента.
* 
Если в качестве поставщика хранилища данных используется PostgreSQL, автономная очередь сохраняется, чтобы поддерживать аварийное переключение с целью обеспечить высокий уровень доступности ThingWorx.
После инициирования передачи клиент Edge не должен отключаться, иначе передача будет прервана. Передача файлов, поставленная в очередь, будет отменена, если она не начнется в течение времени, заданного в настройке конфигурации Время жизни (с) передачи данных, помещаемой в очередь.
Обычно передачами файлов управляет ThingWorx Platform. Однако передача файлов может управляться Edge, если добавить профиль вещи EdgeControlled к удаленной вещи, которая участвует в передаче файлов. Управляемые Edge передачи файлов должны иметь источник или цель, заданные как вещь FileRepository в ThingWorx Platform. При управляемой Edge передаче файлов передачей управляет клиент Edge. Клиент Edge вызывает службу Touch для обновления метки времени передачи файлов в процессе передачи. Если клиент Edge не сделает это, ThingWorx Platform остановит передачу файлов по тайм-ауту. Устройство Edge показывает, была ли передача успешна или завершилась по ошибке.
Можно встроить контекст, используя параметр metadata при инициировании передачи файлов. Это поле является объектом JSON, который может содержать любой произвольный формат JSON. Базовая функциональность ThingWorx Platform использует это поле для выдачи дополнительных инструкций клиенту Edge. Для таких передач информация в поле metadata не должна изменяться никаким другим процессом, кроме ThingWorx Platform.
Передача файлов между федеративными серверами
Для передачи файлов между федеративными серверами выполните следующие действия.
* 
Косая черта (/) является рекомендуемым разделителем путей для репозиториев файлов.
1. Сконфигурируйте объединение, содержащее ThingWorx ServerA и ThingWorx ServerB. Дополнительные сведения см. в разделе Конфигурирование объединения.
2. Добавьте вещь ThingA в ServerA, используя шаблон вещи FileRepository.
a. Установите флажок Публикуемая для вещи ThingA, чтобы это было доступно для других серверов ThingWorx.
3. Добавьте вещь RemoteThingA в ServerB, используя шаблон вещи RemoteThingWithFileTransfer.
a. В поле ИД введите ThingA@ServerA.
4. Скопируйте файл (например, test.txt) в корневую папку SystemRepository на сервере ServerB.
5. Откройте FileTransferSubsystem на сервере ServerB и выполните сервис copy со следующими значениями параметров.
sourceRepo: SystemRepository
sourcePath: /
sourceFile: test.txt
targetRepo: RemoteThingA
targetPath: /
targetFile: test.txt
Не изменяйте значения по умолчанию для других параметров.
6. Перейдите в папку /ThingworxStorage/repository/ThingA на сервере ServerA и убедитесь, что файл test.txt успешно в нее скопирован.
Конфигурация
Настройки передачи файлов
Тип данных
По умолчанию
Примечания
Минимальное число потоков, выделенных для пула передачи файлов
NUMBER
10
Определяет размер основного пула для ThreadPoolExecutor. Этот пул потоков используется для координации логики передачи файлов под управлением платформы.
Максимальное число потоков, выделенных для пула передачи файлов
NUMBER
10
Определяет максимальный размер пула потоков для ThreadPoolExecutor.
При асинхронной передаче файлов информация может быть потеряна, если ThingWorx выключится. Предположим, например, что эта настройка имеет значение по умолчанию 10 и выполняется 50 продолжительных передач файлов. Если ThingWorx выключится, будет потеряно 40 файлов.
Максимум записей очереди перед добавлением нового рабочего потока
NUMBER
100
Определяет верхний предел количества элементов в очереди, используемой в ThreadPoolExecutor.
Это ограничивает количество активных передач, разрешенных одновременно.
Время ожидания потока в состоянии простоя (с)
NUMBER
600000
Определяет, как долго следует сохранять неактивные потоки в ThreadPoolExecutor. По истечении указанного времени пул будет завершать выполнение потоков и возвращаться к размеру основному пула.
Тайм-аут передачи файлов в состоянии простоя (c) (c)
NUMBER
30
Между каждым шагом процесса передачи файлов (checksum, ReadFromBinaryFile, WriteToBinaryFile, validation) проверяется время ожидания простоя. Если шаг занимает больше времени, чем заданный тайм-аут, передача отменяется.
* 
Не используйте этот параметр для асинхронных копий.
Максимальный размер блока передачи файлов (в байтах)
NUMBER
128000
Определяет число байтов, запрашиваемых для операций ReadFromBinaryFile и WriteToBinaryFile. Представляет размер блока для каждой записи.
Эта переменная задает максимальный размер блока во время передачи файлов на системном уровне.
Конфигурация EMS по-прежнему имеет более высокий приоритет. Однако если EMS конфигурируется с размером buffer_size, превышающим заданный в этой переменной, эта переменная будет ограничивать размер блока. Если через EMS конфигурируются размеры блока, превышающие 128 КБ, это значение должно быть увеличено. Максимальный уровень компиляции составляет 1 МБ.
Максимальный размер передачи файлов (в байтах)
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 секунд. Оно аналогично времени ожидания простоя для постоянных заданий передачи, но обычно превышает последнее, чтобы поддерживать цикл проверки опрашиваемых устройств с помощью запроса ping.
Было ли это полезно?