दिलचस्प पोस्ट
एक विशिष्ट स्क्रीन में दोहरी मॉनिटर कॉन्फ़िगरेशन में JFrame दिखाएं Index.php htaccess पर सभी को रीडायरेक्ट करें लोडिंग के साथ jqgrid reloadGrid को सही पर सेट करें सिंक्रनाइज़ एक एएसआईएनसी ऑपरेशन के लिए इंतजार कर रहा है, और क्यों रुको () प्रोग्राम को फ्रीज करता है यहाँ क्या सभी पायथन कक्षाएं ऑब्जेक्ट को बढ़ाती हैं? Cout के साथ फ़ंक्शन पॉइंटर्स कैसे मुद्रित करें? विंडोज पर एक विशेष फ़ाइल प्रकार खोलने के लिए डिफ़ॉल्ट अनुप्रयोग ढूँढना परीक्षणों के लिए एक साफ काम करने वाले पेड़ को पाने के लिए मैं पूर्व-प्रतिबद्ध हुकों में ठीक से कैसे जीआईटी छिपाना / पॉप कर सकता हूं? ओरेकल में उपयोगकर्ता और एक स्कीमा के बीच का अंतर? जेसन अनक्यूट सिंटेक्स त्रुटि: अप्रत्याशित टोकन: Google मानचित्र एंड्रॉइड एपीआई v2 – इंटरैक्टिव इन्फोविंडो (जैसे मूल एंड्रॉइड गूगल मैप्स में) शेल में, "2> और 1" क्या मतलब है? स्विफ्ट में एक वैकल्पिक मूल्य क्या है? Asp.net MVC3 पर कस्टम त्रुटि पृष्ठों हमें ग्लूबल और स्थानीय रूप से स्थापित करने की आवश्यकता क्यों है?

क्या किसी को कभी भी काम करने के लिए एक दूरस्थ जेएमएक्स JConsole मिला है?

ऐसा लगता है कि मुझे यह अतीत में काम करने के लिए कभी नहीं मिला है। वर्तमान में, मुझे पता है कि यह काम नहीं करता है

लेकिन हम अपनी जावा प्रक्रिया शुरू करते हैं:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6002 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

मैं बंदरगाह पर टेलनेट कर सकता हूँ, और "कुछ वहाँ है" (अर्थात, अगर मैं प्रक्रिया शुरू नहीं करता है, कोई जवाब नहीं देता है, लेकिन यदि मैं करता हूं, तो यह करता है), लेकिन मैं जेसीनसोल आईपी को भरने के लिए काम नहीं कर सकता और बंदरगाह

ऐसा लगता है जैसे यह बहुत सरल होना चाहिए, लेकिन कोई त्रुटि नहीं, कोई शोर नहीं, कुछ भी नहीं। बस काम नहीं करता

किसी को भी इस के लिए गर्म टिप पता है?

वेब के समाधान से एकत्रित समाधान "क्या किसी को कभी भी काम करने के लिए एक दूरस्थ जेएमएक्स JConsole मिला है?"

मेरे पास इसके लिए एक समाधान है:

यदि आपकी जावा प्रक्रिया फ़ायरवॉल के पीछे लिनक्स पर चल रही है और आप अपने जावा मशीन के जेएमएक्स पोर्ट से कनेक्ट करने के लिए अपने स्थानीय मशीन पर विंडोज पर जेसीनसोल / जावा विज़ुअल / जावा मिशन कंट्रोल शुरू करना चाहते हैं।

आपको SSH लॉगइन के माध्यम से अपने लिनक्स मशीन तक पहुंच की आवश्यकता है। सभी संचार को एसएसएच कनेक्शन से सुरंग बनाया जाएगा।

युक्ति: अगर कोई फायरवाल है या नहीं, तो यह समाधान कोई फर्क नहीं पड़ता

नुकसान: हर बार जब आप अपनी जावा प्रक्रिया को पुनरारंभ करते हैं, तो आपको 4 से 9 के सभी चरणों को फिर से करना होगा।

1. आपको अपनी विंडोज मशीन के लिए पुटी-सूट की आवश्यकता यहां से है:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

कम से कम putty.exe

2. अपने लिनक्स मशीन पर एक मुफ्त पोर्ट को परिभाषित करें:

 <jmx-remote-port> 

उदाहरण:

 jmx-remote-port = 15666 

3. लिनक्स मशीन पर जावा प्रक्रिया में तर्क जोड़ें

यह ठीक इसी तरह किया जाना चाहिए। यदि इसके नीचे किया गया है, तो यह फ़ायरवॉल के पीछे लिनक्स मशीनों के लिए काम करता है (यह -Djava.rmi.server.hostname=localhost-Djava.rmi.server.hostname=localhost तर्क के कारण काम करता है)।

 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=<jmx-remote-port> -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=localhost 

उदाहरण:

 java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=15666 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=localhost ch.sushicutta.jmxremote.Main 

4. अपने जावा प्रक्रिया की प्रक्रिया-आईडी प्राप्त करें

 ps -ef | grep <java-processname> result ---> <process-id> 

उदाहरण:

 ps -ef | grep ch.sushicutta.jmxremote.Main result ---> 24321 

5. RMIServer stubs डाउनलोड के लिए मनमानी पोर्ट खोजें

जावा प्रक्रिया लिनक्स मशीन पर एक नया टीसीपी पोर्ट खोलती है, जहां डाउनलोड के लिए आरएमआई सर्वर-स्टेब उपलब्ध होगा। जावा वर्चुअल मशीन से कनेक्शन प्राप्त करने के लिए एसएसएच टनल के माध्यम से यह पोर्ट भी उपलब्ध होना चाहिए।

netstat -lp साथ यह पोर्ट भी पाया जा सकता है lsof -i देता संकेत देता है कि पोर्ट क्या खोला गया है जावा प्रक्रिया के रूप में

नोट: जावा प्रक्रिया शुरू होने पर यह पोर्ट हमेशा बदलता रहता है।

 netstat -lp | grep <process-id> tcp 0 0 *:<jmx-remote-port> *:* LISTEN 24321/java tcp 0 0 *:<rmi-server-port> *:* LISTEN 24321/java result ---> <rmi-server-port> 

उदाहरण:

 netstat -lp | grep 24321 tcp 0 0 *:15666 *:* LISTEN 24321/java tcp 0 0 *:37123 *:* LISTEN 24321/java result ---> 37123 

6. पुटीन के साथ अपनी विंडोज मशीन से दो एसएसएच-टनल को सक्षम करें

 Source port: <jmx-remote-port> Destination: localhost:<jmx-remote-port> [x] Local [x] Auto Source port: <rmi-server-port> Destination: localhost:<rmi-server-port> [x] Local [x] Auto 

उदाहरण:

 Source port: 15666 Destination: localhost:15666 [x] Local [x] Auto Source port: 37123 Destination: localhost:37123 [x] Local [x] Auto 

पुटीटी के माध्यम से एक एसएसएल सुरंग खोलने के लिए सेटिंग्स

7. इस एसएसएच टनल के साथ पुटीटी के साथ अपने लिनक्स मशीन में प्रवेश करें सक्षम।

पोटीन सत्र को खोलें।

जब आप लॉग इन हो जाते हैं, पोटीआई सभी टीसीपी कनेक्शनों को एसएसएच पोर्ट 22 पर लिनक्स मशीन से सुरक्षित करेगा।

JMX पोर्ट:

 Windows machine: localhost:15666 >>> SSH >>> linux machine: localhost:15666 

RMIServer-स्टब पोर्ट:

 Windows Machine: localhost:37123 >>> SSH >>> linux machine: localhost:37123 

8. निम्न यूआरएल का उपयोग करके अपनी जावा प्रक्रिया से जुड़ने के लिए जेकोनोल / जावा विज़ुअल / जावा मिशन कंट्रोल प्रारंभ करें

यह काम करता है, JConsole / Java VisualVM / Java मिशन कंट्रोल के कारण आपको लगता है कि आप अपने स्थानीय विंडोज मशीन पर एक पोर्ट से कनेक्ट करते हैं। लेकिन पोटीटी अपने पेलोड पोर्ट 15666 को अपने लिनक्स मशीन में भेजते हैं।

लिनक्स मशीन पर पहले जावा प्रोबेशन उत्तर देता है और आरएमआईएसर पोर्ट को वापस भेजता है। इस उदाहरण में 37123

तब जेकोनोल / जावा विज़ुअल एम एम / जावा मिशन कंट्रोल यह सोचता है कि यह स्थानीयहोस्ट से जोड़ता है: 37123 और पोटीनी पूरे पेलोड को आगे लिनक्स मशीन में भेज देगी

जावा प्रक्रिया जवाब और कनेक्शन खुला है।

 [x] Remote Process: service:jmx:rmi:///jndi/rmi://localhost:<jndi-remote-port>/jmxrmi 

उदाहरण:

 [x] Remote Process: service:jmx:rmi:///jndi/rmi://localhost:15666/jmxrmi 

Jmx सेवा url के माध्यम से कनेक्ट करें

9. आनंद लें # 8-]

जोड़ना -Djava.rmi.server.hostname='<host ip>' ने मेरे लिए इस समस्या का समाधान किया

जावा 8 के साथ की कोशिश की

यह समाधान फ़ायरवॉल के साथ भी अच्छी तरह काम करता है

1. इसे अपने जावा स्टार्टअप स्क्रिप्ट पर दूरस्थ होस्ट पर जोड़ें:

 -Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.rmi.port=1616 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=localhost 

2. अपने कंप्यूटर पर यह निष्पादित करें।

  • विंडोज प्रयोक्ता :

    putty.exe -ssh user@remote-host -L 1616:remote-host:1616

  • लिनक्स और मैक उपयोगकर्ता :

    ssh user@remote-host -L 1616:remote-host:1616

3. अपने कंप्यूटर पर jconsole प्रारंभ करें

 jconsole localhost:1616 

4. मज़ा लो!

PS: चरण 2 के दौरान, ssh और -L का उपयोग करके आप निर्दिष्ट करते हैं कि स्थानीय (क्लाइंट) होस्ट पर पोर्ट 1616 को दूरस्थ पक्ष में अग्रेषित किया जाना चाहिए यह एक एसएसटी सुरंग है और फायरवॉल या विभिन्न नेटवर्क समस्याओं से बचा जाता है।

आप शायद एक फ़ायरवॉल के साथ एक समस्या का अनुभव कर रहे हैं। 'समस्या' यह है कि आप निर्दिष्ट पोर्ट केवल एकमात्र बंदरगाह नहीं है, यह 1 या शायद 2 अन्य बंदरगाहों को आरएमआई के लिए उपयोग करता है, और ये संभवतः एक फ़ायरवॉल द्वारा अवरोधित हैं।

यदि आप डिफ़ॉल्ट आरएमआई कॉन्फ़िगरेशन का उपयोग करते हैं, तो अतिरिक्त बंदरगाहों में से एक को सामने नहीं आता जाएगा, इसलिए आपको पोर्ट की एक बड़ी श्रेणी को खोलना होगा – जो कि सर्वर व्यवस्थापक को नहीं लुभा सकता है

एक समाधान है जिसमें कई बंदरगाहों को खोलने की ज़रूरत नहीं है, हालांकि, मैंने इसे संयुक्त स्रोत स्निपेट्स और सुझावों का उपयोग करने से काम किया है

http://forums.sun.com/thread.jspa?threadID=5267091 – लिंक अब और काम नहीं करता है

http://blogs.oracle.com/jmxetc/entry/connecting_through_firewall_using_jmx

http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html

यह एक एसएसटी सुरंग सेटअप करने के लिए भी संभव है और फिर भी इसे काम करने के लिए मिलें 🙂

पिछले कुछ दिनों से मेरी Google-fu परीक्षा में डाल देने के बाद, मैं आखिरकार इसे स्टैक ओवरफ्लो और इस पृष्ठ से जवाब संकलित करने के बाद काम करने में सक्षम था http://help.boomi.com/atomsphere/GUID-F787998C- 53C8-4662-एए06-8 बी 1 डी 32 एफ 9 डी 54 बी ।

डेल बुमी पृष्ठ से पोस्ट करना:

 To Enable Remote JMX on an Atom If you want to monitor the status of an Atom, you need to turn on Remote JMX (Java Management Extensions) for the Atom. Use a text editor to open the <atom_installation_directory>\bin\atom.vmoptions file. Add the following lines to the file: -Dcom.sun.management.jmxremote.port=5002 -Dcom.sun.management.jmxremote.rmi.port=5002 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

एक पंक्ति जो मैंने किसी भी स्टैक अतिप्रवाह उत्तर कवर को नहीं देखा है

 -Dcom.sun.management.jmxremote.rmi.port=5002 

मेरे मामले में, मैं काक्फा मेट्रिक्स को पुनर्प्राप्त करने का प्रयास कर रहा था, इसलिए मैंने ऊपर-विकल्प को -Dcom.sun.management.jmxremote.port मान से मिलान करने के लिए बस बदल दिया। इसलिए, किसी भी तरह के प्रमाणीकरण के बिना, न्यूनतम न्यूनतम विन्यास इस तरह दिखना चाहिए:

 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=(jmx remote port) -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.rmi.port=(jmx remote port) -Djava.rmi.server.hostname=(CNAME|IP Address) 

क्या आप लिनक्स पर चल रहे हैं? शायद प्रबंधन एजेंट स्थानीय होस्ट के लिए बाध्य है:

http://java.sun.com/j2se/1.5.0/docs/guide/management/faq.html#linux1

प्रो टिप:

आरएमआई पोर्ट मनमानी पोर्टनर की ओर खुलता है अगर आपके पास फ़ायरवॉल है और बंदरगाहों 1024-65535 (या वीपीएन का उपयोग करें) को खोलना नहीं चाहते हैं, तो आपको निम्न कार्य करने की आवश्यकता है।

आपको आरआईआई रजिस्ट्री और जेएमएक्स / आरएमआई सर्वर बंदरगाहों को ठीक करने की जरूरत है (जैसा कि एक ज्ञात संख्या होने के नाते)। आप इसे जार-फ़ाइल डालकर (catalina-jmx-remote.jar यह अतिरिक्त में है) लिब-डियर में और सर्वर के तहत एक विशेष श्रोता को विन्यस्त करते हुए:

 <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" /> 

(और जेएमएक्स को सक्रिय करने के लिए हमेशा सामान्य झंडे

  -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Djava.rmi.server.hostname=<HOSTNAME> \ 

देखें: http://tomcat.apache.org/tomcat-6.0-doc/config/listeners.html पर जेएमएक्स दूरस्थ जीवनचक्र श्रोता

फिर आप इस भयानक यूआरएल का इस्तेमाल कर सकते हैं:

 service:jmx:rmi://<hostname>:10002/jndi/rmi://<hostname>:10001/jmxrmi 

जांचें कि आपका सर्वर फ़ायरवॉल के पीछे है या नहीं। जेएमएक्स आरएमआई पर आधार है, जो दो बंदरगाह खोलता है जब यह आरंभ होता है। एक रजिस्टर पोर्ट है, डिफ़ॉल्ट 1099 है, और com.sun.management.jmxremote.port विकल्प द्वारा निर्दिष्ट किया जा सकता है। दूसरा डेटा संचार के लिए है, और यादृच्छिक है, जो कि समस्या का कारण है। एक अच्छी खबर यह है कि, जेडीके 6 से, इस यादृच्छिक पोर्ट को com.sun.management.jmxremote.rmi.port विकल्प द्वारा निर्दिष्ट किया जा सकता है।

 export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8991 -Dcom.sun.management.jmxremote.rmi.port=8991 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" 

सुशिक्त्ता के चरण 4-7 को निम्न चरण को चरण 3 में जोड़कर छोड़ दिया जा सकता है:

 -Dcom.sun.management.jmxremote.rmi.port=<same port as jmx-remote-port> 

जैसे पैरामीटर शुरू करने के लिए जोड़ें:

 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=localhost 

पोर्ट फ़ॉरवर्डिंग के लिए, इस का उपयोग करके कनेक्ट करें:

 ssh -L 12345:localhost:12345 <username>@<host> 

यदि आपका मेजबान एक कदम का पत्थर है, तो ऊपर के बाद कदम पत्थर पर निम्नलिखित को चलाकर बस पोर्ट को आगे बढ़ाएं:

 ssh -L 12345:localhost:12345 <username>@<host2> 

ध्यान रखें कि मेजबाननाम = लोकलहोस्ट की आवश्यकता है यह सुनिश्चित करने के लिए कि jmxremote आरएमआई कनेक्शन को सुरंग का उपयोग करने के लिए कह रहा है। अन्यथा यह डायरेक्ट्री से जुड़ने और फ़ायरवॉल को हिट करने का प्रयास कर सकता है।

फ़ायरवॉल के माध्यम से जेएमएक्स प्राप्त करना वास्तव में कठिन है समस्या यह है कि मानक RMI दूसरे रैंडम असाइन किए गए पोर्ट (आरएमआई रजिस्ट्री के बगल में) का उपयोग करता है।

हमारे पास तीन समाधान हैं जो काम करते हैं, लेकिन हर मामले को एक अलग एक की आवश्यकता होती है:

  1. मोजे प्रॉक्सी के साथ एसएसएच सुरंग पर जेएमएक्स, एसएसएच जादू के साथ मानक आरएमआई का उपयोग करता है http://simplygenius.com/2010/08/jconsole-via-socks-ssh-tunnel.html

  2. जेएमएक्स एमपी (मानक आरएमआई के वैकल्पिक), केवल एक निश्चित पोर्ट का उपयोग करता है, लेकिन सर्वर और क्लाइंट पर एक विशेष जार की जरूरत है http://meteatamel.wordpress.com/2012/02/13/jmx-rmi-vs-jmxmp/

  3. जेएमएक्स सर्वर प्रपत्र कोड प्रारंभ करें, वहां मानक RMI का उपयोग करना और एक निश्चित द्वितीय पोर्ट का उपयोग करना संभव है: https://issues.apache.org/bugzilla/show_bug.cgi?id=39055

जब परीक्षण / डीबगिंग / रिमोट जेएमएक्स समस्याओं का निदान, पहले हमेशा एक ही मेजबान पर कनेक्ट करने का प्रयास करें जो कि एमबीईएन्सर (यानी स्थानीयहोस्ट) को नेटवर्क और अन्य गैर-जेएमएक्स विशिष्ट समस्याओं से बाहर निकलना है।

मैं चल रहा हूं JConsole / JVisualVm खिड़कियों पर टूकट चलाने पर लिनक्स रेडहाट ईएस 3 को जोड़ने का।

निम्नलिखित कमांड का उपयोग कर पैकेट फ़िल्टरिंग अक्षम करना मेरे लिए चाल थी:

 /usr/sbin/iptables -I INPUT -s jconsole-host -p tcp --destination-port jmxremote-port -j ACCEPT 

जहां jconsole-host या तो मेजबाननाम या मेजबान पता है जिस पर JConsole चालू होता है और jmxremote-port दूरस्थ प्रबंधन के लिए com.sun.management.jmxremote.port के लिए पोर्ट संख्या सेट है।

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

sushicutta दृष्टिकोण अच्छा है, लेकिन बहुत मैनुअल है क्योंकि आपको हर बार आरएमआई पोर्ट प्राप्त करना है शुक्र है, हम पोर्ट सुरंगों को स्पष्ट रूप से खोलने के बजाय एक सॉक्स प्रॉक्सी का उपयोग करके इसके आसपास काम कर सकते हैं इस दृष्टिकोण का नकारात्मक पक्ष है जेएमएक्स ऐप जिसे आप अपनी मशीन पर चलाते हैं, को प्रॉक्सी का उपयोग करने के लिए कॉन्फ़िगर करने की आवश्यकता होती है। अधिकांश प्रक्रियाएं आप इसे जावा गुणों को जोड़ने से कर सकते हैं, लेकिन, कुछ ऐप्स इस का समर्थन नहीं करते हैं।

कदम:

  1. अपने दूरस्थ जावा सेवा के लिए स्टार्टअप स्क्रिप्ट में जेएमएक्स विकल्प जोड़ें:

     -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 
  2. अपने रिमोट मशीन पर सॉक्स प्रॉक्सी कनेक्शन सेट करें:

     ssh -D 9696 user@remotemachine.com 
  3. SOCKS प्रॉक्सी (लोकलहोस्ट: 9 6 6) का उपयोग करने के लिए अपने स्थानीय जावा निगरानी ऐप को कॉन्फ़िगर करें। नोट: आप कभी-कभी कमांड लाइन से ऐसा कर सकते हैं, अर्थात्:

     jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=9696 

मैं टॉककेट के साथ डॉकर कंटेनरों को चलाने के लिए बूट 2 डॉकर का उपयोग कर रहा हूं और मुझे एक ही समस्या है, इसका समाधान निम्न था:

  • Add -Djava.rmi.server.hostname=192.168.59.103
  • होस्ट और डॉकर कंटेनर में समान जेएमएक्स पोर्ट का उपयोग करें, उदाहरण के लिए: docker run ... -p 9999:9999 ... विभिन्न बंदरगाहों का उपयोग करना काम नहीं करता है

आपको यह भी सुनिश्चित करने की ज़रूरत है कि आपका मशीन नाम उस आईपी को हल करता है जो JMX को बाध्यकारी है; नहीं स्थानीयहोस्ट और न ही 127.0.0.1। मेरे लिए, इसने मेजबानों में प्रवेश करने में मदद की है, जो स्पष्ट रूप से यह परिभाषित करता है।

फ़ायरवॉल के माध्यम से जेएमएक्स प्राप्त करना मुश्किल नहीं है। एक छोटी पकड़ है आपको अपने जेएमएक्स कॉन्फ़िगर पोर्ट यानी दोनों को आगे करना होगा। 9010 और एक गतिशील बंदरगाहों में से एक यह मेरी मशीन पर सुनता था> 30000

ये मेरे लिए काम करने वाले कदम हैं (सर्वर साइड पर फ़ायरवॉल के पीछे डेबियन, मेरे स्थानीय मैक से वीपीएन तक पहुंच गए):

सर्वर आईपी जांचें

 hostname -i 

जेवीएम पैराम्स का उपयोग करें:

 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=[jmx port] -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=[server ip from step 1] 

रन एप्लिकेशन

चलते हुए जावा प्रक्रिया के पाइड को ढूंढें

जेएमएक्स / आरएमआई द्वारा इस्तेमाल किए गए सभी पोर्ट की जांच करें

 netstat -lp | grep [pid from step 4] 

फ़ायरवॉल पर चरण 5 से सभी पोर्ट खोलें

देखा।

योगदान करने के लिए, यह है कि मैंने टोमकैट 6 के लिए CentOS 6.4 पर क्या किया है।

  1. शट डाउन आईपीटीबल सेवा

     service iptables stop 
  2. निम्नलिखित पंक्ति को tomcat6.conf में जोड़ें

     CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8085 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=[host_ip]" 

इस तरह मैं जेसीनसोल का इस्तेमाल करते हुए दूसरे पीसी से कनेक्ट करने में सक्षम था।

मैं जेएमसी को रिमोट सर्वर पर निफि प्रोफ़ाइल के लिए फ्लाइट रिकॉर्डर (जेएफआर) चलाने के लिए कोशिश कर रहा हूं जो कि जेएमसी चलाने के लिए एक ग्राफिकल वातावरण प्रदान नहीं करता है

यहां दिए गए अन्य उत्तरों के आधार पर, और बहुत परीक्षण और त्रुटि के आधार पर, मैं जेएमएम ( conf / bootstrap.conf ) की आपूर्ति कर रहा हूं, जब मैं नीफि लॉन्च करता हूं:

 java.arg.90=-Dcom.sun.management.jmxremote=true java.arg.91=-Dcom.sun.management.jmxremote.port=9098 java.arg.92=-Dcom.sun.management.jmxremote.rmi.port=9098 java.arg.93=-Dcom.sun.management.jmxremote.authenticate=false java.arg.94=-Dcom.sun.management.jmxremote.ssl=false java.arg.95=-Dcom.sun.management.jmxremote.local.only=false java.arg.96=-Djava.rmi.server.hostname=10.10.10.92 (the IP address of my server running NiFi) 

मैंने इसे / etc / hosts में डाल दिया था, हालांकि मुझे संदेह है कि इसकी आवश्यकता है:

 10.10.10.92 localhost 

उसके बाद, जेएमसी लॉन्च करने पर, मैं इन गुणों के साथ एक दूरस्थ कनेक्शन बना देता हूं:

 Host: 10.10.10.92 Port: 9098 User: (nothing) Password: (ibid) 

संयोग से, यदि मैं कस्टम जेएमएक्स सेवा यूआरएल पर क्लिक करता हूं, तो मैं देखता हूं:

 service:jmx:rmi:///jndi/rmi://10.10.10.92:9098/jmxrmi 

आखिरकार यह मेरे लिए किया था