ThingWorx a disponibilità elevata > Gestione delle estensioni di ThingWorx in ThingWorx a disponibilità elevata
Gestione delle estensioni di ThingWorx in ThingWorx a disponibilità elevata
In una configurazione di clustering a disponibilità elevata di ThingWorx le estensioni ThingWorx vengono memorizzate nel database e nella cache nel file system locale. In questo modo, ogni istanza di ThingWorx utilizza le estensioni più recenti memorizzate nel database.
Durante l'avvio, ThingWorx controlla il database per verificare la presenza di aggiornamenti alle estensioni e applicarle in locale. Se esiste una discrepanza tra le estensioni nel database e quelle nella directory ThingworxStorage/Extensions locale, ThingWorx considera la versione del database come più recente e la versione nella directory ThingworxStorage/Extensions locale come obsoleta.
Processo di importazione delle estensioni
Quando vengono importate le estensioni, il sistema esegue le operazioni descritte di seguito.
1. Esegue un checksum nel file zip dell'estensione e lo salva nella directory ThingworxStorage/extensions/<nome estensione> come file <nome estensione>.chk file.
2. Decomprime il file zip nella directory ThingworxStorage/extensions/<nome estensione>.
3. Crea, distribuisce e rende persistente un'entità ExtensionPackage (e qualsiasi altra entità) nel database.
4. Rende persistente il file zip e il checksum nel database.
* 
Se durante l'esecuzione dei passi precedenti si verifica un errore, il sistema tenta di uscire dall'importazione. Il file zip viene reso persistente per ultimo. In questo modo, se la distribuzione dell'estensione fallisce, l'estensione non viene distribuita nel database e impedisce ad altri nodi di standby di selezionarla e provocare un danno.
5. Tutti i server effettuano la sincronizzazione e l'installazione dell'estensione.
La sincronizzazione di un'estensione può richiedere lo stesso tempo necessario per l'installazione iniziale dell'estensione. Ogni server nel cluster viene sincronizzato singolarmente ed è infine coerente. Nella fase di sincronizzazione, le entità importate non saranno disponibili negli altri server, ma solo nel server in cui è avvenuta l'importazione iniziale.
Se si intende importare un numero elevato di estensioni o estensioni che richiedono molto tempo per la sincronizzazione, si consiglia di ridurre il cluster a una singola istanza, installare le estensioni, quindi scalare di nuovo il cluster. Si ottengono così prestazioni più elevate e si evitano eventuali problemi di coerenza in quanto le nuove estensioni vengono caricate da ogni server al loro avvio.
* 
Mentre la sincronizzazione dell'estensione è in esecuzione, le altre sincronizzazioni rallentano fino al suo completamento.
Processo di rimozione dell'estensione
Quando le estensioni vengono eliminate, si verifica quanto descritto di seguito.
1. La distribuzione dell'estensione viene annullata.
2. Il file zip viene eliminato dal database.
3. L'entità ExtensionPackage viene eliminata dal database.
4. La directory ThingworxStorage/extensions/<nome estensione> viene eliminata, incluso il checksum.
5. Tutti i server effettuano la sincronizzazione e la rimozione dell'estensione.
La sincronizzazione di un'estensione può richiedere lo stesso tempo necessario per l'eliminazione iniziale di un'estensione. Ogni server nel cluster viene sincronizzato singolarmente ed è infine coerente.
Se intende eliminare un numero elevato di estensioni o estensioni che richiedono molto tempo per la sincronizzazione, si consiglia di ridurre il cluster a una singola istanza, eliminare le estensioni e quindi scalare di nuovo il cluster. Si ottengono così prestazioni più elevate e si evitano eventuali problemi di coerenza.
* 
Mentre la sincronizzazione dell'estensione è in esecuzione, le altre sincronizzazioni rallentano fino al suo completamento.
È stato utile?