Haute disponibilité ThingWorx > Gestion des extensions ThingWorx dans la haute disponibilité ThingWorx
Gestion des extensions ThingWorx dans la haute disponibilité ThingWorx
Dans une configuration de cluster ThingWorx, les extensions ThingWorx sont stockées dans la base de données et mises en cache dans le système de fichiers local. Cela permet de s'assurer que chaque instance ThingWorx utilise les extensions les plus récentes stockées dans la base de données.
Au moment de son démarrage, ThingWorx recherche dans la base de données les mises à jour apportées aux extensions et les applique localement. En cas de décalage entre les extensions de la base de données et celles du répertoire ThingworxStorage/extensions local, ThingWorx considère la version de la base de données comme la version la plus récente et la version du répertoire ThingworxStorage/extensions local comme obsolète.
Processus d'importation d'extensions
Lorsque les extensions sont importées, le système effectue les opérations suivantes :
1. Il effectue une somme de contrôle sur le fichier ZIP d'extension et l'enregistre dans le répertoire ThingworxStorage/extensions/<nom extension> sous la forme d'un fichier <nom extension>.chk.
2. Il décompresse le fichier ZIP dans le répertoire ThingworxStorage/extensions/<nom extension>.
3. Il crée, déploie et rend persistante une entité ExtensionPackage (et toutes les autres entités) dans la base de données.
4. Il rend persistant le fichier ZIP et la somme de contrôle dans la base de données.
* 
En cas de défaillance du système lors de l'une des étapes précédentes, il tente d'annuler l'importation. Le fichier ZIP est rendu persistant en dernier. Ainsi, en cas d'échec du déploiement de l'extension, il ne sera pas déployé dans la base de données, ce qui évitera que les autres noeuds de secours ne le sélectionnent et ne provoquent une corruption.
5. Tous les serveurs se synchronisent et installent l'extension.
La synchronisation d'une extension peut prendre autant de temps que son installation initiale. Chaque serveur du cluster se synchronise individuellement jusqu'à s'afficher en cohérence. Durant le processus de synchronisation, les entités importées ne sont pas disponibles sur les autres serveurs, elles ne le sont que sur le serveur où l'importation initiale s'est déclenchée.
Si vous souhaitez importer un grand nombre d'extensions ou des extensions impliquant un long temps de synchronisation, il est recommandé de réduire le cluster à une instance unique, d'installer les extensions, puis de remettre le cluster à l'échelle. Cette approche sera plus efficace et vous permettra d'éviter d'éventuels problèmes de cohérence étant donné que les nouvelles extensions seront chargées par chaque serveur au démarrage.
* 
Durant la synchronisation des extensions et jusqu'à ce que le processus arrive à son terme, les autres synchronisations sont mises en suspens.
Processus de suppression des extensions
Lorsque les extensions sont supprimées, les actions suivantes se produisent :
1. Le déploiement de l'extension est annulé.
2. Le fichier ZIP est supprimé de la base de données.
3. L'entité ExtensionPackage est supprimée de la base de données.
4. Le répertoire ThingworxStorage/extensions/<nom extension> est supprimé, y compris la somme de contrôle.
5. Tous les serveurs se synchronisent et suppriment l'extension.
La synchronisation d'une extension peut prendre autant de temps que sa suppression initiale. Chaque serveur du cluster se synchronise individuellement jusqu'à s'afficher en cohérence.
Si vous souhaitez supprimer un grand nombre d'extensions ou des extensions impliquant un long temps de synchronisation, il est recommandé de réduire le cluster à une instance unique, de supprimer les extensions, puis de remettre le cluster à l'échelle. Cette approche sera plus efficace et vous permettra d'éviter d'éventuels problèmes de cohérence.
* 
Durant la synchronisation des extensions et jusqu'à ce que le processus arrive à son terme, les autres synchronisations sont mises en suspens.
Est-ce que cela a été utile ?