2012-06-27 11 views
78

मैं और JAVA_OPTSSO में अपाचे टॉमकैट चर के बीच अंतर जानने का प्रयास कर रहा था और यह देखकर आश्चर्य हुआ कि अभी तक कोई प्रश्न/उत्तर पोस्ट नहीं किया गया है। इसलिए मैंने अंतर जानने के बाद इसे यहां (जवाब के साथ) साझा करने का विचार किया। नीचे उत्तर/अंतर की जांच करें।CATALINA_OPTS बनाम JAVA_OPTS - क्या अंतर है?

नोट: इस पोस्टिंग के समय, हम Apache Tomcat v6.0.10 को CentOS5 64-bit arch पर जेडीके 6u32 के साथ चला रहे हैं। CATALINA_OPTS और JAVA_OPTS - - जो दोनों बिलाव के लिए catalina.sh स्टार्टअप और शट डाउन स्क्रिप्ट में उपयोग किया जाता

उत्तर

116

दो वातावरण चर रहे हैं। वे के रूप में है कि फ़ाइल के भीतर टिप्पणी में वर्णित हैं:

[JAVA_OPTS]: (वैकल्पिक) जावा रनटाइम विकल्पों का इस्तेमाल किया जब "शुरू", "बंद करो" या "रन" आदेश निष्पादित किया जाता है

और

[CATALINA_OPTS]: (वैकल्पिक) जावा रनटाइम विकल्पों इस्तेमाल किया जब "शुरू" या "चलाने" कमांड निष्पादित किया जाता है

तो दो अलग-अलग चर क्यों हैं? और क्या अंतर है?

सबसे पहले, एथर वेरिएबल में निर्दिष्ट कुछ भी, टोमकैट - "स्टार्ट" या "रन" कमांड शुरू करने वाले कमांड को पास किया जाता है - लेकिन केवल JAVA_OPTS में सेट मान "स्टॉप" कमांड पर पास किए जाते हैं। यह संभवतः टॉमकैट अभ्यास में कैसे चलता है इस पर कोई फर्क नहीं पड़ता क्योंकि यह केवल रन के अंत को प्रभावित करता है, शुरुआत में नहीं।

दूसरा अंतर अधिक सूक्ष्म है। अन्य एप्लिकेशन JAVA_OPTS का भी उपयोग कर सकते हैं, लेकिन केवल टोमकैट CATALINA_OPTS का उपयोग करेगा। इसलिए यदि आप केवल टॉमकैट द्वारा उपयोग के लिए पर्यावरण चर सेट कर रहे हैं, तो आपको सबसे अच्छा सलाह दी जाएगी कि आप CATALINA_OPTS का उपयोग करें, जबकि यदि आप अन्य जावा अनुप्रयोगों द्वारा उपयोग किए जाने वाले पर्यावरण चर सेट कर रहे हैं, जैसे कि जेबॉस द्वारा, आपको रखना चाहिए JAVA_OPTS में आपकी सेटिंग्स।

स्रोत:CATALINA_OPTS v JAVA_OPTS - What is the difference?

+3

यह भी रूप में "मैं हर JVM के लिए कुछ की जरूरत है" या "मैं बिल्ला स्टार्टअप के लिए कुछ की जरूरत है" उनमें से सोचने के लिए उपयोगी है। मान लीजिए कि हम एक वितरित वातावरण पर जेएमएक्स निगरानी स्थापित करने की कोशिश कर रहे हैं और हम फ़ायरवॉल के पीछे हैं - हमें दो आरएमआई बंदरगाहों की आवश्यकता होगी ताकि इस प्रकार * स्टार्टअप * तर्क के रूप में Djava.rmi.server स्थापित किया जा सके। क्या हम इसे एक JAVA_OPT के रूप में करते हैं, एक शटडाउन एक नया जेवीएम निकालता है जो जेएमएक्स बंदरगाहों को सुनने की कोशिश करता है, इसे पकड़ नहीं सकता क्योंकि टॉमकैट पहले से ही यह सुन रहा है और JVM पहले से ही उपयोग में आने के बारे में एक त्रुटि के साथ रुक जाएगा - नहीं हम क्या चाहते हैं यह है? –

+0

आपको बहुत बहुत धन्यवाद! – Serzhas

संबंधित मुद्दे