I get exception ( stacktrace shown at the end of this message ) when try to
send large message to a queue. Text is Base64 text.  When I say large I do
not mean enormous. It is 59KB files stored as Base64 string. 
    Similar exception was thrown in ActiveMQ version 4.0.1. 

Here are some settings:
    <persistenceAdapter> 
           <jdbcPersistenceAdapter dataSource="#mylocalhost-ds"/> 
    </persistenceAdapter> 

        <bean id="mylocalhost-ds"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
                <property name="driverClassName"
value="com.mysql.jdbc.Driver"/> 
                <property name="url"
value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/> 
                <property name="username" value="root"/> 
                <property name="password" value="rootpassword"/> 
                <property name="poolPreparedStatements" value="true"/> 
        </bean> 
NOTE: short messages work fine with above settings.

However, when I repeat the same case with derby database everything works
fine.
Here are the settings used for derby:

   <persistenceAdapter> 
           <jdbcPersistenceAdapter dataSource="#derby-ds"/> 
    </persistenceAdapter>

  <bean id="derby-ds" class="org.apache.derby.jdbc.EmbeddedDataSource"> 
    <property name="databaseName" value="derbydb"/> 
    <property name="createDatabase" value="create"/> 
  </bean> 

What am I doing wrong with MySql?

**************************************************************************************
*** exception stack trace 
**************************************************************************************
javax.jms.JMSException: Data truncation: Data too long for column 'MSG' at
row 1 
        at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:46)
 
        at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1177)
 
        at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1548) 
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:465)
 
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:356)
 
        at
com.immicom.mq.send.ZrActiveMQSender.sendMessage(ZrActiveMQSender.java:61) 
        at com.zr.articles.UploadArticles.doPost(UploadArticles.java:292) 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
 
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) 
        at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
 
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 
        at java.lang.Thread.run(Thread.java:595) 
Caused by: java.io.IOException: Data truncation: Data too long for column
'MSG' at row 1 
        at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:43) 
        at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:128)
 
        at
org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:75)
 
        at
org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:224)
 
        at
org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:117)
 
        at org.apache.activemq.broker.region.Queue.send(Queue.java:285) 
        at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292) 
        at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:377) 
        at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193) 
        at
org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126) 
        at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
 
        at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136)
 
        at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:480)
 
        at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604) 
        at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:284)
 
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:177)
 
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
 
        at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
 
        at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
 
        at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
 
        at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137) 
        ... 1 more 
Caused by: java.lang.Throwable: java.sql.BatchUpdateException: Data
truncation: Data too long for column 'MSG' at row 1 
        at
com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:665)
 
        at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:205)
 
        at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:205)
 
        at
org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:96)
 
        at
org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:75)
 
        at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:119)
 
        ... 20 more 
org.apache.activemq.ConnectionFailedException: The JMS connection has
failed: Connection reset 
        at
org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(ActiveMQConnection.java:1230)
 
        at
org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:273)
 
        at
org.apache.activemq.ActiveMQConnection.createQueueSession(ActiveMQConnection.java:1121)
 
        at
com.immicom.mq.send.ZrActiveMQSender.sendMessage(ZrActiveMQSender.java:57) 
        at com.zr.articles.UploadArticles.doPost(UploadArticles.java:292) 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
 
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) 
        at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
 
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 
        at java.lang.Thread.run(Thread.java:595) 
Caused by: java.net.SocketException: Connection reset 
        at java.net.SocketInputStream.read(SocketInputStream.java:168) 
        at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:49)
 
        at
org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:56)
 
        at java.io.DataInputStream.readInt(DataInputStream.java:353) 
        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) 
        ... 1 more 
 


-- 
View this message in context: 
http://www.nabble.com/Exception-thrown-with-MySql-database-tf2919916.html#a8160524
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to