2009-04-08 13 views
5

मुझे जावा वेब ऐप के स्मृति उपयोग को दूरस्थ रूप से देखने के लिए नेटबीन्स 6.5 प्रोफाइलर का उपयोग करने में समस्या हो रही है।नेटबीन्स 6.5 प्रोफाइलर का उपयोग रिमोट वेब ऐप को प्रोफाइल करने के लिए?

मैं tutorial में चरणों का पालन किया है, और एक बिलाव उदाहरण अनुकूलित करने के लिए रूपरेखा एजेंटों के साथ शुरू करने में सक्षम था। मैं Netbeans प्रोफाइलर को चल रहे सर्वर से भी संलग्न कर सकता हूं: कुछ सेकंड के लिए, प्रोफाइलर सर्वर के स्मृति उपयोग के साथ ग्राफ दिखाता है।

हालांकि, मैं अपने तैनात वेब अनुप्रयोग चलाने के लिए सक्षम नहीं हूँ। कुछ सेकंड के बाद, सर्वर सुन्दरता से बंद हो जाता है जैसे कि यह बस अपने विधि मुख्य (शायद वेब सर्वर के अपेक्षित व्यवहार) के नीचे पहुंच गया हो।

इन सेकंड के दौरान सर्वर ज़िम्मेदार नहीं है, और मैं इसे में एक वेब अनुप्रयोग से कनेक्ट नहीं कर सकते हैं, वे बस तैनात नहीं कर रहे हैं।

मैं सिर्फ यह रूपरेखा के लिए एक नया Netbeans परियोजना में मेरे ऐप आयात करने के लिए नहीं करना चाहती। रिमोट ऐप को इसके स्रोत तक पहुंच के बिना प्रोफाइल करना संभव है, है ना? आखिरकार, कुछ सेकंड के लिए, सर्वर चल रहा था और प्रोफाइल किया जा रहा था।

मैं नेटबीन्स 6.5 में एक वेब एप्लिकेशन प्रोफाइल करना चाहता हूं। मैं क्या भूल गया?

+0

आप सर्वर लॉग पढ़ा था? – Sergey

+0

क्या आप अपने वेबपैप को तैनात किए बिना टॉमकैट को स्वयं प्रोफाइल/मॉनिटर करने में सक्षम हैं, बस "खाली" टोमकैट चला रहे हैं? –

+0

वही बात मेरे साथ हो रही है। हो सकता है कि यह उपयोगी होगा यदि हम कुछ संस्करण संख्याएं डाल रहे हैं जो हम चल रहे हैं ताकि लोग प्रश्न खोज सकें? मैं जावा 5 और जावा 6 दोनों पर चलने के साथ, टोमकैट 5.5.x में तैनात करने की कोशिश कर रहा था। नेटबीन्स का मेरा संस्करण 6.5 दूसरी तरफ, नेटबीन में अपनी परियोजना आयात कर रहा था और फिर प्रोफाइलर चला रहा था पूरी तरह से काम किया। @ सेर्गे दुर्भाग्यवश किसी भी टोमकैट लॉग – jklp

उत्तर

0

पूरे वेब सर्वर की रूपरेखा रहे हैं या आप केवल अपने पैकेज प्रोफ़ाइल रूपरेखा फिल्टर का उपयोग करें? प्रोफाइलर और ऐप सर्वर के बीच बातचीत को कम करने से यह हल हो सकता है।

1

आप VisualVM टूल का भी उपयोग कर सकते हैं। नीचे दिए गए चरणों का पालन करें।

1) jstatd (jstat राक्षस प्रक्रिया) चलाएं (अपनी रिमोट मशीन पर चलें जहां एप्लिकेशन चल रहा है) jstatd -p 1098 -J-Djava.security.policy = tools.policy (अप्रयुक्त बंदरगाह निर्दिष्ट करें) यदि tools.policy फाइल निर्दिष्ट नहीं है इसे निम्नानुसार बनाएं।

tools.policy 
grant codebase "file:${java.home}/../lib/tools.jar" { 

अनुमति java.security.AllPermission; };

2) अपने JVM को शुरू करने से पहले निम्न गुणों को भी निर्दिष्ट करें।

#JMX property 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote=true" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.port=10992" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.authenticate=false" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.ssl=false" 

3) स्थानीय मशीन पर दृश्य वीएम शुरू करें। ए। रिमोट टैब के तहत रिमोट नोड जोड़ें। बी। कुछ मिनटों के लिए प्रतीक्षा करें, आप देखेंगे कि सभी कोर एप्लिकेशन उदाहरण रिमोट टैब के नीचे दिखाई देंगे। सी। रिमोट नोड पर क्लिक करें, फिर जेएमएक्स कनेक्शन जोड़ें नोड निर्दिष्ट करें: बंदरगाह (बिंदु 2 में ऊपर उल्लिखित पोर्ट) डी। कुछ सेकंड के लिए प्रतीक्षा करें आप रिमोट नोड के तहत जेएमएक्स कनेक्शन देखेंगे।

4) कुछ सेकंड के बाद आप दूरस्थ नोड के अंतर्गत प्रदर्शित होने के नए टैब देखेंगे। Remote_node पर डबल क्लिक करें: 10 992 आप दाईं ओर प्रोफ़ाइल तालिका देखेंगे। आप मेमोरी, सीपीयू, थ्रेड इत्यादि विवरण देख सकते हैं ..

0

अपने जेवीएम संस्करण की जांच करें। नेटबीन्स द्वारा उपयोग किया जाने वाला संस्करण टोमकैट में समान होना चाहिए। डिफ़ॉल्ट बंदरगाहों का उपयोग करें। यदि आपने किसी पोर्ट को बदल दिया है तो सुनिश्चित करें कि वे 1024 से ऊपर हैं। टॉमकैट में उदाहरण एप्लिकेशन को प्रोफ़ाइल करने का प्रयास करें (अन्य सभी एप्लिकेशन हटाएं)। यदि यह सफलतापूर्वक चल रहा है तो इसका मतलब है कि एक स्मृति बाधा है। प्रोफाइलिंग के लिए बड़ी मेमोरी की आवश्यकता है। tomcat के लिए xx1024m -xmx1024m का उपयोग करें। यदि हर चीज असफल हो जाती है। jdk6 और tomcat 6 पर स्विच करने के बारे में सोचें। कई परीक्षणों के बाद मैंने पाया कि jdk5 और tomcat5 में बहुत सी सीमाएं हैं। tomcat6 और jdk6 पर स्विच करने से मेरे लिए समस्या हल हो गई।

, आईबीएम JDK आदि .. NetBeans के साथ रूपरेखा jrockit काम नहीं करता है

--kiran.kumar