2017-06-03 1 views
0

Je dois exécuter des localisateurs et des services sur deux serveurs Windows W2K8. Normalement, j'utilise nssm pour exécuter des applications Java en appelant leur appel java -jar respectif de nssm. Mais Geode utilise gfsh.Méthode recommandée pour exécuter Apache Geode en tant que service sous Windows

Quelle est la meilleure pratique? On pourrait utiliser le API pour frayer une instance et exécuter les commandes de démarrage nécessaires:

commandService = CommandService.createLocalCommandService(cache); 
CommandStatement showDeadLocksCmdStmt = commandService.createCommandStatement 
    ("start locator ..."); 
if (showDeadlocksResult.hasIncomingFiles()) { 
    showDeadlocksResult.saveIncomingFiles(System.getProperty("user.dir") + 
        "/commandresults"); 
} 

Ou on pourrait imiter le comportement de gfsh.bat et de créer un service de NSSM pour chaque fonctionnalité (localisateur et serveur) qui exécute le même lot ne et passer la commande nécessaire:

java -Dgfsh=true -Dlog4j.configurationFile=classpath:log4j2-cli.xml -classpath C:\dev\apache-geode-1.1.1\lib\gfsh-dependencies.jar org.apache.geode.management.internal.cli.Launcher start locator ... 

A en juger par this question de le faire gfsh y est recommandé

Répondre

0

il est dit dans Configuring and Running a Cluster que l'utilisation de gfsh est le moyen recommandé pour gérer Geode. C'est comme si le localisateur et le serveur étaient des processus Java démarrés par le gfsh puis exécutés en arrière-plan quel que soit le système d'exploitation. C'est le point de Java après tout. Donc pour moi ça s'applique aussi à Windows, il n'y a pas besoin de service Windows séparé pour gérer les processus Java, vous pouvez utiliser gfsh ... C'est seulement un shell qui se connecte à un localisateur comme n'importe quel autre client Geode, et une fois Geode la coque peut être arrêtée, maintenue, disco, reconnectée, etc.