org.apache.activemq.transport.stomp.ProtocolException: Unable to parser header line [????????????]

Apache's JIRA Issue Tracker | Jacob Burkhart | 9 years ago
  1. 0

    [ActiveMQ-dev] [jira] Created: (AMQ-1376) Improperly closed connections preventing message redelivery - Grokbase

    grokbase.com | 3 months ago
    org.apache.activemq.transport.stomp.ProtocolException: Unable to parser header line [????????????]
  2. 0

    This is a reproducible case of a DEAD Consumer that never gets cleaned up. I am using telnet to manually test STOMP message consumption. First I put a message into the queue I then connect and subscribe to that queue and get the message: CONNECT login: test passcode: test ^@ CONNECTED session:ID:jacob-64807-1188509209664-4:3 SUBSCRIBE destination: /queue/Prescriptions ack: client ^@ This works and I receive the queued messages. They remain in the Q because I am not send ACK If I use the DISCONNECT command. I am properly disconnected and I can repeat this process to get the same message again. Good. If I disconnect by killing the telnet process I see the following stack trace in MQ. AND I can still repeat the same process of re-retrieving the un-acknowledged messages: DEBUG Transport - Transport failed: java.io.EOFException java.io.EOFException at java.io.DataInputStream.readByte(DataInputStream.java:243) at org.apache.activemq.transport.stomp.StompWireFormat.readLine(StompWireFormat.java:186) at org.apache.activemq.transport.stomp.StompWireFormat.unmarshal(StompWireFormat.java:94) at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:196) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:188) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:176) at java.lang.Thread.run(Thread.java:613) DEBUG TransportConnection - Stopping connection: /XXXXXXXXXXXXXX:4880 DEBUG TcpTransport - Stopping transport tcp:///XXXXXXXXXXXXXX:4880 DEBUG TransportConnection - Stopped connection: /XXXXXXXXXXXXXX:4880 DEBUG TransportConnection - Cleaning up connection resources: /XXXXXXXXXXXXXX:4880 DEBUG AMQPersistenceAdapter - Checkpoint started. DEBUG AMQPersistenceAdapter - Checkpoint done. HOWEVER, If I disconnect by repeatedly typing Control-C to close the telnet program I see the following stack trace: DEBUG Transport - Transport failed: org.apache.activemq.transport.stomp.ProtocolException: Unable to parser header line [????????????] org.apache.activemq.transport.stomp.ProtocolException: Unable to parser header line [????????????] at org.apache.activemq.transport.stomp.StompWireFormat.unmarshal(StompWireFormat.java:121) at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:196) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:188) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:176) at java.lang.Thread.run(Thread.java:613) DEBUG TransportConnection - Stopping connection: /XXXXXXXXXXXXXX:64820 DEBUG TcpTransport - Stopping transport tcp:///XXXXXXXXXXXXXX:64820 DEBUG AMQPersistenceAdapter - Checkpoint started. DEBUG AMQPersistenceAdapter - Checkpoint done. AND, I am no longer able to retrieve the queued up messages. Looking at the admin console I see Number Of Consumers = 1, leading me to believe that ActiveMQ didn't properly handle the disconnection. In the other 2 cases (DISCONNECT and kill) the "Number Of Consumers" drops to zero on connection termination. I believe the correct behavior should be to properly handle and clean-up the connection on bad data. Or perhaps periodically check each of the supposed "Consumers" to make sure that they are still alive. This is clearly a reproducible case of a DEAD Consumer that never gets cleaned up. Comparing the DEBUG output the follows the 2 stack traces, it is clear in the second case that ActiveMQ fails to clean up the connections resources for the unexpectedly disconnected consumer.

    Apache's JIRA Issue Tracker | 9 years ago | Jacob Burkhart
    org.apache.activemq.transport.stomp.ProtocolException: Unable to parser header line [????????????]
  3. 0

    [ActiveMQ-users] STOMP client connecting, but receiving connection error from ActiveMQ 5.4.1 - Grokbase

    grokbase.com | 3 months ago
    org.apache.activemq.transport.stomp.ProtocolException: Allready connected. at org.apache.activemq.transport.stomp.ProtocolConverter.onStompConnect(ProtocolConverter.java:478) at org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommand(ProtocolConverter.java:192) at org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:70) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:219) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:201)
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    ActiveMQ - User - Stomp message from PHP client, "Unsupported message type 'MapMessage'" from Java server

    nabble.com | 1 year ago
    org.apache.activemq.transport.stomp.ProtocolException: Unsupported message type 'MapMessage'
  6. 0

    ActiveMQ - User - activemq-cpp failure using stomp with activemq

    nabble.com | 3 months ago
    org.apache.activemq.transport.stomp.ProtocolException: Not connected.

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. org.apache.activemq.transport.stomp.ProtocolException

      Unable to parser header line [????????????]

      at org.apache.activemq.transport.stomp.StompWireFormat.unmarshal()
    2. ActiveMQ :: Core
      TcpTransport.run
      1. org.apache.activemq.transport.stomp.StompWireFormat.unmarshal(StompWireFormat.java:121)
      2. org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:196)
      3. org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:188)
      4. org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:176)
      4 frames
    3. Java RT
      Thread.run
      1. java.lang.Thread.run(Thread.java:613)
      1 frame