can you open a jira issue for this, include the stack trace and possibly the log files with debug logging so we can get some context around the exception. It looks like a concurrency issue that results in modification to the message while it is being marshalled, the logs may help indicate when this could occur.
On 28 May 2010 10:08, Nirav <nirav.n...@zensar.in> wrote: > > Hi, > > We are using ActiveMQ 5.3.2 in our project, Usage of multiple Queues and a > Topic is very high in our modules. > > We have configured ActiveMQ to use MySQL as persistence store. > > We are getting following error frequently, > > java.lang.NegativeArraySizeException > at > > org.apache.activemq.openwire.v5.BaseDataStreamMarshaller.looseUnmarshalByteSequence(BaseDataStreamMarshaller.java:639) > at > > org.apache.activemq.openwire.v5.MessageMarshaller.looseUnmarshal(MessageMarshaller.java:229) > at > > org.apache.activemq.openwire.v5.ActiveMQMessageMarshaller.looseUnmarshal(ActiveMQMessageMarshaller.java:101) > at > > org.apache.activemq.openwire.v5.ActiveMQStreamMessageMarshaller.looseUnmarshal(ActiveMQStreamMessageMarshaller.java:101) > at > > org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:364) > at > > org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:204) > at > > org.apache.activemq.store.jdbc.JDBCMessageStore$2.recoverMessage(JDBCMessageStore.java:233) > at > > org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doRecoverNextMessages(DefaultJDBCAdapter.java:777) > at > > org.apache.activemq.store.jdbc.JDBCMessageStore.recoverNextMessages(JDBCMessageStore.java:229) > at > > org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:87) > at > > org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:97) > at > > org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:251) > at > > org.apache.activemq.broker.region.cursors.AbstractStoreCursor.hasNext(AbstractStoreCursor.java:142) > at > > org.apache.activemq.broker.region.cursors.StoreQueueCursor.hasNext(StoreQueueCursor.java:131) > at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1447) > at > org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1585) > at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1219) > at > > org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98) > at > > org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36) > > Below is our ActiveMQ configuration, > > <beans > xmlns="http://www.springframework.org/schema/beans" > xmlns:amq="http://activemq.apache.org/schema/core" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://activemq.apache.org/schema/core > http://activemq.apache.org/schema/core/activemq-core.xsd"> > > <bean > > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > <property name="locations"> > <value>file:${activemq.base}/conf/credentials.properties</value> > </property> > </bean> > > <broker xmlns="http://activemq.apache.org/schema/core" > brokerName="localhost" dataDirectory="${activemq.base}/data" > destroyApplicationContextOnStop="true"> > > <destinationPolicy> > <policyMap> > <policyEntries> > <policyEntry topic=">" producerFlowControl="false" memoryLimit="1mb"> > <pendingSubscriberPolicy> > <vmCursor /> > </pendingSubscriberPolicy> > </policyEntry> > <policyEntry queue=">" producerFlowControl="false" memoryLimit="1mb"> > </policyEntry> > </policyEntries> > </policyMap> > </destinationPolicy> > > <managementContext> > <managementContext createConnector="false"/> > </managementContext> > > <persistenceAdapter> > <jdbcPersistenceAdapter dataSource="#mysql-ds"/> > </persistenceAdapter> > > <transportConnectors> > <transportConnector name="default" uri="tcp://0.0.0.0:61616"/> > </transportConnectors> > > </broker> > > <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" > destroy-method="close"> > <property name="driverClassName" value="com.mysql.jdbc.Driver"/> > <property name="url" > value="jdbc:mysql://xyz/activemq?relaxAutoCommit=true"/> > <property name="username" value="xyz"/> > <property name="password" value="xyz"/> > <property name="maxActive" value="200"/> > <property name="poolPreparedStatements" value="true"/> > </bean> > <import resource="jetty.xml"/> > </beans> > > This module is in development phase so all messages are produced and > consumed by same version of ActiveMQ. > > Please help us in this issue. > > Regards, > Nirav. > -- > View this message in context: > http://old.nabble.com/java.lang.NegativeArraySizeException-%40-ActiveMQ-5.3.2-tp28704472p28704472.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > > -- http://blog.garytully.com Open Source Integration http://fusesource.com