ThingWorx 高可用性 > ThingWorx HA での ThingWorx 拡張機能の管理
ThingWorx HA での ThingWorx 拡張機能の管理
ThingWorx クラスタ構成では、ThingWorx 拡張機能はデータベースに保管され、ローカルファイルシステムにキャッシュされます。これにより、各 ThingWorx インスタンスはデータベースに保管されている最新の拡張機能を使用します。
起動時に、ThingWorx は拡張機能の更新がないかデータベースをチェックし、更新をローカルに適用します。データベース内の拡張機能とローカル ThingworxStorage/extensions ディレクトリ内の拡張機能に相違がある場合、ThingWorx はデータベースバージョンを最新と見なし、ローカル ThingworxStorage/extensions バージョンを古いものと見なします。
拡張機能のインポートプロセス
拡張機能がインポートされると、システムは以下の処理を行います。
1. 拡張機能の ZIP ファイルに対して Checksum を実行し、ThingworxStorage/extensions/<拡張機能名> ディレクトリに <拡張機能名>.chk ファイルとして保存します。
2. ThingworxStorage/extensions/<拡張機能名> ディレクトリに ZIP を解凍します。
3. ExtensionPackage エンティティ (およびその他の任意のエンティティ) を作成、展開し、データベースに永続化します。
4. ZIP ファイルおよび Checksum をデータベースに永続化します。
* 
前述のステップ中にシステムが失敗した場合、インポートの取り消しが試みられます。ZIP ファイルは最後に永続化されます。これにより、拡張機能がデプロイに失敗した場合、データベースにはデプロイされず、ほかのスタンバイノードがそれを選択して破損することがなくなります。
5. すべてのサーバーが同期化して拡張機能をインストールします。
拡張機能の同期には、拡張機能の初回インストールと同じ時間がかかる場合があります。クラスタ内の各サーバーが個別に同期し、最終的に一貫したものとなります。同期期間中は、インポートされたエンティティは最初のインポートが行われたサーバーでのみ使用でき、ほかのサーバーでは使用できません。
多数の拡張機能や同期に時間がかかる拡張機能をインポートする場合、クラスタを停止して 1 つのインスタンスだけにし、拡張機能をインストールしてから、クラスタのインスタンスを元に戻すことをお勧めします。この方法では、各サーバーが起動するたびに新しい拡張機能がロードされるので、パフォーマンスが向上し、最終的な一貫性の問題が防止されます。
* 
拡張機能の同期が実行されている間、完了するまでその他の同期は後回しになります。
拡張機能の除去プロセス
拡張機能が削除された場合、以下の処理が行われます。
1. 拡張機能が展開解除されます。
2. ZIP がデータベースから削除されます。
3. ExtensionPackage エンティティがデータベースから削除されます。
4. ThingworxStorage/extensions/<拡張機能名> ディレクトリが Checksum とともに削除されます。
5. すべてのサーバーが同期化して拡張機能を除去します。
拡張機能の同期には、拡張機能の 1 回目の削除と同じ時間がかかる場合があります。クラスタ内の各サーバーが個別に同期し、最終的に一貫したものとなります。
多数の拡張機能や同期に時間がかかる拡張機能を削除する場合、クラスタを停止して 1 つのインスタンスだけにし、拡張機能を削除してから、クラスタのインスタンスを元に戻すことをお勧めします。これにより、パフォーマンスが向上し、最終的な一貫性の問題が防止されます。
* 
拡張機能の同期が実行されている間、完了するまでその他の同期は後回しになります。
これは役に立ちましたか?