activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pawel Niewiadomski (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-1249) Exception when sending big messages
Date Wed, 23 May 2007 19:54:34 GMT

    [ https://issues.apache.org/activemq/browse/AMQ-1249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39145
] 

Pawel Niewiadomski commented on AMQ-1249:
-----------------------------------------

Let me think loud: if you use socket.write you usually write chunk by chunk so you can actually
detect this somehow - you're probably use socket.write to send chunk by chunk, right? So each
call to socket.write will return after some time, so you can set flag "I'm still alive" to
true and continue sending, if connection fails flag will not be set and application will know
that something's wrong.

Am I thinking right?

> 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 = 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
> {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.


Mime
View raw message