Sottosistema Trasferimento file
Il sottosistema Trasferimento file include i metodi obbligatori per la gestione dei trasferimenti di file tra oggetti remoti, repository di file e server federati.
Se non diversamente specificato, per i trasferimenti di file tra un client edge e ThingWorx Platform è necessario che il client sia connesso dall'inizio del trasferimento fino al completamento. I trasferimenti di file in ThingWorx Platform possono essere avviati mentre il client edge è disconnesso, configurando ThingWorx Platform per l'esecuzione della copia con la funzionalità di accodamento dei file. I trasferimenti di file accodabili sono inseriti in una coda non in linea ed eseguiti dopo la connessione dell'agente.
* 
Se si utilizza PostgreSQL come provider di persistenza, la coda non in linea è resa persistente allo scopo di supportare il failover per la disponibilità elevata in ThingWorx.
Dopo l'avvio del trasferimento, il client edge non può disconnettersi, altrimenti il trasferimento non viene eseguito. I trasferimenti di file in coda scadono se non iniziano prima del valore indicato nell'impostazione di configurazione Durata (sec) di un trasferimento di file accodabili.
In genere, i trasferimenti di file sono controllati da ThingWorx Platform. Tuttavia, possono essere presenti trasferimenti di file controllati da edge, che sono attivati aggiungendo la thing shape EdgeControlled all'oggetto remoto coinvolto nel trasferimento di file. È necessario che l'origine o la destinazione dei trasferimenti di file controllati da edge sia impostata come oggetto FileRepository in ThingWorx Platform. Un trasferimento di file controllato da edge è gestito dal client edge. Il client edge richiama il servizio Touch per aggiornare data e ora del trasferimento di file durante l'avanzamento. In caso contrario, ThingWorx Platform interrompe il trasferimento di file. Il client edge indica se il trasferimento è riuscito o è stato completato con un errore.
È possibile incorporare il contesto specificando il parametro metadata quando si avvia il trasferimento di file. Questo campo è un oggetto JSON, che può contenere qualsiasi codice JSON arbitrario. Alcune funzionalità di base determinano l'utilizzo di questo campo in ThingWorx Platform allo scopo di fornire istruzioni aggiuntive al client edge. Per questi trasferimenti le informazioni nel campo metadata non devono essere modificate da processi diversi da ThingWorx Platform.
Trasferimento di file tra server federati
Per trasferire file tra server federati, attenersi alla procedura descritta di seguito.
1. Configurare un ambiente federato tra ServerA ThingWork e ServerB ThingWorx. Per ulteriori informazioni, vedere Configurazione di un ambiente federato.
2. Aggiungere ThingA a ServerA mediante il modello di oggetto FileRepository.
a. Selezionare la casella di controllo Pubblicato per ThingA, in modo che sia accessibile ad altri server ThingWorx.
3. Aggiungere RemoteThingA a ServerB mediante il modello di oggetto RemoteThingWithFileTransfer.
a. Nel campo Identificatore immettere ThingA@ServerA.
4. Copiare il file (ad esempio, test.txt) nella cartella radice SystemRepository di ServerB.
5. Aprire FileTransferSubsystem in ServerB ed eseguire il servizio copy con i valori di parametro riportati di seguito.
sourceRepo: SystemRepository
sourcePath: /
sourceFile: test.txt
targetRepo: RemoteThingA
targetPath: /
targetFile: test.txt
Non modificare gli altri parametri rispetto ai valori di default.
6. Passare alla cartella /ThingworxStorage/repository/ThingA in ServerA e verificare che vi sia stato copiato il file test.txt.
Configurazione
Impostazioni trasferimento file
Tipo di dati
Default
Note
Numero min di thread allocati a un pool di trasferimento file
NUMBER
10
Numero max di thread allocati a un pool di trasferimento file
NUMBER
10
I trasferimenti di file asincroni possono essere persi in caso di arresto di ThingWorx. Ad esempio, per questa impostazione il valore di default è 10 e viene eseguito l'invio di 50 trasferimenti di file di lunga durata. Se ThingWorx si arresta, 40 vengono persi.
Numero max di voci della coda prima di aggiungere un nuovo thread di lavoro
NUMBER
100
Numero massimo di trasferimenti attivi consentiti per volta.
Timeout thread inattivi (sec)
NUMBER
600000
Timeout di inattività trasferimento file (sec)
NUMBER
30
Dimensione max blocco trasferimento file (byte)
NUMBER
128000
Questa variabile richiede una dimensione blocco massima durante il trasferimento di file a livello di sistema. La configurazione di EMS ha la precedenza, tuttavia, se la dimensione del buffer configurata in EMS è superiore a quella impostata in questa variabile, la variabile limita tale dimensione blocco. Se tramite EMS si configurano dimensioni blocco superiori (128 KB), è necessario aumentare questo valore. Il livello di compilazione massimo è 1 MB.
Dimensione max trasferimento file (byte)
NUMBER
100000000
Se la dimensione del file di origine è superiore a questo valore, il trasferimento ha esito negativo e viene visualizzato un messaggio di errore.
Numero max di trasferimenti file consentiti nella coda non in linea
NUMBER
50000
Numero max di trasferimenti file consentiti per oggetto nella coda non in linea
NUMBER
10
Durata (sec) di un trasferimento di file accodabili
NUMBER
86400
Allo scadere della quantità di tempo specificata, un trasferimento di file viene rimosso dalla coda non in linea.
Totale numero max di trasferimenti file controllati da edge consentiti
NUMBER
500
Totale dei trasferimenti simultanei controllati da edge a livello di piattaforma. L'intervallo è compreso tra 1 e 1000 trasferimenti. Questa impostazione è diversa dal numero massimo di trasferimenti sempre attivi consentiti, che sono controllati dall'impostazione Numero max di voci della coda prima di aggiungere un nuovo thread di lavoro.
Totale numero max di trasferimenti file controllati da edge consentiti per oggetto
NUMBER
2
Numero massimo di trasferimenti simultanei consentiti da e verso un oggetto controllato da edge. L'intervallo è compreso tra 1 e 100 trasferimenti. Ad esempio, un valore 2 significa che un oggetto controllato da edge può disporre solo di due trasferimenti attivi (caricare o scaricare) in un dato momento. Le richieste successive di rimozione dalla coda del trasferimento di file in uscita vengono rifiutate finché non vi è capacità.
Timeout di inattività trasferimenti file controllati da edge (sec)
NUMBER
600
Tempo massimo durante il quale un'operazione attiva può rimanere tale senza alcun intervento, ad esempio trasferimento dati o aggiornamento dello stato dell'operazione. L'intervallo è compreso tra 1 e 3600 secondi. È simile al timeout di inattività per le operazioni di trasferimento sempre attive, ma è generalmente maggiore per tenere conto del ciclo di ping dei dispositivi di polling.