Definición del modelo de ThingWorx en Composer > Sistema > Subsistemas > Subsistema de transferencia de ficheros
Subsistema de transferencia de ficheros
El subsistema de transferencia de ficheros proporciona los métodos necesarios para gestionar transferencias de ficheros entre cosas remotas, almacenes de ficheros y servidores federados.
A menos que se especifique, las transferencias de ficheros entre un cliente Edge y ThingWorx Platform requieren que el cliente esté conectado desde el principio de la transferencia hasta la finalización. Las transferencias de ficheros de ThingWorx Platform se pueden iniciar mientras el cliente Edge está desconectado ordenando a ThingWorx Platform que realice la copia mediante la funcionalidad apta para cola. Las transferencias de ficheros aptas para cola se colocan en una cola fuera de línea y se ejecutan una vez que se conecta el agente.
* 
Si se utiliza PostgreSQL como proveedor de persistencia, la cola fuera de línea persiste para soportar la conmutación por error para la alta disponibilidad de ThingWorx.
Después de iniciarse la transferencia, el cliente periférico no se puede desconectar o la transferencia fallará. Las transferencias de ficheros aptas para cola caducarán si no empiezan antes del valor de configuración Período de vida (segundos) de una transferencia de fichero apta para cola.
Normalmente, ThingWorx Platform controla las transferencias de ficheros. Sin embargo, puede haber transferencias de ficheros de control periférico, que se activan añadiendo la definición de cosa EdgeControlled a la cosa remota que participa en la transferencia de ficheros. Las transferencias de ficheros contraladas mediante Edge deben tener el origen o el destino definidos en una cosa FileRepository en ThingWorx Platform. En una transferencia de ficheros controlados mediante Edge, el cliente Edge controla la transferencia. El servidor Edge invoca el servicio Touch para actualizar la fecha y hora de la transferencia de ficheros a medida que progresa. Si el servidor Edge no lo hace, se agota el tiempo de espera de ThingWorx Platform para la transferencia de ficheros. El servidor Edge indica si la transferencia se ha realizado correctamente o si se ha completado con un error.
Es posible integrar contexto proporcionando el parámetro metadata al iniciar la transferencia de ficheros. Este campo es un objeto de JSON que puede contener cualquier JSON arbitrario. Determinada funcionalidad base hará que ThingWorx Platform utilice este campo para proporcionar instrucciones adicionales al cliente Edge. Para estas transferencias, la información del campo metadata no se debe modificar mediante ningún proceso que no sea ThingWorx Platform.
Transferencia de ficheros entre servidores federados
Para transferir ficheros entre servidores federados, realice lo siguiente:
1. Configure una federación entre ThingWorx ServerA y ThingWorx ServerB. Para obtener más información, consulte Configuración de una federación.
2. Añada ThingA a ServerA con la plantilla de cosa FileRepository.
a. Seleccione la casilla Publicadas para ThingA de modo que sea accesible para otros servidores de ThingWorx.
3. Añada RemoteThingA a ServerB con la plantilla de cosa RemoteThingWithFileTransfer.
a. En el campo Identificador, introduzca ThingA@ServerA.
4. Copie el fichero (por ejemplo, test.txt) en la carpeta raíz SystemRepository de ServerB.
5. Abra FileTransferSubsystem en ServerB y ejecute el servicio copy con los siguientes valores de parámetros:
sourceRepo: SystemRepository
sourcePath: /
sourceFile: test.txt
targetRepo: RemoteThingA
targetPath: /
targetFile: test.txt
No cambie los valores por defecto del resto de parámetros.
6. Vaya a la carpeta /ThingworxStorage/repository/ThingA de ServerA y verifique que el fichero text.txt se haya copiado allí correctamente.
Configuración
Configuración de transferencia de ficheros
Tipo de datos
Por defecto
Notas
Número mínimo de subprocesos asignados a la agrupación de transferencia de ficheros
NUMBER
10
Número máximo de subprocesos asignados a la agrupación de transferencia de ficheros
NUMBER
10
Las transferencias de ficheros asíncronas se pueden perder si ThingWorx se colapsa. Por ejemplo, esta configuración tiene el valor por defecto de 10, y se envían 50 transferencias de ficheros prolongadas. Si ThingWorx se colapsa, se perderían 40 transferencias.
Número máximo de entradas de cola para añadir un subproceso de trabajo nuevo.
NUMBER
100
El número máximo de transferencias activas permitidas a la vez.
Tiempo de espera de subproceso inactivo (segundos)
NUMBER
600000
Tiempo de espera de transferencia de ficheros inactiva (segundos)
NUMBER
30
Tamaño máximo de bloque de transferencia de ficheros (bytes)
NUMBER
128000
Esta variable impone un tamaño de bloque máximo durante la transferencia de ficheros en el nivel del sistema. La configuración de EMS sigue siendo prioritaria. Sin embargo, si EMS se configura con un valor de buffer_size mayor que el configurado en esta variable, dicha variable limitará este tamaño de bloqueo. Si se configuran tamaños de bloque más grandes (128 KB) mediante EMS, este valor debe aumentarse. El nivel de compilación máximo es de 1 MB.
Tamaño máximo de transferencia de ficheros (bytes)
NUMBER
100000000
Si el fichero de origen es mayor que este valor, la transferencia falla y se muestra un mensaje de error.
Número máximo de transferencias de ficheros permitido en la cola de fuera de línea
NUMBER
50000
Número máximo de transferencias de ficheros permitido por cosa en la cola de fuera de línea
NUMBER
10
Período de vida (segundos) de una transferencia de fichero apta para cola
NUMBER
86400
Una transferencia de ficheros se quitará de la cola fuera de línea después de la cantidad de tiempo especificada.
Número máximo de transferencias de ficheros controladas por el servidor Edge autorizadas
NUMBER
500
El número total de transferencias controladas por el servidor Edge simultáneas en la plataforma. El intervalo es de 1 a 1000 transferencias. Esto es independiente del número máximo permitido de transferencias permanentes (que se controlan mediante la configuración Número máximo de entradas de cola para añadir un subproceso de trabajo nuevo).
Número máximo de transferencias de ficheros controladas por el servidor Edge autorizadas por cosa
NUMBER
2
El número máximo de transferencias simultáneas permitidas a o desde una cosa controlada por el servidor Edge. El intervalo es de 1 a 100 transferencias. Por ejemplo, un valor de 2 significa que una cosa controlada por el servidor Edge solo puede tener dos transferencias activas (carga o descarga) en un momento determinado. Se rechazan las solicitudes posteriores para quitar de la cola la salida de transferencias de ficheros hasta que haya capacidad.
Interrupción por tiempo de inactividad para las transferencias de ficheros controladas por el servidor Edge (segundos)
NUMBER
600
El tiempo máximo que un trabajo activo puede permanecer activo sin llevarse a cabo (por ejemplo, por transferencia de datos o actualización de estado de trabajo). El intervalo es de 1 a 3600 segundos. Esto es similar a la interrupción por tiempo de inactividad de trabajos de transferencia permanentes, pero suele ser superior al ciclo de ping de dispositivos de sondeo.