Stockage de fichiers pour la haute disponibilité ThingWorx
Pour une installation autonome de ThingWorx, il existe généralement trois emplacements de fichiers établis : /ThingworxPlatform, /ThingworxStorage et /ThingworxBackupStorage. Dans l'emplacement /ThingworxStorage, le référentiel de fichiers initial est créé par défaut. Un déploiement haute disponibilité nécessite de suivre quelques règles et d'apporter diverses modifications.
Dossier /ThingworxPlatform
Le dossier ThingworxPlatform contient les fichiers requis, qui sont lus au démarrage d'une instance de ThingWorx. Ces fichiers sont les suivants :
platform-settings.json
keystore-password
license_capability_response.bin (ou des variantes de ce nom de fichier)
Pour une configuration ThingWorx en mode HA, chaque serveur ThingWorx doit conserver un dossier /ThingworxPlatform local. Cela permet principalement de séparer le contenu de licence du reste.
Le contenu suivant doit être synchronisé sur tous les serveurs ThingWorx en mode HA. Lorsqu'un fichier est créé, généré ou modifié sur un serveur ThingWorx, le contenu doit être propagé à tous les autres serveurs ThingWorx dans la configuration en mode HA.
platform-settings.json
keystore-password
Pour le contenu de licence, chaque serveur ThingWorx doit conserver à la fois son propre fichier de licence et les magasins d'approbation créés lors de l'activation initiale.
Vous pouvez utiliser le processus suivant pour établir ces fichiers dans le dossier /ThingworxPlatform de chaque serveur ThingWorx :
1. Créez le dossier /ThingworxPlatform sur tous les serveurs ThingWorx. La structure des dossiers doit être la même sur tous les serveurs ThingWorx de la configuration HA.
2. Générez le fichier platform-settings.json de façon à ce qu'il corresponde à l'environnement système et enregistrez-le dans le dossier /ThingworxPlatform du serveur ThingWorx initial (le premier serveur ThingWorx à démarrer dans la configuration HA).
3. Démarrez le serveur ThingWorx initial et assurez-vous qu'il est entièrement opérationnel et qu'il peut utiliser toutes les fonctions sous licence attendues. A ce stade, le dossier /ThingworxPlatform doit contenir trois fichiers :
platform-settings.json
keystore-password
successful_license_capability_response.bin
4. Arrêtez le serveur ThingWorx initial.
5. Copiez les trois fichiers du serveur initial dans le dossier /ThingworxPlatform des autres serveurs.
6. Sur les autres serveurs, renommez le fichier de licence successful_license_capability_response.bin en license_capability_response.bin.
7. Démarrez, testez et arrêtez les autres serveurs ThingWorx un par un pour vous assurer que toutes les fonctionnalités sous licence sont disponibles.
L'emplacement par défaut du dossier ThingworxPlatform est /ThingworxPlatform. Vous pouvez définir un emplacement autre que celui par défaut avec la variable d'environnement THINGWORX_PLATFORM_SETTINGS. La variable doit être établie dans l'environnement utilisateur du système d'exploitation Tomcat avant que l'environnement Tomcat hébergeant ThingWorx ne soit démarré. Assurez-vous que le dossier référencé par THINGWORX_PLATFORM_SETTINGS existe et que l'utilisateur du système d'exploitation Tomcat dispose des droits d'accès en lecture/écriture.
/ThingworxStorage
Le dossier /ThingworxStorage doit être conservé séparément du reste sur chaque serveur ThingWorx. Cela permet principalement de disposer de journaux distincts pour chaque serveur ThingWorx.
Dans ce cas, le fichier keystore.jks doit être distribué sur tous les serveurs ThingWorx pour s'assurer qu'ils utilisent la même clé. Pour ce faire, procédez comme suit :
1. Créez le dossier /ThingworxStorage sur tous les serveurs ThingWorx. La structure des dossiers doit être la même sur tous les serveurs ThingWorx de la configuration HA.
2. ThingWorx doit être entièrement opérationnel sur le noeud leader.
3. Copiez le fichier /ThingworxStorage/keystore.jks du noeud leader et installez-le dans le dossier /ThingworxStorage des serveurs de secours.
L'emplacement du dossier /ThingworxStorage est géré dans la section BasicSettings du fichier platform-settings.json.
/ThingworxBackupStorage
/ThingworxBackupStorage sert principalement à sauvegarder la base de données H2. H2 n'étant pas pris en charge pour les configurations ThingWorx haute disponibilité, cet emplacement n'est pas utilisé. Toutefois, son existence est toujours attendue au moment de l'exécution.
Il suffit de créer cet emplacement sur chaque serveur ThingWorx pour éviter la consignation d'erreurs.
Définissez l'élément "EnableBackup": false dans le fichier platform-settings.json pour éviter des opérations inutiles dans un environnement HA.
L'emplacement du dossier /ThingworxBackupStorage est géré dans le fichier platform-settings.json. La structure du dossier doit être la même sur tous les serveurs ThingWorx.
Référentiel de fichiers racine
Le référentiel de fichiers racine doit se trouver sur un volume de système de fichiers partagé auquel tous les serveurs ThingWorx disposent d'un même niveau d'accès en lecture/écriture.
Considérations sur le partage de fichiers :
Un serveur NAS (Network Attached Storage) ou son équivalent sur le Cloud est souvent utilisé pour mettre en oeuvre un système de fichiers partagés.
Ce serveur doit disposer de sa propre solution haute disponibilité pour prendre en charge cette implémentation ThingWorx haute disponibilité.
Le volume doit être monté sur le serveur avant le démarrage d'une instance ThingWorx.
L'utilisateur du système d'exploitation exécutant les services Tomcat sur chaque serveur ThingWorx doit disposer de droits d'accès en lecture/écriture à l'emplacement de partage de fichiers dans lequel le référentiel est établi.
L'emplacement de montage doit être identique sur chaque serveur ThingWorx.
L'emplacement du dossier du référentiel de fichiers racine doit être ajouté au fichier platform-settings.json du système évoqué ci-avant. Le paramètre FileRepositoryRoot et l'emplacement d'un fichier partagé doivent être ajoutés à la section BasicSettings. La valeur doit indiquer l'emplacement du dossier dans lequel le référentiel doit être établi. Par exemple, si le dossier de référentiel initial doit être établi dans /ThingworxFileRepository/repository, vous devez l'indiquer comme suit dans le fichier platform-settings.json :

"FileRepositoryRoot":"/ThingworxFileRepository"
* 
Si le paramètre FileRepositoryRoot n'est pas spécifié dans le fichier platform-settings.json, l'emplacement par défaut du référentiel (/ThingworxStorage) sera utilisé.
* 
Si l'emplacement défini dans FileRepositoryRoot n'est pas disponible pour une raison quelconque, ThingWorx l'ignorera au démarrage.