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:
* 
Una barra diagonal (/) es el delimitador de ruta recomendado para los almacenes de ficheros.
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
Permite definir el tamaño principal del grupo para ThreadPoolExecutor. Este grupo de subprocesos se utiliza para coordinar la lógica de transferencia de ficheros controlada por la plataforma.
Número máximo de subprocesos asignados a la agrupación de transferencia de ficheros
NUMBER
10
Permite definir el tamaño máximo del grupo de subprocesos para ThreadPoolExecutor.
Las transferencias de ficheros asíncronas se pueden perder si ThingWorx falla. Por ejemplo, supongamos que esta configuración tiene el valor por defecto de 10 y se envían 50 transferencias de ficheros prolongadas. Si ThingWorx falla, se perderán 40 ficheros.
Número máximo de entradas de cola para añadir un subproceso de trabajo nuevo.
NUMBER
100
Permite definir el límite máximo de número de entradas de la cola utilizadas en ThreadPoolExecutor.
De este modo, se restringe el número de transferencias activas permitidas a la vez.
Tiempo de espera de subproceso inactivo (segundos)
NUMBER
600000
Permite definir cuánto tiempo se deben mantener activos los subprocesos inactivos en ThreadPoolExecutor. La agrupación terminará los subprocesos y volverá al tamaño principal de agrupaciones después del tiempo especificado.
Tiempo de espera de transferencia de ficheros inactiva (segundos)
NUMBER
30
Entre cada paso durante el proceso de transferencia de ficheros (checksum, ReadFromBinaryFile, WriteToBinaryFile, validation) se verifica la interrupción por tiempo de inactividad. Si el paso tarda más que el tiempo de espera definido, la transferencia se cancela.
* 
No utilice este parámetro para las copias asíncronas.
Tamaño máximo de bloque de transferencia de ficheros (bytes)
NUMBER
128000
Permite definir el número de bytes solicitados para las operaciones ReadFromBinaryFile y WriteToBinaryFile. Esto representa el tamaño del fragmento para cada escritura.
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 teniendo prioridad. Sin embargo, si EMS se configura con un objeto buffer_size mayor que el especificado en esta variable, esta variable limitará este tamaño de bloque. 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
Se define el número máximo de bytes que una operación Copiar soporta.
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
Se define el número máximo de transferencias de ficheros en cola fuera de línea permitidas en el sistema.
Número máximo de transferencias de ficheros permitido por cosa en la cola de fuera de línea
NUMBER
10
Se define el número máximo de transferencias de ficheros en cola fuera de línea permitidas por cosa.
Período de vida (segundos) de una transferencia de fichero apta para cola
NUMBER
86400
Se define el tiempo máximo que una transferencia de ficheros en cola puede permanecer en la cola fuera de línea.
Una transferencia de ficheros se quita 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
Se define el número máximo de transferencias activas de ficheros controladas por el servidor Edge por cosa que se permite en el sistema.
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
Se define 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 suficiente.
Interrupción por tiempo de inactividad para las transferencias de ficheros controladas por el servidor Edge (segundos)
NUMBER
600
Se define 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.
¿Fue esto útil?