2012-07-28 10 views
12

त्रुटि को हल करने के लिए कैसे करें?Activemq पहले से उपयोग में आने वाले पते के कारण नहीं चल सकता है त्रुटि

Java Runtime: Oracle Corporation 1.7.0_05 E:\Program Files\Java\jdk1.7.0_05\jre 
    Heap sizes: current=1004928k free=994439k max=1004928k 
    JVM args: -Dcom.sun.management.jmxremote -Xms1G -Xmx1G -Djava.util.logging.config.file=logging.properties -Dactivemq.classpath=F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\conf;F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\../conf;F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\../conf; -Dactivemq.home=F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\.. -Dactivemq.base=F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\.. -Dactivemq.conf=F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\conf -Dactivemq.data=F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\data -Djava.io.tmpdir=F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\data\tmp 
ACTIVEMQ_HOME: F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\.. 
ACTIVEMQ_BASE: F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\.. 
ACTIVEMQ_CONF: F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\conf 
ACTIVEMQ_DATA: F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\data 
Loading message broker from: xbean:activemq.xml 
INFO | Refreshing [email protected]: startup date [Sat Jul 28 18:10:38 CST 2012]; root of context hierarchy 
INFO | PListStore:[F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\data\localhost\tmp_storage ] started 
INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[F:\workspace\Eclipse java\destinytalk\DestinyServer\apache-activemq-5.6.0\bin\..\data\kahadb] 
INFO | KahaDB is version 4 
INFO | Recovering from the journal ... 
INFO | Recovery replayed 1 operations from the journal in 0.071 seconds. 
INFO | ActiveMQ 5.6.0 JMS Message Broker (localhost) is starting 
INFO | For help or more information please see: http://activemq.apache.org/ 
ERROR | Failed to start ActiveMQ JMS Message Broker (localhost, null). Reason: java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: tcp://0.0.0.0:61616 due to: java.net.BindException: Address already in use: JVM_Bind 
java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: tcp://0.0.0.0:61616 due to: java.net.BindException: Address already in use: JVM_Bind 
    at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27) 
    at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1836) 
    at org.apache.activemq.broker.BrokerService.startTransportConnector(BrokerService.java:2327) 
    at org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:2243) 
    at org.apache.activemq.broker.BrokerService.start(BrokerService.java:551) 
    at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:60) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485) 
+2

प्रश्न पूछते समय आपको कुछ और संदर्भ जोड़ना चाहिए। –

+1

क्या इनमें से कोई भी उत्तर आपकी मदद करता है? यदि आपको ऐसा करना चाहिए तो आपको एक स्वीकार करना चाहिए। – snowe

उत्तर

4

त्रुटि आप कह रहा है वहाँ है कि या तो पहले से ही एक दलाल चल रहा है या किसी अन्य सेवा चल रहा है कि आवश्यक बंदरगाहों कि ActiveMQ अपने टीसीपी परिवहन और JMX सेवा पर बने रहें करना चाहते हैं उपयोग कर रहा है। आप इसे त्रुटि स्ट्रिंग में देख सकते हैं "सर्वर सॉकेट से जुड़ने में विफल: tcp: //0.0.0.0: 61616: java.net.BindException: पता पहले से उपयोग में है:" और "परिवहन कनेक्टर जेएमएक्स में पंजीकृत नहीं हो सका : सर्वर सॉकेट से जुड़ने में विफल: tcp: //0.0.0.0: 61616 के कारण: java.net.BindException: पता पहले से उपयोग में है: "

समस्या को हल करने के लिए आपको यह पता लगाने की आवश्यकता है कि क्या चल रहा है उन बंदरगाहों का उपयोग करके, या अन्य बंदरगाहों का उपयोग करने के लिए कॉन्फ़िगरेशन को बदलें

+1

मुझे अन्य बंदरगाहों के साथ त्रुटि हुई "61613" और "61614" मैंने उन्हें "6613" और "6614" में बदल दिया, यह मेरे लिए अच्छा काम करता है – Mateen

5

install_folder/conf फ़ोल्डर पर जाएं और activemq.xml फ़ाइल खोलें। फ़ाइल पर परिवहन कनेक्टर के लिए देखो। आप वहां से पोर्ट वैल्यू बदल सकते हैं। मैंने इसे 61616 से 6616 में बदल दिया। मैं नहीं देख सका कि नेटस्टैट -ओ कमांड चलाकर विंडोज़ में कौन सी प्रक्रिया इसका इस्तेमाल कर रही थी।

<transportConnectors> 
     <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> 
     <transportConnector name="openwire" uri="tcp://0.0.0.0:6616?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/> 
    </transportConnectors> 
+0

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

+0

प्लस 1। –

28

यदि आप विंडोज 7 का उपयोग कर रहे हैं, तो कृपया "इंटरनेट कनेक्शन शेयरिंग (आईसीएस)" सेवा को अक्षम करने का प्रयास करें।

+1

हालांकि अन्य उत्तर आपको सामान्य तरीके से समस्या को हल करने में मदद करते हैं, मैंने पाया कि यह समस्या थी। आईसीएस एएमक्यू की तुलना में एक ही बंदरगाह पर चलता है, इसलिए यदि आप अपना कनेक्शन साझा करने का प्रयास करते हैं, तो अपने मोबाइल के साथ कहें, और फिर एएमक्यू का उपयोग करें, आपको कोई त्रुटि नहीं होने के कारण यह त्रुटि मिल जाएगी। –

+0

मेरे पास एक ही समस्या थी और मैं पुष्टि कर सकता हूं कि इस उत्तर ने मुझे समस्या को हल करने में भी मदद की। –

0

विंडोज यहाँ: सॉफ्टवेयर है कि दलाल से संपर्क शायद कठिन कोडित था बंदरगाह, इसलिए मैं activemq.xml

मैं कनेक्शन में से एक के लिए कनेक्शन साझा करने पर बदल दिया था परिवर्तित नहीं कर सके, मैं इसे अक्षम कर दिया है , और इससे मदद मिली, बड़ी जानकारी बिन एस इस जानकारी के लिए नेटस्टैट ने इस पोर्ट को कब्जा नहीं दिखाया!

4

मैं के साथ त्रुटि जा रहा है एक ही समस्या का सामना करना पड़ा:

त्रुटि | ActiveMQ जेएमएस संदेश ब्रोकर (localhost, शून्य) शुरू करने में विफल। कारण: java.io.IOException: परिवहन कनेक्टर जेएमएक्स में पंजीकृत नहीं हो सका: सर्वर सॉकेट से जुड़ने में विफल: टीसीपी: //0.0.0.0: 61616: java.net.BindException: पता पहले से ही उपयोग में है

निम्नलिखित चरणों को उपयोगी हो सकता है:

  1. इस पोर्ट का उपयोग कर रहे प्रक्रिया आईडी को ढूंढें (आपके मामले में, 61616)। कमांड प्रॉम्प्ट में लिखें: netstat -a -o -n और प्रक्रिया आईडी को देखें।
  2. अगला कार्य प्रबंधक या taskkill/एफ/पीआईडी ​​"प्रक्रिया आईडी" से प्रक्रिया को मारने

http://sourcecode-kk.blogspot.in/2013/02/kill-process-running-on-certain-port-in.html

चीयर्स।

0

विंडोज सर्वर 2012R2 होस्ट पर अपाचे कैमल के आधार पर एक एप्लिकेशन के हिस्से के रूप में एम्बेडेड सक्रिय एमक्यू ब्रोकर को तैनात करते समय मैं इस समस्या में भाग लेता हूं। मैंने ऊपर पोस्ट की सलाह का पालन किया और जिस पोर्ट को ब्रोकर बांध दिया गया था (61616 से 6616 तक)

0

जब हम इस मुद्दे पर भाग गए, हमने पाया कि डिफ़ॉल्ट पोर्ट (61616) "क्षणिक बंदरगाह" में है रेंज (थोड़ी सी पृष्ठभूमि के लिए https://en.wikipedia.org/wiki/Ephemeral_port देखें)। मेरी समझ यह है कि ओएस (हमारे मामले में विंडोज 2012) पोर्ट को आवंटित कर सकता है जो भी वह चाहता है क्योंकि यह पहले से उपयोग में नहीं है।हमारे लिए, यह ज्यादातर समय ठीक था, लेकिन कभी-कभी सर्वर बूट होने पर, विंडोज़ ने सक्रिय एमक शुरू होने से पहले कुछ और करने के लिए बंदरगाह 61616 आवंटित किया, इसलिए जब सक्रिय एमक शुरू करने की कोशिश की, तो हमें यह त्रुटि मिली।

Vista में और 2008, चीजों की सबसे प्रशासन:

निम्नलिखित अंश "http://blogs.technet.com/b/askds/archive/2007/08/24/dynamic-client-ports-in-windows-server-2008-and-windows-vista-or-how-i-learned-to-stop-worrying-and-love-the-iana.aspx" जो Windows में अल्पकालिक पोर्ट श्रेणी निर्धारित करने के लिए कैसे पर चर्चा से लिया जाता है (इस लेख के लिए उन्हें "गतिशील पोर्ट" कॉल) नेटवर्क स्टैक स्तर पर एनईटीएसएच के माध्यम से संभाला जाता है। Netsh का उपयोग करना, यह देखने के लिए कि क्या आपके गतिशील पोर्ट श्रेणी एक प्रति सर्वर के आधार पर करने के लिए सेट कर रहा हो:

netsh int ipv4 show dynamicport tcp

netsh int ipv4 show dynamicport udp

netsh int ipv6 show dynamicport tcp

netsh int ipv6 show dynamicport udp

इन आदेशों होगा उत्पादन वर्तमान में उपयोग में गतिशील पोर्ट रेंज। एक साफ तथ्य यह है कि आपके पास टीसीपी और यूडीपी, या आईपीवी 4 और आईपीवी 6 के लिए अलग-अलग श्रेणियां हो सकती हैं, हालांकि वे सभी इसे शुरू कर देते हैं।

विंडोज सर्वर 2003 रेंज हमेशा टीसीपी 1024 पोर्ट के साथ शुरू करने के लिए डिफ़ॉल्ट रूप से, और कहा कि हार्ड-कोडेड है। लेकिन विस्टा/2008 में, आप चारों ओर की सीमा के शुरुआती बिंदु को स्थानांतरित कर सकते हैं। तो यदि आपको आवश्यकता हो, तो आप अपने सर्वर को गतिशील बंदरगाह आवंटन के लिए बंदरगाहों 5000 से 15000 का उपयोग करने के लिए कह सकते हैं, या किसी भी प्रकार की बंदरगाहों की आप चाहते हैं। ऐसा करने के लिए, आप फिर से netsh का उपयोग करें:

netsh int ipv4 set dynamicport tcp start=10000 num=1000

netsh int ipv4 set dynamicport udp start=10000 num=1000

netsh int ipv6 set dynamicport tcp start=10000 num=1000

netsh int ipv4 set dynamicport udp start=10000 num=1000

ऊपर दिए गए उदाहरणों पोर्ट 10000 पर शुरू और के माध्यम से जाने के लिए अपने गतिशील पोर्ट श्रेणी निर्धारित करेंगे बंदरगाह 11000 (1000 बंदरगाहों)।

कुछ महत्वपूर्ण बंदरगाह सीमा के बारे में पता करने के लिए चीजें:

  • बंदरगाहों आप सेट कर सकते हैं की सबसे छोटी रेंज 255

  • न्यूनतम मूल्य उस बंदरगाह आप सेट कर सकते हैं वह यह है कि 1025

    है
  • उच्चतम अंत बंदरगाह (रेंज आप सेट के आधार पर) अधिक नहीं हो सकता 65535.

इस पर अधिक जानकारी के लिए, KB 929851 देखें।

+0

क्या यह संभव है कि पोर्ट को उस बंदरगाह से कनेक्ट होने वाली क्लाइंट प्रक्रिया द्वारा लॉक किया गया हो? मेरे पास उस सेटअप और क्लाइंट को पुनरारंभ करना है (मेरे मामले में servicemix) सर्वर (activemq) को फिर से शुरू करने में सक्षम होने के लिए बनाता है। –

2

प्रक्रिया आईडी त्रुटि लॉग से पोर्ट नंबर का उपयोग कर सकते हैं।

fuser [port number]/tcp 

फिर उस प्रक्रिया को मारने के लिए kill -9 [pid] का उपयोग करें।

+0

बहुत बहुत धन्यवाद। यह डिबगिंग में मदद की !! – daemon12

0

व्यवस्थापक अधिकार के साथ यह चलाने की कोशिश करें।

विंडोज़ में- निर्देशिका -apache-activemq-5.4.3 \ bin पर जाएं और activemq.bat पर राइट क्लिक करें और व्यवस्थापक के रूप में चलाएं।

चीयर्स

0

यदि आप जावा कोड का उपयोग कर रहे हैं। इस तरह की जांच का प्रयास करें।

 if (!brokerService.isStarted()) { 
      System.out.println("Bringing up the ActiveMQ Broker"); 
      brokerService.addConnector("tcp://localhost:61616"); 
      brokerService.setBrokerName("Broker"); 
      brokerService.setUseJmx(true); 
      brokerService.start(); 
     } else { 
      System.out.println("ActiveMQ Broker already started"); 
     } 
0

ऊपर पोस्ट वैध 6616 काम करने के लिए openwire बंदरगाह बदल रहा है, लेकिन यह के रूप में मुझे क्या हुआ कि AMQP बंदरगाह भी कब्जा किया गया था यू कि (5672 से 5762 करने के लिए बदलने के लिए भी जरूरत है आप के लिए हो सकता है कि कर रहे हैं (या किसी भी मेरे हिसाब से अन्य)) config है: -

<transportConnector name="openwire" uri="tcp://0.0.0.0:6616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="amqp" uri="amqp://0.0.0.0:5762?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
0

मैं एक ही मुद्दा है और ऐसा लगता बंदरगाह एक और JVM का उपयोग कर AMQ कनेक्शन (ServiceMix AMQ सेवा के एक ग्राहक) के रूप में द्वारा अवरुद्ध है।

सर्विसमिक्स को पुनरारंभ करना पोर्ट आरक्षण अनलॉक करें और ActiveMQ सेवा बिना किसी समस्या के पुनरारंभ करें।

ध्यान दें कि पुरानी एक्टिवएमक्यू प्रक्रिया अब और नहीं चल रही थी और यह क्लाइंट के रूप में बंदरगाह को अवरुद्ध करने वाले दो जेवीएम और विंडोज़ की सीमा को लगता है क्योंकि क्लाइंट अभी भी इसका उपयोग करता है। ऐसा इसलिए नहीं है क्योंकि दो उदाहरण एक ही समय में शुरू करने की कोशिश कर रहे हैं।

यह शायद आपकी विशिष्ट समस्या का उत्तर नहीं देता है, लेकिन यह अन्य लोगों को एक ही सेटअप करने में सहायता कर सकता है।

संबंधित मुद्दे