2012-12-03 46 views
7

मैक ओएसएक्स पर्वत शेर पर मुझे टॉमई 1.5.1 और विजुअलVM 1.7.0_09 के साथ एक बहुत ही अजीब समस्या का सामना करना पड़ा।विजुअलVM स्थानीय टॉमई से बहुत धीमी गति से कनेक्ट हो जाता है और एक हीप डंप नहीं ले सकता

टॉमईई ने कुछ वेबैप लोड करने के बाद। VisualVM का उपयोग स्थानीय टॉमई प्रक्रिया को लंबे समय तक कनेक्ट करें, और कनेक्ट होने के बाद जीसी बटन अक्षम है और मैं एक ढेर डंप नहीं ले सकता। VisualVM 'लॉग कुछ त्रुटि दिखाता है।

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded 
    at sun.tools.attach.BsdVirtualMachine.<init>(BsdVirtualMachine.java:90) 
    at sun.tools.attach.BsdAttachProvider.attachVirtualMachine(BsdAttachProvider.java:63) 
    at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:213) 
    at com.sun.tools.visualvm.attach.AttachModelImpl.getVirtualMachine(AttachModelImpl.java:104) 
Caused: java.io.IOException: Unable to open socket file: target process not responding or HotSpot VM not loaded 

tmp फ़ोल्डर में नहीं बनाया .java_pid<pid> फ़ाइल।

लेकिन अगर मैं इसे शुरू करने के बाद और किसी भी वेबपैप्स को लोड करने से पहले टॉमईई कनेक्ट करने के लिए विजुअलVM का उपयोग करता हूं, तो .java_pid<pid> फ़ाइल बनाई जाएगी, और विजुअलVM तुरंत उससे कनेक्ट होगा, और हीप डंप काम करेगा।

एक और कामकाज catalina.sh को क्लासपाथ में टूल जोड़ने के लिए संशोधित करता है और ओपेनेज जावावांट को हटा देता है, फिर टॉमई पूरी तरह से ठीक काम करने के बाद कनेक्ट होता है।

उबंटू मशीन पर पुन: पेश नहीं किया जा सकता है।

+0

क्या आप जेएमएस से जुड़ रहे हैं? जेएमएस के साथ प्रयास करें। –

+0

jconsole आज़माएं और देखें कि यह कैसे काम करता है – javahaxxor

उत्तर

0

शायद जेवीएम स्मृति से बाहर हो रहा है। मैंने इसे कई बार देखा है। आज़माएं:

  1. increasing memory limits
  2. जेवीएम को विजुअलVM कनेक्ट करें।
  3. अपने आवेदन को तैनात करें।
  4. और समस्या का निदान करने के लिए मेमोरी नमूने, प्रोफाइलर या ढेर डंप चलाएं। आपके पास शायद स्मृति रिसाव है। यदि आपके पास स्मृति समस्याएं हैं तो हीप डंप जाने का सबसे सुरक्षित तरीका है। आप take heap dump using command line भी कर सकते हैं और बाद में VisualVM में इसका विश्लेषण कर सकते हैं।

यह भी सुनिश्चित करें कि आपका सिस्टम स्मृति से बाहर नहीं चल रहा है।