2017-02-21 3 views
4

アプリケーションサーバを削除すると、クラスタが再起動するのはなぜですか?複数のアプリケーションサーバーを削除し、複数の再起動をトリガーしないスクリプトオプションがありますか?たとえば、トランザクションを開いて設定を取得し、複数のadmin:appserver-delete()コールを実行し、新しい設定を保存してから、トランザクションをコミットして1回の再起動をトリガーすることはできますか?MarkLogic:なぜアプリケーションサーバを削除するとクラスタが再起動するのですか?

MarkLogic = 8.0から3.2 & 8.0から4.2、Linuxの= RedHatの

答えて

6

再起動が最も重要なのは、必要な特定のアプリケーション・サーバーのポートでリッスンHTTPポートリスナーを切断することです。そのapp-serverの設定(すべての設定の詳細と同様)はクラスタ全体で共有され、app-serverが定義されているグループに割り当てられたすべてのホストは同じポートにリスナーを持ちます。したがって、アプリケーションサーバーを削除するには、少なくとも同じグループ内のすべてのホストを再起動する必要があります。クラスタ全体の再起動を行うのと同じくらい簡単です。

はい、たとえば複数のアプリケーションサーバーを一度に削除したり、ホストを別のグループに再割り当てしたり、元のグループを削除したりすることもできます。 1回だけ再起動します。 adminの機能を使用すると、adminの設定を複数回更新し、変更を永続させるためにただ1つのadmin:save-configurationで終了することができます。

小さな例:

let $config := admin:get-configuration() 
let $config := admin:appserver-delete($config, 
    admin:appserver-get-id($config, xdmp:group(), "app-serv1") 
) 
let $config := admin:appserver-delete($config, 
    admin:appserver-get-id($config, xdmp:group(), "app-serv2") 
) 
let $config := admin:appserver-delete($config, 
    admin:appserver-get-id($config, xdmp:group(), "app-serv3") 
) 
return admin:save-configuration($config) 

実は、admin:appserver-deleteは、アプリケーションサーバーIDのシーケンスを取るので、あなたは、この場合には、コードを圧縮することができます。しかし、これと同じ方法で、あらゆる種類の管理関数呼び出しを組み合わせることができます。あなたがそれらを実行する順番に注目してください。それは関連性があります。設定を適用する前にデータベースを作成し、成果物のリンクを解除してから削除してください。

HTH!

関連する問題