Exception when sending big messages
-----------------------------------
Key: AMQ-1249
URL: https://issues.apache.org/activemq/browse/AMQ-1249
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 4.1.1
Reporter: Pawel Niewiadomski
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):
{noformat}
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 = [EMAIL PROTECTED], 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 = [EMAIL PROTECTED], 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
{noformat}
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*.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.