2013-09-30 10 views
12

मैं Apache ActiveMQ version 5.8.0 उपयोग कर रहा हूँ से कनेक्ट नहीं कर सकता है और मैं Apache ActiveMQ Browser version 2.5.2.8अपाचे ActiveMQ ब्राउज़र JMX कंसोल

डाउनलोड किया अपाचे ActiveMQ के भीतर मैं activemq.xml विन्यास संपादित JMX उपयोग करने के लिए: स्टार्टअप स्क्रिप्ट मैं सेट के भीतर

<broker xmlns="http://activemq.apache.org/schema/core" useJmx="true" brokerName="localhost" dataDirectory="${activemq.data}"> 
    <!-- This needed to be set to true, otherwise JMX won't start in 5.8.0 --> 
    <managementContext> 
    <managementContext createConnector="true"/> 
    </managementContext> 
</broker> 

इस प्रकार JMX सेटिंग्स:

#ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099 " 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" 

जब मैं अपाचे ActiveMQ पुनरारंभ करें, लॉग मुझे JMX शुरू कर दिया जाता है और accessibl से पता चलता ई:

JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi | org.apache.activemq.broker.jmx.ManagementContext | JMX connector 

भी पता चल सके कि बंदरगाह एक सुन पोर्ट में परिणाम सुन रहा है:

[[email protected] ~]$ netstat -lptun | grep 1099 
(Not all processes could be identified, non-owned process info 
will not be shown, you would have to be root to see it all.) 
tcp  0  0 :::1099      :::*      LISTEN  16775/java 

अपाचे ActiveMQ एक सर्वर पर चल रहा है। उदाहरण के लिए आईपी 10.0.0.100 पर। अपाचे ActiveMQ ब्राउज़र मेरे पीसी पर चलता है (10.0.0.200)।

जब मैं अपाचे ActiveMQ ब्राउज़र से कनेक्ट करने का प्रयास करता हूं तो कनेक्शन विफल रहता रहता है। मैं निम्नलिखित सेटिंग्स का उपयोग कर रहा:

JMX URL: service:jmx:rmi:///jndi/rmi://10.0.0.100:1099/jmxrmi 
JMX role: admin 
JMS password: activemq 

मैं jmx.password और jmx.access में डिफ़ॉल्ट के रूप में इस समय उपयोगकर्ता और पासवर्ड छोड़ दिया है।

मैं भी जब स्थानीय बंदरगाह 1099 को पोर्ट 1099 के लिए एक सुरंग बनाने के लिए और फिर स्थानीय होस्ट बजाय 10.0.0.100 सुनिश्चित करें कि कोई फ़ायरवॉल मुद्दा है होना करने के लिए करने के लिए कनेक्ट पोटीन के साथ जोड़ने की कोशिश की। लेकिन सभी विफल रहता है।

क्या मैं कुछ भूल रहा हूं?

उत्तर

15

दुर्भाग्यवश, जेएमएक्स को ठीक से काम करने के लिए दो बंदरगाहों की आवश्यकता है। और दूसरा एक (RMI रजिस्ट्री बंदरगाह) डिफ़ॉल्ट रूप से है बेतरतीब ढंग से फायरवॉल आदि

के साथ समस्याओं JDK7u4 जब से तुम

-Dcom.sun.management.jmxremote.rmi.port=<port> 

उपयोग कर सकते हैं इस्तेमाल किया जा रहा RMI बंदरगाह स्थापित करने के लिए पैदा कर रहा उठाया।

+0

मैं एक दूसरे का इस्तेमाल किया बंदरगाह था कि पता नहीं था। धन्यवाद! –

5

यदि आप जेडीके संस्करण द्वारा प्रतिबंधित हैं, तो -Dcom.sun.management.jmxremote.rmi.port का उपयोग नहीं कर सकते हैं, तो आप वैकल्पिक रूप से प्रबंधन कॉन्टेक्स्ट में आरएमआई रजिस्ट्री पोर्ट निर्दिष्ट कर सकते हैं।

<broker xmlns="http://activemq.apache.org/schema/core" useJmx="true" brokerName="localhost" dataDirectory="${activemq.data}"> 
    ... 
    <managementContext> 
     <managementContext connectorPort="1099" rmiServerPort="<port>" /> 
    </managementContext> 
    ... 
</broker> 
8

दुख की घंटे के बाद। फ़ायरवॉल के पीछे कनेक्ट करने के लिए जादू।

<managementContext> 
    <managementContext createConnector="true" rmiServerPort="1098" connectorPort="1099" /> 
</managementContext> 

नमूना कनेक्शन स्ट्रिंग:

service:jmx:rmi://10.0.4.14:1098/jndi/rmi://10.0.4.14:1099/jmxrmi 
संबंधित मुद्दे