Composer의 ThingWorx 모델 정의 > 시스템 > 하위 시스템 > 파일 전송 하위 시스템
파일 전송 하위 시스템
파일 전송 하위 시스템은 원격 사물, 파일 저장소 및 페더레이션 서버 간 파일 전송을 관리하는 데 필요한 방법을 제공합니다.
별도 지정이 없는 경우, 에지 클라이언트와 ThingWorx Platform 간에 파일을 전송하려면 클라이언트가 전송 시작부터 완료까지 연결되어야 합니다. ThingWorx Platform 파일 전송은 대기 가능 기능을 사용하여 ThingWorx Platform에서 복사를 수행하도록 지정함으로써 에지 클라이언트가 연결 해제되어 있는 동안 시작될 수 있습니다. 대기 가능 파일 전송은 오프라인 대기열에 배치되며 에이전트가 연결되면 실행됩니다.
* 
지속성 공급자로 PostgreSQL을 사용 중인 경우 ThingWorx 고가용성을 위한 페일오버를 지원하기 위해 오프라인 대기열이 지속됩니다.
전송이 시작된 후에는 에지 클라이언트를 연결 해제할 수 없거나 전송이 실패합니다. 대기열에 추가된 파일 전송은 대기 가능 파일 전송의 TTL(초) 구성 설정 값 이전에 시작되지 않으면 만료됩니다.
일반적으로 파일 전송은 ThingWorx Platform에 의해 제어됩니다. 그러나 파일 전송에 참여 중인 원격 사물에 EdgeControlled 사물 형태를 추가하여 활성화된 에지 제어 파일 전송이 가능합니다. 에지 제어 파일 전송에는 ThingWorx Platform에서 FileRepository 사물로 설정된 소스 또는 대상이 있어야 합니다. 에지 제어 파일 전송에서 전송은 에지 클라이언트에 의해 제어됩니다. 에지는 진행함에 따라 파일 전송의 타임스탬프를 업데이트하기 위해 Touch 서비스를 호출합니다. 에지가 이 작업을 수행하지 않으면 ThingWorx Platform에서 파일 전송 시간이 초과됩니다. 에지는 전송이 성공했는지, 아니면 완료했지만 오류가 발생했는지를 나타냅니다.
파일 전송을 시작할 때 메타데이터 매개 변수를 제공하여 컨텍스트를 포함할 수 있습니다. 이 필드는 임의적인 JSON을 포함할 수 있는 JSON 객체입니다. 특정 기본 기능은 ThingWorx Platform에서 이 필드를 사용하여 에지 클라이언트에 추가 지침을 제공합니다. 이러한 전송을 위해 메타데이터 필드의 정보는 ThingWorx Platform 이외의 프로세스에 의해 수정되지 않아야 합니다.
페더레이션 서버 간 파일 전송
페더레이션 서버 간에 파일을 전송하려면 다음을 수행하십시오.
1. ThingWorx ServerA와 ThingWorx ServerB 간에 페더레이션을 구성합니다. 자세한 내용은 페더레이션 구성을 참조하십시오.
2. FileRepository 사물 템플릿을 사용하여 ServerAThingA를 추가합니다.
a. ThingA에 다른 ThingWorx 서버가 액세스할 수 있도록 해당 게시됨 확인란을 선택합니다.
3. RemoteThingWithFileTransfer 사물 템플릿을 사용하여 ServerBRemoteThingA를 추가합니다.
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를 통해 더 큰 블록 크기(128KB)가 구성된 경우 이 값을 늘려야 합니다. 최대 컴파일 수준은 1MB입니다.
최대 파일 전송 크기(바이트)
NUMBER
100000000
소스 파일이 이 값보다 큰 경우 전송이 실패하고 오류 메시지가 표시됩니다.
오프라인 대기열에서 허용된 최대 파일 전송
NUMBER
50000
오프라인 대기열에서 사물당 허용된 최대 파일 전송
NUMBER
10
대기 가능 파일 전송의 TTL(초)
NUMBER
86400
이 지정된 시간이 지난 후 오프라인 대기열에서 파일 전송이 제거됩니다.
최대 허용 에지 제어 파일 전송 총 수
NUMBER
500
플랫폼 간 총 동시 에지 제어 전송 수입니다. 범위는 1 ~ 1000개 전송입니다. 이는 최대 허용된 상시 전송(새 작업 스레드를 추가하기 전 최대 대기열 엔트리 설정에서 제어됨)과는 별개입니다.
사물당 최대 허용 에지 제어 파일 전송 총 수
NUMBER
2
에지 제어 사물에서 허용된 최대 동시 전송 수입니다. 범위는 1 ~ 100개 전송입니다. 예를 들어, 값 2는 에지 제어 사물 하나가 지정된 시간에 두 개의 활성 전송(업로드 또는 다운로드)만 가질 수 있음을 의미합니다. 파일 전송 출구를 대기열에서 분리하는 후속 요청은 용량이 있을 때까지 거부됩니다.
에지 제어 파일 전송에 대한 유휴 제한 시간(초)
NUMBER
600
활성 작업이 데이터 전송 또는 작업 상태 업데이트 등에 의해 영향을 받지 않고 활성 상태를 유지할 수 있는 최대 시간입니다. 범위는 1 ~ 3600초입니다. 이는 Always On 전송 작업에 대한 유휴 제한 시간과 유사하지만 일반적으로 폴링 장치의 ping 주기를 처리하는 것이 더 깁니다.