CATALINA_OPTS vs JAVA_OPTS – Quelle est la différence?

J’essayais de découvrir la différence entre les variables Apache Tomcat – CATALINA_OPTS et JAVA_OPTS dans SO et étonné de voir qu’il n’y a pas encore de question / réponse ici. J’ai donc pensé à le partager ici (avec la réponse) après avoir découvert la différence. Vérifiez la réponse / différence ci-dessous.

REMARQUE: Au moment de cette publication, nous exécutons Apache Tomcat v6.0.10 avec JDK 6u32 sur l’archive CentOS5 64 bits.

Il existe deux variables d’environnement – CATALINA_OPTS et JAVA_OPTS – qui sont toutes deux utilisées dans le script de démarrage et d’arrêt catalina.sh pour Tomcat. Ils sont décrits dans les commentaires de ce fichier comme suit:

[JAVA_OPTS]: (facultatif) Options d’exécution Java utilisées lorsque la commande “start”, “stop” ou “run” est exécutée

et

[CATALINA_OPTS]: (facultatif) Options d’exécution Java utilisées lors de l’exécution de la commande “start” ou “run”

Alors, pourquoi y a-t-il deux variables différentes? Et quelle est la différence?

Tout d’abord, tout ce qui est spécifié dans la variable EITHER est transmis, à l’identique, à la commande qui lance Tomcat – la commande “start” ou “run” – mais seules les valeurs définies dans JAVA_OPTS sont transmises à la commande “stop”. Cela ne fait probablement aucune différence dans la façon dont Tomcat s’exécute dans la pratique, car cela n’affecte que la fin d’une course, pas le début.

La deuxième différence est plus subtile. D’autres applications peuvent également utiliser JAVA_OPTS, mais seul Tomcat utilisera CATALINA_OPTS. Donc, si vous définissez des variables d’environnement à utiliser uniquement par Tomcat, il est préférable d’utiliser CATALINA_OPTS, alors que si vous définissez également des variables d’environnement à utiliser par d’autres applications Java, comme par exemple JBoss, vous devez mettre vos parameters dans JAVA_OPTS.

Source: CATALINA_OPTS v JAVA_OPTS – Quelle est la différence?