On Fri, Oct 16, 2009 at 7:41 AM, mcarson <mcar...@amsa.com> wrote: > > Using the scanner seems to work for parsing down the huge file based upon a > delimiter. However it appears that either the JmsTemplate I'm using to send > messages or ActiveMQ cannot keep pace. > > Somewhere between 250K - 500K sends, I get this stack trace: > > Exception in thread "main" > org.springframework.jms.UncategorizedJmsException: Uncategorized exception > occured during JMS processing; nested exception is javax.jms.JMSException: > java.io.EOFException > at > org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:308) > at > org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) > at > org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474) > at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:548) > at asa.camel.TestScanner.parseRecord(TestScanner.java:62) > at asa.camel.TestScanner.readFile(TestScanner.java:34) > at asa.camel.TestScanner.main(TestScanner.java:82) > Caused by: javax.jms.JMSException: java.io.EOFException > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) > at > org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1244) > at > org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1339) > at > org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:298) > at > org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196) > at > org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:462) > ... 4 more > Caused by: java.io.EOFException > at java.io.DataInputStream.readInt(DataInputStream.java:375) > at > org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269) > at > org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:210) > at > org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:202) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185) > at java.lang.Thread.run(Thread.java:619) > > Any ideas what could cause this?
I'm not sure what kind of configuration you're using for ActiveMQ, but are you utilizing a connection pooler so that the the connection, session and producer are not recreated for every call to send()? See the following for more info: http://activemq.apache.org/jmstemplate-gotchas.html Bruce -- perl -e 'print unpack("u30","D0G)u8...@4vyy9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*" );' ActiveMQ in Action: http://bit.ly/2je6cQ Blog: http://bruceblog.org/ Twitter: http://twitter.com/brucesnyder