24

エラーを解決するには?

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 org.apache.activemq.xbean.XBeanBrokerFactory$1@2b9f7952: 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)
4

17 に答える 17

8

次のエラーで同じ問題に直面しました。

エラー | ActiveMQ JMS メッセージ ブローカー (localhost、null) を開始できませんでした。理由: java.io.IOException: トランスポート コネクタを JMX に登録できませんでした: サーバー ソケットへのバインドに失敗しました: tcp://0.0.0.0:61616 が原因: java.net.BindException: アドレスは既に使用されています

次の手順が役立つ場合があります。

  1. このポートを使用しているプロセス ID を見つけます (この場合は 61616)。コマンド プロンプトで netstat -a -o -n と入力し、プロセス ID を調べます。
  2. 次に、タスク マネージャーまたは taskkill /F /PID "process id" からプロセスを強制終了します。

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

乾杯。

于 2014-11-05T09:13:54.203 に答える
5

このエラーは、ブローカーが既に実行されているか、ActiveMQ が TCP トランスポートと JMX サービスをバインドするために必要なポートを使用している他のサービスが実行されていることを示しています。これは、エラー文字列「サーバー ソケットへのバインドに失敗しました: tcp://0.0.0.0:61616 が原因: java.net.BindException: アドレスが既に使用されています:」および「トランスポート コネクタを JMX に登録できませんでした」で確認できます。 : サーバー ソケットへのバインドに失敗しました: tcp://0.0.0.0:61616 が原因: java.net.BindException: アドレスは既に使用されています:"

この問題を解決するには、それらのポートを使用している実行中のものを把握するか、他のポートを使用するように構成を変更する必要があります

于 2012-07-28T11:12:22.577 に答える
3

エラー ログのポート番号を使用してプロセス ID を見つけます。

fuser [port number]/tcp

次に、kill -9 [pid]そのプロセスを強制終了するために使用します。

于 2016-02-02T20:17:31.593 に答える
2

同じ問題があり、AMQ 接続 (AMQ サービスのクライアントとしての ServiceMix) を使用する別の JVM によってポートがブロックされているようです。

ServiceMix を再起動すると、ポート予約のロックが解除され、ActiveMQ サービスが問題なく再起動されました。

以前の ActiveMQ プロセスはもう実行されていないことに注意してください。これは、クライアントがまだ使用しているため、2 つの JVM と Windows がポートをブロックしているという制限のようです。これは、2 つのインスタンスが同時に開始しようとしているからではありません。

これはおそらく特定の問題の解決にはなりませんが、同じ設定をしている他の人にも役立ちます。

于 2018-02-27T09:28:23.437 に答える
1

この問題が発生したとき、デフォルトのポート (61616) が「エフェメラル ポート」の範囲内にあることがわかりました (背景については、https://en.wikipedia.org/wiki/Ephemeral_portを参照してください)。私の理解では、OS (私たちの場合は Windows 2012) は、まだ使用されていない限り、必要なものにポートを割り当てることができます。私たちにとっては、ほとんどの場合は問題ありませんでしたが、ごくまれに、サーバーの起動時に、activemq が開始する前に Windows がポート 61616 を別の場所に割り当てたため、activemq を開始しようとすると、このエラーが発生しました。

次の抜粋は、" 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 でエフェメラル ポート範囲を設定する方法について説明しています (この記事ではそれらを "動的ポート" と呼びます)。

Vista および 2008 では、ネットワーク スタック レベルでのほとんどの管理は NETSH を介して処理されます。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

これらのコマンドは、現在使用されている動的ポート範囲を出力します。TCP と UDP、または IPv4 と IPv6 で異なる範囲を設定できますが、最初はすべて同じです。

Windows Server 2003 では、範囲は常にデフォルトで TCP ポート 1024 から始まり、ハードコーディングされています。しかし、Vista/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を参照してください。

于 2016-01-13T18:57:55.637 に答える
0

Windows Server 2012R2 ホスト上の Apache Camel ベースのアプリケーションの一部として、組み込みのアクティブな MQ ブローカーをデプロイするときに、この問題に遭遇します。上記のアドバイスに従い、ブローカーがバインドされているポートを (61616 から 6616 に) 変更しました。

于 2016-01-07T15:58:37.593 に答える
0

上記の投稿は、openwire ポートを 6616 に変更することは有効ですが、たまたま amqp ポートも占有されていたので、それも (5672 から 5762 (またはその他) に) 構成を変更する必要があります。は:-

  <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"/>
于 2017-12-29T09:34:51.287 に答える