[daisy] Collection Cache
Paul Focke
paul at outerthought.org
Wed May 21 08:41:13 CEST 2008
Hi
Great to hear that you are using the repository with other kinds of
front ends.
Indeed when you want to use multiple front ends with one repository you
should make sure the client caches get invalidated in some way. Every
time you make certain changes to the repository JMS messages will be
generated that can be used to notify your clients. It shouldn't be too
much work to configure this, basically just telling the remote
repository that it should use jms should suffice.
Documentation on the subject can be found on the bottom of this page
http://cocoondev.org/daisydocs-2_2/373-cd/375-cd/28-cd.html
As noted in the documentation the example is a little out dated. Perhaps
you could submit an update since you'll be working on the subject.
hth
Paul
On Tue, 2008-05-20 at 09:28 -0700, TimDavid wrote:
> We're using Daisy to store content that is retrieved by a Grails server for
> display in a web application.
> The Grails server code is connecting to the remote Daisy repository server
> and using the implementation of the Repository interface to retrieve
> documents.
>
> We found that if a user creates a new Collection using the Daisy wiki
> interface, and then modifies an existing document by adding it to the newly
> created collection, the application server will encounter an exception the
> next time the document is retrieved. The exception stacktrace starts like
> this
>
> org.outerj.daisy.repository.CollectionNotFoundException: The collection with
> ID 31 does not exist.
> at
> org.outerj.daisy.repository.commonimpl.CollectionCache.getCollection(CollectionCache.java:74)
> at
> org.outerj.daisy.repository.commonimpl.CommonCollectionManager.getCollection(CommonCollectionManager.java:59)
> at
> org.outerj.daisy.repository.clientimpl.RemoteDocumentStrategy.instantiateDocumentFromXml(RemoteDocumentStrategy.java:87)
> at
> org.outerj.daisy.repository.clientimpl.RemoteDocumentStrategy.load(RemoteDocumentStrategy.java:57)
> at
> org.outerj.daisy.repository.commonimpl.CommonRepository.getDocument(CommonRepository.java:192)
> at
> org.outerj.daisy.repository.commonimpl.RepositoryImpl.getDocument(RepositoryImpl.java:143)
>
> My questions are:
> 1) Is there a way to configure the CommonCollectionManager running in the
> application server JVM to gracefully detect the new collection and
> automatically flush its cache?
> 2) Alternatively, can I disable the Collection cache?
> 3) Or do I need to set up the Grails application server to listen for events
> detected by Daisy repository server and respond accordingly?
>
> Thanks for any help or suggestions,
> Tim
More information about the daisy
mailing list