activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-2935) java.io.EOFException: Chunk stream does not exist at page on broker start
Date Tue, 05 Oct 2010 09:39:51 GMT

    [ https://issues.apache.org/activemq/browse/AMQ-2935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=62355#action_62355
] 

Andy commented on AMQ-2935:
---------------------------

Eric,

Only using "schedulerSupport=false" does NOT resolve this issue. The problem is specifically
a KahaDB problem (the default persistence store is KahaDB).

Swapping out the persistence store is currently the only option. If you need 'any' persistence
then I would suggest the jdbcPersistenceAdapter (the default uses a Derby Database, but many
can be used).
This is substantially slower than KahaDB, but not enough to worry about if you are only pushing
say several thousand messages a minute (you'd have to run your own tests). I am in fact happy
enough with the performance that I am likely to stick with it for stabilities sake even if
this issue is resolved.

<broker xmlns="http://activemq.apache.org/schema/core"
          useJmx="false"
          brokerName="YourName"
          useShutdownHook="false"
          persistent="true"
          start="false"
          schedulerSupport="false"
          enableStatistics="false">

    <persistenceAdapter>
      <jdbcPersistenceAdapter dataDirectory="activemq-data/jdbc"/>
    </persistenceAdapter>

.....

Note: If schedulerSupport is enabled then the error will still persist (excuse the pun) due
to the fact that the scheduler uses KahaDB irrelevant of the persistenceAdapter - So if you
want scheduler support then there is currently no option (unless someone knows how to configure
the scheduler to use another store?).

Gary,

I should have mentioned that my configuration is for an OpenEJB RA, whereby the RA is responsible
for starting and stopping ActiveMQ (which is does, and still produces a corrupt KahaDB) -
The default OpenEJB RA config uses a memory store, but I require persistence for my project.
A standalone application (basically as Krzysztof writes) which loops through start/stop will
still produce the same stacktrace virtually every time.

> java.io.EOFException: Chunk stream does not exist at page on broker start
> -------------------------------------------------------------------------
>
>                 Key: AMQ-2935
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2935
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.0, 5.4.1, 5.5.0
>         Environment: Win7 32bit, JDK 1.6_20
>            Reporter: Andy
>            Assignee: Gary Tully
>            Priority: Blocker
>         Attachments: activemq-data.zip, activemq.xml, stacktraces.txt
>
>
> I am seeing this regularly upon restarts in all versions from 5.4.x - I cannot downgrade
due to breaking issues in previous versions.
> The broker was shutdown cleanly with no logged issues.
> Deleting the activemq-data directory seems to be the only recovery solution (which is
not an option in production)
> 2010-09-23 13:54:30,997 [Starting ActiveMQ Broker] ERROR org.apache.activemq.broker.BrokerService
- Failed to start ActiveMQ JMS Message Broker. Reason: java.io.EOFException: Chunk stream
does not exist at page: 0
> java.io.EOFException: Chunk stream does not exist at page: 0
> 	at org.apache.kahadb.page.Transaction$2.readPage(Transaction.java:454)
> 	at org.apache.kahadb.page.Transaction$2.<init>(Transaction.java:431)
> 	at org.apache.kahadb.page.Transaction.openInputStream(Transaction.java:428)
> 	at org.apache.kahadb.page.Transaction.load(Transaction.java:404)
> 	at org.apache.kahadb.page.Transaction.load(Transaction.java:361)
> 	at org.apache.activemq.broker.scheduler.JobSchedulerStore$3.execute(JobSchedulerStore.java:250)
> 	at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
> 	at org.apache.activemq.broker.scheduler.JobSchedulerStore.doStart(JobSchedulerStore.java:239)
> 	at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
> 	at org.apache.activemq.broker.scheduler.SchedulerBroker.getStore(SchedulerBroker.java:198)
> 	at org.apache.activemq.broker.scheduler.SchedulerBroker.getInternalScheduler(SchedulerBroker.java:185)
> 	at org.apache.activemq.broker.scheduler.SchedulerBroker.start(SchedulerBroker.java:85)
> 	at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:157)
> 	at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:157)
> 	at org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:112)
> 	at org.apache.activemq.broker.BrokerService$3.start(BrokerService.java:1786)
> 	at org.apache.activemq.broker.BrokerService.start(BrokerService.java:496)
> 	at org.apache.activemq.ra.ActiveMQResourceAdapter$1.run(ActiveMQResourceAdapter.java:85)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message