activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lucille Wilson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-4335) Cannot set maxFrameSize greater than 100MB
Date Fri, 22 Feb 2013 22:00:14 GMT

    [ https://issues.apache.org/jira/browse/AMQ-4335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13584748#comment-13584748
] 

Lucille Wilson commented on AMQ-4335:
-------------------------------------

Dear Mr. Bish,

I think we should restart this conversation.  Perhaps I can fill in some details.

The problem, simply stated, is I want to produce a TextMessage whose message size is over
100MB.  I seem to be prevented from doing so by the DEFAULT MAX FRAME SIZE parameter.

In order to effect this change, I made the following changes to activmq and to my application:

1. I am running Activemq 5.8.0.
We are using a native broker, not an embedded broker.  We must use TextMessage, not BytesMessage.


In ACTIVEMQ_HOME/conf/activemq.xml

I made the follwowing changes:

<transportConnectors>
 <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireformat.maxFrameSize=157286400"/>
 <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireformat.maxFrameSize=157286400"/>
 </transportConnectors>

and also:
 <policyEntry queue=">" producerFlowControl="true" memoryLimit="20mb"> (I increased
this to 20mb)

And also:
  <managementContext>
            <managementContext createConnector="true"/> (I changed this to true)
        </managementContext>

And also
 <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="950 mb"/> ( I changed this to 950mb)
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="100 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="50 gb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>


2. When I start activemq (in a cmd line console), I inspect the activemq.log and see:
2013-02-22 14:28:14,333 | DEBUG | Publishing: tcp://Lucille-Win7-PC:61616 for broker transport
URI: tcp://Lucille-Win7-PC:61616?maximumConnections=1000&wireformat.maxFrameSize=157286400
| org.apache.activemq.broker.TransportConnector | main
2013-02-22 14:28:14,333 | DEBUG | Publishing: amqp://0.0.0.0:5672 for broker transport URI:
amqp://0.0.0.0:5672?maximumConnections=1000&wireformat.maxFrameSize=157286400 | org.apache.activemq.broker.TransportConnector
| main

This leads me to believe that activemq will accept a message larger than 100MB.

3. Next I run my application (not my unit tests).
When I do, my RSIProducerToClient producer.send(TextMessage) does send the TextMessage.  My
application does not detect any exceptions.
My client application (waiting for this message) does not get the message at all.  My client
application times out while waiting on this message.
We look on the queue and we do not see the message either enqueued or dequeued.

When we inspect the activemq.log we see:

2013-02-22 14:30:20,692 | DEBUG | Transport Connection to: tcp://192.168.2.106:50385 failed:
java.io.IOException: Frame size of 140 MB larger than max allowed 100 MB | org.apache.activemq.broker.TransportConnection.Transport
| ActiveMQ Transport: tcp:///192.168.2.106:50385@61616
java.io.IOException: Frame size of 140 MB larger than max allowed 100 MB
	at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:277)
	at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221)
	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213)
	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
	at java.lang.Thread.run(Thread.java:662)


4. 
It seems to us, that Activemq is allowing the possibility of sending a message over 100MB
when Activemq starts up.  When we put the maxFrameSize in the activemq.xml and then we see
that value (which is 157286400) parroted back when we start up Activemq in a console, we believe
that ActiveMQ will be able to allow us to send a message of up to 150MB.

But when we actually DO send such a large message, the message is not allowed.  

Please help us to figure out how to send a TextMessage which is over 100mb long.  





Thank you.
Lucille Wilson
                
> Cannot set maxFrameSize greater than 100MB
> ------------------------------------------
>
>                 Key: AMQ-4335
>                 URL: https://issues.apache.org/jira/browse/AMQ-4335
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.8.0
>         Environment: Windows 2008 R2
>            Reporter: Pat Flaherty
>         Attachments: AMQ4335Test3_WithLargeGeneratedString.zip, AMQ4335_Test4_regularRunThroughOurApplication.zip,
AMQ4335Test.java, AMQ4335Test.java, AMQ4335Test.java, amq4335.xml, amq4335.xml, BugInActivemq.zip
>
>
> Trying to send JSON messages greater then 100MB and I receive the error:
> Transport Connection to: tcp://192.168.10.1:55823 failed: java.io.IOException: Frame
size of 140 MB larger
>  than max allowed 100 MB
> I tried increasing the frame size in 5.8.0 as follows:
>         <transportConnectors>
>             <!-- DOS protection, limit concurrent connections to 1000 and frame size
to 100MB -->
>             <transportConnector name="openwire" uri="tcp://192.168.10.1:61616?maximumConnections=1000&amp;wireformat.maxFrameSize=157286400"/>
>             <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireformat.maxFrameSize=157286400"/>
>         </transportConnectors> 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message