2014-07-17 7 views
12

को एकीकृत करना चाहते हैं -XX:+HeapDumpOnOutOfMemoryError का उपयोग करते समय JVM निर्दिष्ट पथ के नीचे पहले से ही डंप फ़ाइल होने पर हीप डंप को ओवरराइट नहीं करेगा। मैं एक गैर-डिफ़ॉल्ट स्थान में एकाधिक ढेर डंप करने में सक्षम होना चाहता हूं, और इसे अनुमति देने के लिए ढेर डंप पथ में पिड का उपयोग करने की योजना बना रहा था।-XX: HeapDumpPath विकल्प का उपयोग करना, लेकिन प्रक्रिया आईडी

हालांकि, जब मैं बहुत की तरह तर्क निर्दिष्ट करने के लिए करने की कोशिश की:

-XX:HeapDumpPath=some/heapdump/path/heapdump-%p.hprof 

और फिर एक ढेर डंप बनाया गया, मैं %p मिला है और फ़ाइल के नाम में वास्तविक पीआईडी ​​नहीं। हालांकि, %p का उपयोग -XX:OnOutOfMemoryError विकल्प के साथ काम करता प्रतीत होता है। क्या कोई अन्य वाक्यविन्यास है जिसे मैं -XX:HeapDumpPath= के लिए उपयोग करना चाहता हूं?

उत्तर

15

यह फ़ाइल या निर्देशिका का पथ हो सकता है। यदि आपके पास निर्देशिका के लिए पथ है, तो जेनरेट किए गए फ़ाइल नाम में डिफ़ॉल्ट रूप से इसमें पिड होगा।

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

0

आप जो जावा आप उपयोग जोड़ना चाहिए। ये विकल्प JVM विक्रेता (आईबीएम, ओरेकल, आदि) पर निर्भर करता है

OnOutOfMemoryError डंप करने के लिए कहता है। हीपडंपपैथ कहता है कि डंप डालने के लिए कहां है। मुझे लगता है कि हेपडम्पपाथ का उपयोग पहले चालू हो जाता है, लेकिन मैं स्पष्टता के लिए दोनों का उपयोग करने की सलाह देता हूं।

मूल प्रश्न के बारे में, डंप फ़ाइल नाम में पिड का उपयोग करना एक अच्छा अभ्यास है। यह विशेष रूप से अलग-अलग मुद्दों/पुनरारंभ के बाद क्या होता है, इसका विश्लेषण और विश्लेषण करने में सहायता कर सकता है।

सटीक वाक्यविन्यास here समझाया गया है।

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