You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Kalv <ka...@kalv.co.uk> on 2006/05/04 10:58:25 UTC
MySql Persistence Problem
Hi all, I'm new to Activemq and i am having quite a few problems, but this is
the main one at the moment that i am trying to fix.
I have both RC2 and the latest Incubator release. Consumption of a queue
works fine when using the default derby and def journal settings. I change
the settings to use a mysql backend. It works fine when producing and
consuming some messages. I then stop the consumer let the queue grow. Then
stop activemq, Start it up again expecting the queue to be still there which
it is but i try to consume it i get an exception:
java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:178)
at java.io.DataInputStream.readFully(DataInputStream.java:152)
at
org.apache.activemq.openwire.v1.BaseDataStreamMarshaller.looseUnmarshalByteSequence(BaseDataStreamMarshaller.java:599)
at
org.apache.activemq.openwire.v1.MessageMarshaller.looseUnmarshal(MessageMarshaller.java:204)
at
org.apache.activemq.openwire.v1.ActiveMQMessageMarshaller.looseUnmarshal(ActiveMQMessageMarshaller.java:100)
at
org.apache.activemq.openwire.v1.ActiveMQTextMessageMarshaller.looseUnmarshal(ActiveMQTextMessageMarshaller.java:100)
at
org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:348)
at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:210)
at
org.apache.activemq.store.jdbc.JDBCMessageStore$1.recoverMessage(JDBCMessageStore.java:155)
at
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doRecover(DefaultJDBCAdapter.java:338)
at
org.apache.activemq.store.jdbc.JDBCMessageStore.recover(JDBCMessageStore.java:153)
at
org.apache.activemq.store.journal.JournalMessageStore.recover(JournalMessageStore.java:342)
at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
at
org.apache.activemq.broker.region.QueueRegion.createDestination(QueueRegion.java:58)
at
org.apache.activemq.broker.jmx.ManagedQueueRegion.createDestination(ManagedQueueRegion.java:56)
at
org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:77)
at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:217)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:129)
at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:141)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:129)
at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:142)
at
org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:161)
at
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:293)
at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73)
at
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:77)
at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73)
at
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:86)
at
org.apache.activemq.broker.AbstractConnection.processAddConsumer(AbstractConnection.java:428)
at
org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:295)
at
org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:202)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:114)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:143)
at java.lang.Thread.run(Thread.java:595)
I am using JENCKS/Spring to consume the Queue, Here is the activemq.conf
<!-- START SNIPPET: xbean -->
<beans xmlns="http://activemq.org/config/1.0">
<broker useJmx="true">
<!-- In ActiveMQ 4, you can setup destination policies -->
<persistenceAdapter>
<journaledJDBC journalLogFiles="20"
dataDirectory="/opt/activemq-data" dataSource="#mysql-ds"/>
<!-- <memoryPersistenceAdapter/> -->
<!-- <jdbcPersistenceAdapter dataSource="#mysql-ds"/> -->
<!-- <jdbcPersistenceAdapter
adapterClass="org.apache.activemq.store.jdbc.store.adapter.BlobJDBCAdapter"/>
-->
<!-- To use a different datasource, use th following syntax : -->
<!-- <journaledJDBC journalLogFiles="10"
dataDirectory="/opt/activemq-data" dataSource="#mysql-ds"/> -->
</persistenceAdapter>
<transportConnectors>
<transportConnector name="default" uri="tcp://localhost:61616"
discoveryUri="multicast://default"/>
<transportConnector name="stomp" uri="stomp://localhost:61613"/>
</transportConnectors>
<networkConnectors>
<!-- by default just auto discover the other brokers -->
<networkConnector name="default" uri="multicast://default"/>
</networkConnectors>
</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://10.10.32.191/activemq?relaxAutoCommit=true"/>
<property name="username" value="sequoia"/>
<property name="password" value="w1ck3d"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
</beans>
Other information :
Mysql 4.1.11-debian sarge release
tried latest mysql-5 jdbc connector as well latest 3.1
Looking at the database a query is ran just before the exception:
SELECT ID, MSG FROM ACTIVEMQ_MSGS WHERE CONTAINER=? ORDER BY ID
--
View this message in context: http://www.nabble.com/MySql-Persistence-Problem-t1555507.html#a4225339
Sent from the ActiveMQ - User forum at Nabble.com.
Re: MySql Persistence Problem
Posted by Kalv <ka...@kalv.co.uk>.
I clear all the data - persistence stuff in the database and in the journal.
I have tried RC2 and only the latest incubator nigthly release.
Which should i use for the latest build, a RC3 snapshot, Nightly-Snapshot or
incubator?
--
View this message in context: http://www.nabble.com/MySql-Persistence-Problem-t1555507.html#a4226206
Sent from the ActiveMQ - User forum at Nabble.com.
Re: MySql Persistence Problem
Posted by James Strachan <ja...@gmail.com>.
BTW when upgrading from 4.0-RC2 to 4.0-RC3 you generally have to clear down
the journals and database before upgrading the jars. Are you getting these
problems with a completely fresh installation of 4.0-RC3?
On 5/4/06, Kalv <ka...@kalv.co.uk> wrote:
>
>
> Hi all, I'm new to Activemq and i am having quite a few problems, but this
> is
> the main one at the moment that i am trying to fix.
>
> I have both RC2 and the latest Incubator release. Consumption of a queue
> works fine when using the default derby and def journal settings. I change
> the settings to use a mysql backend. It works fine when producing and
> consuming some messages. I then stop the consumer let the queue grow. Then
> stop activemq, Start it up again expecting the queue to be still there
> which
> it is but i try to consume it i get an exception:
>
> java.io.EOFException
> at java.io.DataInputStream.readFully(DataInputStream.java:178)
> at java.io.DataInputStream.readFully(DataInputStream.java:152)
> at
>
> org.apache.activemq.openwire.v1.BaseDataStreamMarshaller.looseUnmarshalByteSequence
> (BaseDataStreamMarshaller.java:599)
> at
> org.apache.activemq.openwire.v1.MessageMarshaller.looseUnmarshal(
> MessageMarshaller.java:204)
> at
> org.apache.activemq.openwire.v1.ActiveMQMessageMarshaller.looseUnmarshal(
> ActiveMQMessageMarshaller.java:100)
> at
>
> org.apache.activemq.openwire.v1.ActiveMQTextMessageMarshaller.looseUnmarshal
> (ActiveMQTextMessageMarshaller.java:100)
> at
> org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(
> OpenWireFormat.java:348)
> at
> org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java
> :210)
> at
> org.apache.activemq.store.jdbc.JDBCMessageStore$1.recoverMessage(
> JDBCMessageStore.java:155)
> at
> org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doRecover(
> DefaultJDBCAdapter.java:338)
> at
> org.apache.activemq.store.jdbc.JDBCMessageStore.recover(
> JDBCMessageStore.java:153)
> at
> org.apache.activemq.store.journal.JournalMessageStore.recover(
> JournalMessageStore.java:342)
> at org.apache.activemq.broker.region.Queue.<init>(Queue.java:97)
> at
> org.apache.activemq.broker.region.QueueRegion.createDestination(
> QueueRegion.java:58)
> at
> org.apache.activemq.broker.jmx.ManagedQueueRegion.createDestination(
> ManagedQueueRegion.java:56)
> at
> org.apache.activemq.broker.region.AbstractRegion.addDestination(
> AbstractRegion.java:77)
> at
> org.apache.activemq.broker.region.RegionBroker.addDestination(
> RegionBroker.java:217)
> at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java
> :129)
> at
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(
> AdvisoryBroker.java:141)
> at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java
> :129)
> at
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(
> MutableBrokerFilter.java:142)
> at
> org.apache.activemq.broker.region.AbstractRegion.addConsumer(
> AbstractRegion.java:161)
> at
> org.apache.activemq.broker.region.RegionBroker.addConsumer(
> RegionBroker.java:293)
> at
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73)
> at
> org.apache.activemq.advisory.AdvisoryBroker.addConsumer(
> AdvisoryBroker.java:77)
> at
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73)
> at
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(
> MutableBrokerFilter.java:86)
> at
> org.apache.activemq.broker.AbstractConnection.processAddConsumer(
> AbstractConnection.java:428)
> at
> org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:295)
> at
> org.apache.activemq.broker.AbstractConnection.service(
> AbstractConnection.java:202)
> at
> org.apache.activemq.broker.TransportConnection$1.onCommand(
> TransportConnection.java:62)
> at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(
> ResponseCorrelator.java:97)
> at
> org.apache.activemq.transport.TransportFilter.onCommand(
> TransportFilter.java:63)
> at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(
> WireFormatNegotiator.java:114)
> at
> org.apache.activemq.transport.InactivityMonitor.onCommand(
> InactivityMonitor.java:122)
> at
> org.apache.activemq.transport.TransportSupport.doConsume(
> TransportSupport.java:87)
> at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:143)
> at java.lang.Thread.run(Thread.java:595)
>
> I am using JENCKS/Spring to consume the Queue, Here is the activemq.conf
>
> <!-- START SNIPPET: xbean -->
> <beans xmlns="http://activemq.org/config/1.0">
>
> <broker useJmx="true">
>
> <!-- In ActiveMQ 4, you can setup destination policies -->
>
> <persistenceAdapter>
> <journaledJDBC journalLogFiles="20"
> dataDirectory="/opt/activemq-data" dataSource="#mysql-ds"/>
> <!-- <memoryPersistenceAdapter/> -->
> <!-- <jdbcPersistenceAdapter dataSource="#mysql-ds"/> -->
> <!-- <jdbcPersistenceAdapter
> adapterClass="org.apache.activemq.store.jdbc.store.adapter.BlobJDBCAdapter
> "/>
> -->
> <!-- To use a different datasource, use th following syntax : -->
>
> <!-- <journaledJDBC journalLogFiles="10"
> dataDirectory="/opt/activemq-data" dataSource="#mysql-ds"/> -->
> </persistenceAdapter>
>
> <transportConnectors>
> <transportConnector name="default" uri="tcp://localhost:61616"
> discoveryUri="multicast://default"/>
> <transportConnector name="stomp" uri="stomp://localhost:61613"/>
> </transportConnectors>
>
> <networkConnectors>
> <!-- by default just auto discover the other brokers -->
> <networkConnector name="default" uri="multicast://default"/>
> </networkConnectors>
>
> </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://10.10.32.191/activemq?relaxAutoCommit=true"/>
> <property name="username" value="sequoia"/>
> <property name="password" value="w1ck3d"/>
> <property name="poolPreparedStatements" value="true"/>
> </bean>
> </beans>
>
> Other information :
> Mysql 4.1.11-debian sarge release
> tried latest mysql-5 jdbc connector as well latest 3.1
>
> Looking at the database a query is ran just before the exception:
> SELECT ID, MSG FROM ACTIVEMQ_MSGS WHERE CONTAINER=? ORDER BY ID
> --
> View this message in context:
> http://www.nabble.com/MySql-Persistence-Problem-t1555507.html#a4225339
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>
--
James
-------
http://radio.weblogs.com/0112098/