Hi Marc, for messages of that size, I'd definitely recommend using FTP. You can find examples of how to use FTP with blob messages in this test case
http://fisheye6.atlassian.com/browse/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/blob/FTPBlobTest.java?r=HEAD (and some more in that package). Of course, tests are using embedded FTP server, but you might opt for an external one. Cheers -- Dejan Bosanac - http://twitter.com/dejanb Open Source Integration - http://fusesource.com/ ActiveMQ in Action - http://www.manning.com/snyder/ Blog - http://www.nighttale.net On Sat, Jan 30, 2010 at 3:43 AM, Marc Weil <marc.w...@gmail.com> wrote: > Hello everyone, > > I'm trying to send a large (~1.6GB) BlobMessage to my ActiveMQ server via a > queue and every time I try I get a seemingly endless series > of IllegalArgumentExceptions with the same backtrace: > > ERROR | EXCEPTION > java.lang.IllegalArgumentException > at java.nio.Buffer.position(Buffer.java:235) > at org.mortbay.io.nio.NIOBuffer.poke(NIOBuffer.java:142) > at org.mortbay.io.AbstractBuffer.put(AbstractBuffer.java:391) > at org.mortbay.jetty.HttpParser.reset(HttpParser.java:844) > at org.mortbay.jetty.HttpConnection.destroy(HttpConnection.java:131) > at > > org.mortbay.jetty.AbstractConnector.connectionClosed(AbstractConnector.java:785) > at > > org.mortbay.jetty.nio.SelectChannelConnector.access$100(SelectChannelConnector.java:64) > at > > org.mortbay.jetty.nio.SelectChannelConnector$1.endPointClosed(SelectChannelConnector.java:92) > at > > org.mortbay.io.nio.SelectChannelEndPoint.doUpdateKey(SelectChannelEndPoint.java:382) > at > > org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:337) > at > org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166) > at > > org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124) > at > > org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:537) > at > > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) > > > I'm assuming this is coming from the built-in Jetty fileserver. I've > googled > around for quite a while but can't seem to find anything recent about this > problem. I am giving ActiveMQ 5Gb of RAM in the startup script, so I don't > think that is the issue (unless jetty also needs to be forced to start with > a certain heap size). > > My server is a 4-processor, 8-core machine running Ubuntu x86-64, ActiveMQ > 5.3.0, and OpenJDK 1.6.0 64-bit server edition. The machine itself has 32Gb > of RAM so I have plenty of memory to play with. > > I'm not really sure what else to use since the docs on BlobMessages only > briefly mentions using other out-of-band solutions (SCP, FTP, etc) without > going into any details. If anyone has any ideas of where I need to look to > trace the root cause, or has any other ideas about how to try configuring > things, I'd greatly appreciate it. Perhaps I'm not supposed to be using the > built-in jetty server for such large messages? > > Thanks, > Marc >