Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-1249

Exception when sending big messages

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 4.1.1
    • 5.3.0
    • Broker
    • None

    Description

      Scenario:

      used queue to transfer a message of size 10MB, producer and consumer were in the same location, but broker was available through a WAN, so sending a message took some time, client crashed with exception (also added some trace):

      14:58:00,914 DEBUG [main] org.apache.activemq.ActiveMQSession: Sending message: ActiveMQBytesMessage {commandId = 0, responseRequired = false, messageId = ID:itstl007-41444-1179835075925-1:0:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:itstl007-41444-1179835075925-1:0:1:1, destination = queue://Huge.Remote.1, transactionId = null, expiration = 0, timestamp = 1179835080911, arrival = 0, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@7808b9, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {HASH=80f6524683f484f19f244fc5d290f79f5f1b48c1}, readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQBytesMessage{ bytesOut = null, dataOut = null, dataIn = null }
      14:58:00,914 DEBUG [main] org.apache.activemq.transport.TransportLogger.Connection:1: SENDING: ActiveMQBytesMessage {commandId = 5, responseRequired = true, messageId = ID:itstl007-41444-1179835075925-1:0:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:itstl007-41444-1179835075925-1:0:1:1, destination = queue://Huge.Remote.1, transactionId = null, expiration = 0, timestamp = 1179835080911, arrival = 0, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@7808b9, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {HASH=80f6524683f484f19f244fc5d290f79f5f1b48c1}, readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQBytesMessage{ bytesOut = null, dataOut = null, dataIn = null }
      14:58:26,716 DEBUG [ActiveMQ Transport: tcp://gkscoc01.igk.intel.com/172.28.168.10:61616] org.apache.activemq.transport.TransportLogger.Connection:1: RECEIVED: KeepAliveInfo {}
      14:58:41,699 DEBUG [ActiveMQ Transport: tcp://gkscoc01.igk.intel.com/172.28.168.10:61616] org.apache.activemq.transport.TransportLogger.Connection:1: RECEIVED: KeepAliveInfo {}
      14:58:56,701 DEBUG [ActiveMQ Transport: tcp://gkscoc01.igk.intel.com/172.28.168.10:61616] org.apache.activemq.transport.TransportLogger.Connection:1: RECEIVED: KeepAliveInfo {}
      14:58:56,707 DEBUG [ActiveMQ Transport: tcp://gkscoc01.igk.intel.com/172.28.168.10:61616] org.apache.activemq.transport.TransportLogger.Connection:1: RECEIVED Exception: java.io.EOFException
      java.io.EOFException
              at java.io.DataInputStream.readInt(DataInputStream.java:397)
              at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267)
              at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:156)
              at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136)
              at java.lang.Thread.run(Thread.java:536)
      14:58:56,709 DEBUG [main] org.apache.activemq.transport.TransportLogger.Connection:1: SENDING: RemoveInfo {commandId = 6, responseRequired = false, objectId = ID:itstl007-41444-1179835075925-1:0:1:1}
      14:58:56,711 DEBUG [main] org.apache.activemq.transport.TransportLogger.Connection:1: SENDING: RemoveInfo {commandId = 7, responseRequired = false, objectId = ID:itstl007-41444-1179835075925-1:0:1}
      14:58:56,711 DEBUG [main] org.apache.activemq.transport.TransportLogger.Connection:1: SENDING: RemoveInfo {commandId = 8, responseRequired = true, objectId = ID:itstl007-41444-1179835075925-1:0}
      Exception in thread "main" javax.jms.JMSException: The transport is not running.
              at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:58)
              at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1213)
              at org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:579)
              at com.intel.ingrid.test.stress.jms.HugeMessageProducer.main(HugeMessageProducer.java:93)
      Caused by: java.io.IOException: The transport is not running.
              at org.apache.activemq.transport.TransportSupport.checkStarted(TransportSupport.java:103)
              at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:117)
              at org.apache.activemq.transport.TransportLogger.oneway(TransportLogger.java:71)
              at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141)
              at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80)
              at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93)
              at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:47)
              at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:69)
              at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:79)
              at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1203)
              ... 2 more
      

      After I changed wireFormat.maxInactivityDuration to 0 it succeeded and sent the message.

      It's strange for me because in the first case (when wireFormat.maxInactivityDuration is not set, so default value is used) there's an activity occuring - the client sends a lot of data so server should not treat it as a hanging client and the server should not close the connection.

      Attachments

        Activity

          People

            dejanb Dejan Bosanac
            new Pawel Niewiadomski
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: