Almacenamiento de ficheros para la alta disponibilidad de ThingWorx
Para una instalación independiente de ThingWorx, suelen haber tres ubicaciones de ficheros: /ThingworxPlatform, /ThingworxStorage y /ThingworxBackupStorage. Dentro de la ubicación /ThingworxStorage, se crea por defecto el almacén de ficheros inicial. Para la implementación de alta disponibilidad, se deben cumplir algunas reglas y realizar algunos cambios.
Carpeta /ThingworxPlatform
En la carpeta ThingworxPlatform se incluyen los ficheros necesarios que se leen al iniciar una instancia de ThingWorx. Estos ficheros son:
platform-settings.json
keystore-password
license_capability_response.bin (o variantes de este nombre de fichero)
Para una configuración de alta disponibilidad de ThingWorx, cada servidor ThingWorx debe conservar una carpeta /ThingworxPlatform local. El motivo principal es mantener separado el contenido de la licencia.
El contenido siguiente se debe mantener sincronizado entre todos los servidores de alta disponibilidad de ThingWorx. Una vez creado o generado el fichero, y siempre que se modifique en un servidor ThingWorx, el contenido debe propagarse a los demás servidores ThingWorx de su configuración de alta disponibilidad.
platform-settings.json
keystore-password
Para el contenido de licencias, cada servidor ThingWorx debe conservar su propio fichero de licencias y los almacenes de confianza que se crean tras la activación inicial.
Se puede utilizar el siguiente proceso para establecer estos ficheros en /ThingworxPlatform de cada servidor ThingWorx:
1. Cree /ThingworxPlatform en todos los servidores ThingWorx. La estructura de carpetas debe ser la misma en todos los servidores ThingWorx de la configuración de alta disponibilidad.
2. Cree el fichero platform-settings.json de modo que se ajuste al entorno del sistema y guárdelo en /ThingworxPlatform del servidor ThingWorx inicial (el primer servidor ThingWorx que se inicia en la configuración de alta disponibilidad).
3. Inicie el servidor de ThingWorx inicial y asegúrese de que esté completamente operativo y de que pueda utilizar todas las funciones con licencia previstas. En este punto, debe haber tres ficheros dentro de /ThingworxPlatform:
platform-settings.json
keystore-password
successful_license_capability_response.bin
4. Cierre el servidor ThingWorx inicial.
5. Copie los tres ficheros del servidor inicial en la carpeta /ThingworxPlatform del otro servidor o servidores.
6. En los demás servidores, cambie el nombre del fichero de licencias de successful_license_capability_response.bin a license_capability_response.bin.
7. Inicie, pruebe y detenga los demás servidores ThingWorx, de uno en uno, para asegurarse de que toda la funcionalidad con licencia esté disponible.
La ubicación por defecto de la carpeta ThingworxPlatform es /ThingworxPlatform. Se puede definir una ubicación que no sea la ubicación por defecto a través de la variable de entorno THINGWORX_PLATFORM_SETTINGS. La variable debe establecerse en el entorno de usuario del sistema operativo Tomcat antes de que se inicie Tomcat con ThingWorx. Asegúrese de que la carpeta a la que hace referencia THINGWORX_PLATFORM_SETTINGS exista y de que el usuario del sistema operativo Tomcat tenga permiso de lectura/escritura.
/ThingWorxStorage
La carpeta /ThingworxStorage debe conservarse por separado en cada servidor ThingWorx. El motivo principal para ello es mantener separados los registros de cada servidor ThingWorx.
En este caso, el fichero keystore.jks se debe distribuir a todos los servidores ThingWorx para garantizar que utilizan la misma clave. El proceso para lograrlo es el siguiente:
1. Cree /ThingworxStorage en todos los servidores ThingWorx. La estructura de carpetas debe ser la misma en todos los servidores ThingWorx de la configuración de alta disponibilidad.
2. ThingWorx debe estar completamente operativo en el nodo principal.
3. Copie /ThingworxStorage/keystore.jks del nodo principal e instálelo en /ThingworxStorage para el servidor o servidores en espera.
La ubicación de /ThingworxStorage se gestiona en la sección BasicSettings de platform-settings.json.
/ThingworxBackupStorage
El uso principal de /ThingworxBackupStorage es la copia de seguridad de la base de datos de H2. Dado que H2 no se soporta para las configuraciones de alta disponibilidad de ThingWorx, esta ubicación no se utiliza. Sin embargo, se sigue esperando que exista en tiempo de ejecución.
Es suficiente crear esta ubicación en cada servidor ThingWorx para evitar el registro de errores.
Defina "EnableBackup": false en el fichero platform-settings.json para evitar el procesamiento innecesario en un entorno de alta disponibilidad.
La ubicación de /ThingworxBackupStorage se gestiona en platform-settings.json. La estructura de carpetas debe ser la misma en todos los servidores ThingWorx.
Almacén de ficheros raíz
El almacén de ficheros raíz debe encontrarse en un volumen del sistema de ficheros compartido donde todos los servidores ThingWorx tengan permisos iguales de lectura/escritura.
Consideraciones sobre el uso compartido de ficheros:
Una oferta de almacenamiento conectado a la red (NAS) o equivalente en la nube es una solución común para proporcionar un sistema de ficheros compartidos.
La oferta NAS debe tener su propia solución de alta disponibilidad para soportar la implementación de la alta disponibilidad de ThingWorx.
El volumen debe montarse en el servidor antes de que se inicie una instancia de ThingWorx.
El usuario del sistema operativo que ejecuta los servicios Tomcat en cada servidor ThingWorx debe disponer de permisos de lectura/escritura en la ubicación de uso compartido de ficheros en la que se ha establecido el almacén.
La ubicación de montaje debe ser la misma en cada servidor ThingWorx.
La ubicación de la carpeta de almacén de ficheros raíz debe añadirse al fichero platform-settings.json explicado anteriormente. Se debe añadir el parámetro FileRepositoryRoot y una ubicación de ficheros compartidos a la sección BasicSettings. El valor debe indicar la ubicación de la carpeta en la que se debe establecer el almacén. Por ejemplo, si la carpeta de almacén inicial se va a establecer en /ThingworxFileRepository/repository, la adición a platform-settings.json debe ser:

"FileRepositoryRoot":"/ThingworxFileRepository"
* 
Si el parámetro FileRepositoryRoot no se especifica en el fichero platform-settings.json, se utilizará la ubicación de almacén por defecto (/ThingworxStorage).
* 
Si la ubicación definida en FileRepositoryRoot no está disponible por cualquier motivo, ThingWorx se abortará en el inicio.