CATALINA_OPTS vs JAVA_OPTS - Aralarındaki fark nedir?


105

Ben Apache Tomcat değişkenler arasındaki farkı bulmaya çalışıyordu - CATALINA_OPTSve JAVA_OPTSde SO ve hiçbir soru / cevap henüz burada yayınlanan olduğunu görmek şaşırttı. Bu yüzden farkı bulduktan sonra burada (cevapla) paylaşmayı düşündüm. Aşağıdaki cevabı / farkı kontrol edin.

NOT: Bu gönderi sırasında, CentOS5 64 bit arch üzerinde JDK 6u32 ile Apache Tomcat v6.0.10'u çalıştırıyoruz.

Yanıtlar:


156

Tomcat için her ikisi de catalina.sh başlatma ve kapatma betiğinde kullanılan CATALINA_OPTSve iki ortam değişkeni JAVA_OPTSvardır . Bu dosyadaki yorumlarda şu şekilde açıklanırlar:

[JAVA_OPTS]: (isteğe bağlı) "Başlat", "durdur" veya "çalıştır" komutu yürütüldüğünde kullanılan Java çalışma zamanı seçenekleri

ve

[CATALINA_OPTS]: (isteğe bağlı) "Başlat" veya "çalıştır" komutu yürütüldüğünde kullanılan Java çalışma zamanı seçenekleri

Öyleyse neden iki farklı değişken var? Ve fark nedir?

İlk olarak, EITHER değişkeninde belirtilen herhangi bir şey, Tomcat'i başlatan komuta - "start" veya "run" komutu - aynı şekilde geçirilir, ancak yalnızca JAVA_OPTS'de ayarlanan değerler "stop" komutuna aktarılır. Bu muhtemelen Tomcat'in pratikte nasıl çalıştığı konusunda herhangi bir fark yaratmaz, çünkü sadece bir koşunun sonunu etkiler, başlangıcı değil.

İkinci fark daha inceliklidir. Diğer uygulamalar da JAVA_OPTS kullanabilir, ancak yalnızca Tomcat CATALINA_OPTS kullanacaktır. Bu nedenle, yalnızca Tomcat tarafından kullanılmak üzere ortam değişkenlerini ayarlıyorsanız, en iyi CATALINA_OPTS kullanmanız tavsiye edilirken, JBoss gibi diğer java uygulamaları tarafından da kullanılacak ortam değişkenlerini ayarlıyorsanız, JAVA_OPTS içindeki ayarlarınız.

Kaynak: CATALINA_OPTS v JAVA_OPTS - Aralarındaki fark nedir?


11
Bunları "tomcat başlangıcı için bir şeye ihtiyacım var mı" veya "her JVM için bir şeye ihtiyacım var mı" olarak düşünmek de yararlıdır. Diyelim ki dağıtılmış bir ortamda JMX izlemeyi kurmaya çalışıyoruz ve bir güvenlik duvarının arkasındayız - Djava.rmi.server'ı başlangıç argümanı olarak kurmak için iki RMI bağlantı noktasına ihtiyacımız var . Bunu bir JAVA_OPT olarak yapabilir miyiz, bir kapatma işlemi JMX bağlantı noktalarında dinlemeye çalışan yeni bir JVM'yi ateşler, tomcat zaten dinlediğinden onu yakalayamaz ve JVM halihazırda kullanımda olduğu konusunda bir hata ile durur - biz değil ister misin?
Joao Figueiredo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.