2016-10-07 5 views
3

Uhr versucht, die ActiveMQ 5.11 zu starten, und ich sehe einen WARNING wie folgt:WARNUNG als java.io.EOFException wenn ActiveMQ beginnt

WARN | Transport Connection to: tcp://127.0.0.1:40890 failed: java.io.EOFException 

Mein activemq.xml ist wie folgt:

<transportConnectors> 
    <transportConnector name="openwire" uri="tcp://0.0.0.0:${JMS_PORT}" /> 
    <transportConnector name="stomp" uri="stomp://0.0.0.0:${JMS_STOMP_PORT}"/> 
    <transportConnector name="ssl" uri="ssl://0.0.0.0:${JMS_SSL_PORT}"/> 
</transportConnectors> 

<sslContext> 
    <sslContext 
     keyStore="file:${JMS_KEY_STORE}" 
     keyStorePassword="${JMS_KEY_STORE_PASSWORD}" 
     trustStore="file:${JMS_TRUST_STORE}" 
     trustStorePassword="${JMS_TRUST_STORE_PASSWORD}" 
    /> 
</sslContext> 

<networkConnectors> 
    <networkConnector 
     name="host1 and host2" 
     uri="static://(${JMS_X_SITE_CSV_URL})?wireFormat=ssl&amp;wireFormat.maxInactivityDuration=30000" 
     dynamicOnly="true" 
     suppressDuplicateQueueSubscriptions = "true" 
     networkTTL="1" 
    /> 
</networkConnectors> 

Hier das gesamte Konsolenprotokoll dafür.

Java Runtime: Oracle Corporation 1.7.0_05 /usr/java/jdk1.7.0_05/jre 
    Heap sizes: current=1004928k free=994439k max=1004928k 
    JVM args: -Xmx1G -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/home/dragon/activemq/conf/login.config -Dcom.sun.management.jmxremote -Djava.io.tmpdir=/home/dragon/activemq/tmp -Dactivemq.classpath=/home/dragon/activemq/conf; -Dactivemq.home=/home/dragon/activemq -Dactivemq.base=/home/dragon/activemq -Dactivemq.conf=/home/dragon/activemq/conf -Dactivemq.data=/home/dragon/activemq/data 
Extensions classpath: 
    [/home/dragon/activemq/lib,/home/dragon/activemq/lib/camel,/home/dragon/activemq/lib/optional,/home/dragon/activemq/lib/web,/home/dragon/activemq/lib/extra] 
ACTIVEMQ_HOME: /home/dragon/activemq 
ACTIVEMQ_BASE: /home/dragon/activemq 
ACTIVEMQ_CONF: /home/dragon/activemq/conf 
ACTIVEMQ_DATA: /home/dragon/activemq/data 
Loading message broker from: xbean:activemq.xml 
INFO | Refreshing [email protected]: startup date [Fri Oct 07 08:14:02 IST 2016]; root of context hierarchy 
INFO | PListStore:[/home/dragon/activemq/data/divinedragonbox/tmp_storage] started 
INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[/home/dragon/jms_store] 
INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:15526/jmxrmi 
INFO | KahaDB is version 5 
INFO | Recovering from the journal ... 
INFO | Recovery replayed 76 operations from the journal in 0.032 seconds. 
INFO | Apache ActiveMQ 5.11.1 (divinedragonbox, ID:divinedragonbox-60914-1475824445361-0:1) is starting 
INFO | Listening for connections at: tcp://divinedragonbox:15511 
INFO | Connector openwire started 
INFO | Listening for connections at: stomp://divinedragonbox:15512 
INFO | Connector stomp started 
INFO | Listening for connections at: ssl://divinedragonbox:15571 
INFO | Connector ssl started 
INFO | Establishing network connection from vm://divinedragonbox?async=false&network=true to ssl://localhost:15571 
INFO | Connector vm://divinedragonbox started 
INFO | Network Connector DiscoveryNetworkConnector:host1 and host2:BrokerService[divinedragonbox] started 
INFO | Apache ActiveMQ 5.11.1 (divinedragonbox, ID:divinedragonbox-60914-1475824445361-0:1) started 
INFO | For help or more information please see: http://activemq.apache.org 
INFO | divinedragonbox Shutting down 
INFO | Connector vm://divinedragonbox stopped 
INFO | divinedragonbox bridge to Unknown stopped 
WARN | Transport Connection to: tcp://127.0.0.1:40890 failed: java.io.EOFException 
INFO | ActiveMQ WebConsole available at http://localhost:15521/ 
INFO | Initializing Spring FrameworkServlet 'dispatcher' 
INFO | jolokia-agent: No access restrictor found at classpath:/jolokia-access.xml, access to all MBeans is allowed 

Ich habe die TRACE für die Nachrichten aktiviert, und ich habe die folgenden Ausnahmereste in der Protokolldatei.

2016-10-07 08:15:45,378 | TRACE | Execute[ActiveMQ ForwardingBridge StopTask] runnable: [email protected]51d | org.apache.activemq.thread.TaskRunnerFactory | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,378 | TRACE | Created and running thread[ActiveMQ ForwardingBridge StopTask-5]: Thread[ActiveMQ ForwardingBridge StopTask-5,5,main] | org.apache.activemq.thread.TaskRunnerFactory | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,379 | DEBUG | Caught exception sending shutdown | org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ ForwardingBridge StopTask-5 
org.apache.activemq.transport.TransportDisposedIOException: Transport disposed. 
    at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:82)[activemq-broker-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.network.DemandForwardingBridgeSupport$4.run(DemandForwardingBridgeSupport.java:288)[activemq-broker-5.11.1.jar:5.11.1] 
    at java.lang.Thread.run(Thread.java:722)[:1.7.0_05] 
2016-10-07 08:15:45,380 | DEBUG | Stopping transport ssl://localhost/127.0.0.1:15571 | org.apache.activemq.transport.tcp.TcpTransport | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,381 | DEBUG | Initialized TaskRunnerFactory[ActiveMQ Task] using ExecutorService: null | org.apache.activemq.thread.TaskRunnerFactory | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,381 | TRACE | Execute[ActiveMQ Task] runnable: [email protected] | org.apache.activemq.thread.TaskRunnerFactory | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,381 | TRACE | Created and running thread[ActiveMQ Task-1]: Thread[ActiveMQ Task-1,5,main] | org.apache.activemq.thread.TaskRunnerFactory | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,382 | TRACE | Closing socket 2a9a5d77[TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: Socket[addr=localhost/127.0.0.1,port=15571,localport=40999]] | org.apache.activemq.transport.tcp.TcpTransport | ActiveMQ Task-1 
2016-10-07 08:15:45,383 | DEBUG | Closed socket 2a9a5d77[TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: Socket[addr=localhost/127.0.0.1,port=15571,localport=40999]] | org.apache.activemq.transport.tcp.TcpTransport | ActiveMQ Task-1 
2016-10-07 08:15:45,384 | INFO | divinedragonbox bridge to Unknown stopped | org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,384 | TRACE | serviceLocalException: disposed true ex | org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ BrokerService[divinedragonbox] Task-4 
org.apache.activemq.transport.TransportDisposedIOException: peer (vm://divinedragonbox#1) stopped. 
    at org.apache.activemq.transport.vm.VMTransport.stop(VMTransport.java:207)[activemq-broker-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:65)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:65)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1151)[activemq-broker-5.11.1.jar:5.11.1] 
    at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1117)[activemq-broker-5.11.1.jar:5.11.1] 
    at java.lang.Thread.run(Thread.java:722)[:1.7.0_05] 
2016-10-07 08:15:45,384 | DEBUG | Stopped transport: vm://divinedragonbox#0 | org.apache.activemq.broker.TransportConnection | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,384 | TRACE | Shutdown timeout: 1 task: Transport Connection to: vm://divinedragonbox#0 | org.apache.activemq.thread.DedicatedTaskRunner | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,385 | TRACE | Run task done: Transport Connection to: vm://divinedragonbox#0 | org.apache.activemq.thread.DedicatedTaskRunner | ActiveMQ Connection Dispatcher: vm://divinedragonbox#0 
2016-10-07 08:15:45,385 | DEBUG | Connection Stopped: vm://divinedragonbox#0 | org.apache.activemq.broker.TransportConnection | ActiveMQ BrokerService[divinedragonbox] Task-4 
2016-10-07 08:15:45,385 | TRACE | Shutdown of ExecutorService: [email protected][Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0] with await termination: 0 millis | org.apache.activemq.util.ThreadPoolUtils | ActiveMQ Transport: ssl:///127.0.0.1:40999 
2016-10-07 08:15:45,385 | DEBUG | Shutting down VM connectors for broker: divinedragonbox | org.apache.activemq.transport.vm.VMTransportFactory | triggerStartAsyncNetworkBridgeCreation: remoteBroker=ssl://localhost/127.0.0.1:15571, localBroker= vm://divinedragonbox#0 
2016-10-07 08:15:45,385 | INFO | Connector vm://divinedragonbox stopped | org.apache.activemq.broker.TransportConnector | triggerStartAsyncNetworkBridgeCreation: remoteBroker=ssl://localhost/127.0.0.1:15571, localBroker= vm://divinedragonbox#0 
2016-10-07 08:15:45,400 | DEBUG | Shutdown of ExecutorService: [email protected][Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0] is shutdown: true and terminated: true took: 0.001 seconds. | org.apache.activemq.util.ThreadPoolUtils | ActiveMQ Transport: ssl:///127.0.0.1:40999 
2016-10-07 08:15:45,400 | DEBUG | Transport Connection to: tcp://127.0.0.1:40999 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: ssl:///127.0.0.1:40999 
java.io.EOFException 
    at java.io.DataInputStream.readInt(DataInputStream.java:392)[:1.7.0_05] 
    at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:258)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213)[activemq-client-5.11.1.jar:5.11.1] 
    at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)[activemq-client-5.11.1.jar:5.11.1] 
    at java.lang.Thread.run(Thread.java:722)[:1.7.0_05] 
2016-10-07 08:15:45,401 | DEBUG | Unregistering MBean org.apache.activemq:type=Broker,brokerName=divinedragonbox,connector=clientConnectors,connectorName=ssl,connectionViewType=remoteAddress,connectionName=tcp_//127.0.0.1_40999 | org.apache.activemq.broker.jmx.ManagementContext | ActiveMQ Transport: ssl:///127.0.0.1:40999 
2016-10-07 08:15:45,401 | TRACE | Execute[ActiveMQ BrokerService[divinedragonbox] Task] runnable: [email protected] | org.apache.activemq.thread.TaskRunnerFactory | ActiveMQ Transport: ssl:///127.0.0.1:40999 
2016-10-07 08:15:45,401 | TRACE | Created and running thread[ActiveMQ BrokerService[divinedragonbox] Task-6]: Thread[ActiveMQ BrokerService[divinedragonbox] Task-6,8,main] | org.apache.activemq.thread.TaskRunnerFactory | ActiveMQ Transport: ssl:///127.0.0.1:40999 

Kann mir jemand sagen, warum sind diese Ausnahmen geworfen?

kann ich die gesamte Log-Datei zur Verfügung stellen, wenn jemand für einen tieferen Blick muss.

Antwort

1

So kam ich schließlich zur Grundursache davon. Diese WARNING kommt weil der Weg networkConnector funktioniert und konfiguriert ist. Ich hatte dies in der activemq-Community hier gepostet - http://activemq.2283324.n4.nabble.com/java-io-EOFException-when-ActiveMQ-starts-td4717598.html

Wenn networkConnector verwendet wird, versucht ActiveMQ, eine Verbindung mit dem Broker konfiguriert herzustellen. In meinem Fall habe ich versucht, mich selbst mit dem Broker zu verbinden, und deshalb hat er die Verbindung abgelehnt. Das gleiche wurde von Tim in der Gemeinde gezeigt.

Ich habe nie versucht, einen Makler mit einem statischen networkConnector mit der Selbstkonfiguration (warum soll ich, es ist eine nutzlose Konfiguration), aber es würde mich nicht überraschen, wenn der Makler, dass Selbst Verbindung abgelehnt, was zu der EOFException führen kann, die Sie gesehen haben. Es ist auch möglich , dass etwas mit Ihrer SSL-Konfiguration nicht in Ordnung ist, wie Sie vorgeschlagen; Es gibt keine gute Möglichkeit in einer Mailinglistendiskussion zu überprüfen, ob Ihr Truststore Ihrem Keystore vertraut und die Zertifikate korrekt dargestellt werden, da dies alles über den binären Inhalt geschieht und Sie dies nicht öffentlich teilen sollten, aber Sie könnten das SSL testen Konfiguration durch Einrichten von zwei Brokern (in einer Testumgebung), die jeweils ihre JMS_X_SITE_CSV_URL auf einander zeigen. Wenn diese Konfiguration Ihnen EOFExceptions gibt, dann wechseln Sie zum tcp Transport und sehen Sie, was passiert. Wenn Sie Fehler mit dem ssl Transport bekommen, aber nicht die TCP eins, gibt es eine gute Chance, es ist etwas mit Ihren Schlüsseln falsch.

Soweit die aktuelle Konfiguration (wo man einen Makler, deren nur hat Network ist ein statisches: ssl: man selbst), es ist nicht eine nützliche Konfiguration (einen networkConnector selbst mit dient keinen Zweck), und Sie haben früh in dieser Diskussion bewiesen, dass das Entfernen der die WARN-Protokollzeile entfernt, die Sie besorgt sind.Also stimme ich nicht zu mit Ihrer Aussage, dass "Ich denke, die Konfiguration scheint immer noch gut." Wechseln Sie zu etwas, das den Zweck erfüllt, den Sie sagten, Sie sind versuchen zu erreichen (wie die Entdeckung: Transport statt der statisch: Transport, oder wie Ihre standortübergreifenden Server auflisten, wenn Sie gehen weiter mit der statisch: Transport) oder nehmen Sie es heraus und beseitigen Sie die WARN-Linie.

Also, networkConnector ist im Grunde genommen nutzlos, wenn es ein einziges Broker-System ist. Bei Multi-Broker-Bereitstellungen ist es sinnvoller, und dann werden alle Broker konfiguriert, mit Ausnahme des Selbst für jeden Broker.

noch die networkConnector Konfiguration machen in einzelnen Broker Einsatz zu arbeiten, war der Wert Ich musste eingestellt - url="static://(ssl://divinedragonbox:7031)..." (Hostname anstelle der IP-Adresse oder localhost). Das beseitigt die WARNING, die kommt.

0

Diese EOFExceptions zeigen an, dass ein Client eine Verbindung mit dem Broker herstellt, trennt dann die Verbindung, ohne die Verbindung sauber zu schließen. Typische Täter sind TCP/IP-Überwachungsagenten und falsch codierte Clients.

+0

Aber ich habe keine Kunden laufen. Ich erhalte diese Warnmeldung, sobald ich ActiveMQ starte. Hat es intern irgendwelche Kunden für den Broker selbst? – divinedragon

Verwandte Themen