[ 
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.

Reply via email to