मैं अपने जावा एप्लिकेशन पर jstack कमांड चलाने की कोशिश कर रहा हूं। एप्लिकेशन ज़बॉस के अंदर चल रहा है, लगभग 4 जीबी मेमोरी पर कब्जा कर रहा है। ओएस विंडोज सर्वर 2003 मानक संस्करण है। हर बार मुझे एक त्रुटि मिलती है "इस कमांड को संसाधित करने के लिए पर्याप्त भंडारण उपलब्ध नहीं है"। पर्याप्त राम, 16 जीबी, और डिस्क स्थान है। तो, कोई विचार?जेस्टैक और पर्याप्त कमांड इस कमांड को संसाधित करने के लिए उपलब्ध नहीं है
उत्तर
मैं Win2008r2 पर हाल ही में इस में भाग गया और सोचा था कि मैं अपने समाधान का हिस्सा था, क्योंकि यह कुछ समय लिया यह पता लगाने की। Rob's comment about psexec -s यह मेरे लिए क्या किया है।
यह Vista पर प्रतीत होता है कि और बाद में jstack उपयोगकर्ता प्रसंग की वजह से सेवाओं के खिलाफ काम नहीं करता। इसमें स्मृति के साथ कुछ लेना देना नहीं है। मुझे संदेह है कि इसी कारण लोगों ने 2003 में रिमोट डेस्कटॉप के माध्यम से इस समस्या को देखा है, जब तक कि आप mstsc पर/admin या/console स्विच का उपयोग न करें। विस्टा के रूप में कड़ी सुरक्षा शायद यह तोड़ दिया है।
एक cmd खिड़की से मेरे ऐप शुरू ठीक काम किया, लेकिन है कि मुझे डिबग हमारे मानक स्थापित मदद नहीं करता है। जावा डीबग पोर्ट (विजुअलVM, ग्रहण या किसी भी जावा डीबगर के लिए) को सक्षम करने के लिए एक ऐप को पुनरारंभ करने की आवश्यकता होती है, इसलिए यदि आप पहले से डिबगिंग सक्षम नहीं हैं तो आप उस स्थिति को खो देते हैं जिसे आप शायद कैप्चर करने का प्रयास कर रहे हैं। मेरे उपयोगकर्ता प्रमाण-पत्रों के तहत सेवा शुरू करना काम नहीं किया - मैं उस पर थोड़ा आश्चर्यचकित था। लेकिन psexec -s सिस्टम संदर्भ से jstack चलाता है, जो एक आकर्षण की तरह काम किया। ओह, और यदि यूएसी चालू है, तो आपको एक उन्नत cmd प्रॉम्प्ट से psexec चलाने की आवश्यकता होगी।
यह मेरे लिए बहुत अच्छा काम करता है। –
ditto। मेरा दिन –
सहेजने के लिए धन्यवाद यह Win 2003 के साथ बहुत अच्छा काम कर रहा है। धन्यवाद – dAm2K
हम भी एक मामूली आवेदन (1GB) के साथ एक Windows मशीन पर JStack चल समस्या थी। हम Netbeans का उपयोग कर हमारे ढेर और ढेर विश्लेषण कर समाप्त हो गया। यह डंप फ़ाइलों की पार्सिंग के साथ बहुत बेहतर लग रहा था। YMMV।
नेटबीन्स को प्रोफाइलिंग करने का प्रयास करें - यह बहुत अच्छा है। ध्यान दें कि विजुअलVM एक कटडाउन एनबी प्रोफाइलर है और 6u7 के साथ आता है।
अतीत में मैं इस देखा है जब JVM
पहले विंडोज 2003 को के रूप में एक Windows सेवा चल रहा है, अगर यह एक issue with the TMP directory है देखने के लिए जाँच।
दूसरा, jstack (या JConsole जैसे अन्य उपयोगिताओं) जब तक यह एक ही सत्र में चल रहा है स्थानीय प्रक्रिया से कनेक्ट नहीं होगा। यदि सेवा किसी विशिष्ट उपयोगकर्ता के रूप में चल रही है, तो आप उसी सत्र में लॉग इन करके कनेक्ट करने में सक्षम हो सकते हैं। यदि आप रिमोट डेस्कटॉप का उपयोग कर रहे हैं, तो आप "mstsc/admin" (कंसोल/कंसोल के लिए इस्तेमाल) का उपयोग करके कनेक्ट कर सकते हैं और फिर जेस्टैक चलाने की कोशिश कर सकते हैं। यह सुनिश्चित करने के लिए निश्चित रूप से जांचें कि टीएमपी निर्देशिका ठीक से सेट की गई है अगर यह समस्या को ठीक नहीं करती है।
सेवा LocalSystem के रूप में चल रहा है, उपरोक्त प्रक्रिया शायद ज्यादा मदद नहीं करेगा। मुझे नहीं पता कि स्थानीय सिस्टम के समान सत्र में लॉग इन करने का कोई तरीका है या नहीं।
कुछ अन्य विकल्पों दूरदराज के निगरानी के लिए प्रक्रिया की स्थापना की और एक पोर्ट पर कनेक्ट करने के लिए (सर्वर स्वयं या किसी अन्य मशीन से) jvisualvm का उपयोग करें और एक धागा डंप करने के लिए हो सकता है।
समाधान अगर यह स्थानीय सिस्टम के रूप में चलता है: लॉगिन खाते का उपयोग करके "mstsc/admin" का उपयोग करके कनेक्ट करें (यह सुनिश्चित नहीं है कि मेरे पास सटीक अनुमतियां हैं, मेरा व्यवस्थापक प्रशासक समूह में था) और Sysinternals psexec टूल का उपयोग निम्नानुसार करें: psexec -एस "% JAVA_HOME% \ bin \ jstack.exe" पीआईडी> stack.txt जहां पीआईडी आपकी प्रक्रिया की प्रक्रिया आईडी है। आपको अपने विशिष्ट पर्यावरण के आधार पर अपने जेडीके के वास्तविक पथ को भी प्रतिस्थापित करना पड़ सकता है। –
यह अंतर्निहित ओ/एस से एक त्रुटि संदेश है। फेंक दिया गया अपवाद पकड़ने के अलावा आप इस कोड से निपटने के लिए बहुत कुछ नहीं कर सकते हैं। इतना सीमित होने के लिए विंडोज़ को बू।
psexec -s jstack PID >> c:\jstack.log
पूरी तरह से उसी मशीन पर काम करता है। पहली बार इसमें कुछ समय लगा लेकिन फिर से मैंने फ़ाइल विकल्प पर रीडायरेक्ट के साथ निष्पादित किया, यह कुछ सेकंड में पूरा हुआ।
- 1. इस ऑपरेशन को पूरा करने के लिए पर्याप्त संग्रहण उपलब्ध नहीं है
- 2. नए खोल में बैश कमांड चलाएं और इस कमांड को
- 3. यूनिक्स `टाइम` कमांड बेंचमार्क के लिए पर्याप्त सटीक है?
- 4. कमांड लाइन
- 5. क्या आर में कमांड लाइन विकल्प को संसाधित करने के लिए कोई पैकेज है?
- 6. सिस्टम कमांड के लिए
- 7. PHP पीडीओ एक्सटेंशन उपलब्ध नहीं है कमांड लाइन
- 8. ffmpeg कमांड ऑडियो और छवियों को गठबंधन करने के लिए
- 9. जावा फ़ाइल के लिए उपलब्ध कोई कमांड लाइन प्रारूप उपकरण?
- 10. एएसपी.NET इस कर्ल कमांड के बराबर
- 11. एकाधिक लूप में कमांड कमांड: फ़ाइल में एक स्ट्रिंग को प्रतिबिंबित करना और फिर कमांड विंडो
- 12. रेडिस कमांड पब/उप के लिए सभी उपलब्ध चैनल प्राप्त करने के लिए?
- 13. कमांड लाइन
- 14. घटनाओं को संसाधित करने के लिए डिज़ाइन पैटर्न
- 15. टी को कम करने के लिए कमांड आउटपुट को दबाएं लेकिन कमांड
- 16. तालिका कॉपी करने के लिए एसक्यूएल कमांड
- 17. निर्देशिका स्थानांतरित करने के लिए लिनक्स कमांड
- 18. प्रारंभ करें कमांड विंडोज़ और रन कमांड
- 19. django कमांड कमांड मॉड्यूल
- 20. कंसोल के आवेदन को बंद करने के लिए कमांड?
- 21. कमांड नहीं मिला: पूर्ण
- 22. contenttypes.contenttype इस माइग्रेशन में उपलब्ध नहीं है
- 23. आरयू कमांड नहीं चला सकता!
- 24. कमांड और घटनाओं के लिए नामकरण सम्मेलन
- 25. कैप कमांड नहीं मिला
- 26. इस बैश कमांड के बराबर पावरशेल क्या है?
- 27. बैश कमांड केवल कुछ फाइलों को स्थानांतरित करने के लिए?
- 28. कॉलव्स और डीएफ कमांड
- 29. इनलाइन कमांड के लिए bash
- 30. यांक कमांड नहीं मिला
यह एक विंडोज़ त्रुटि संदेश प्रतीत होता है। –
मेरे पास यह टोमकैट है जो 280 एमबी ले रहा है। – ripper234
इस प्रश्न को भी देखा - http://stackoverflow.com/questions/222108/getting-the-java-thread-id-and-stack-trace-of-run-away-java-thread यह ' jconsole के रूप में मदद नहीं करता है आवेदन। – ripper234