Sharing OpenJMS between multiple repositories
As of daisy release 1.5-M2, daisy now ships withs ActiveMQ as JMS server integrated into the repository, so these instructions do not apply to recent daisy versions any more.
On the mailing list the question arose if it was possible to share one OpenJMS service with multiple Repository services. This document will describe how to do that. The text is taken from the email from Bruno Dumon (http://lists.cocoondev.org/pipermail/daisy/2006-March/003560.html).
It basically comes to adding an AdministeredTopic in OpenJMS, and making the appropriate changes in the Repository server configuration and the DaisyWiki (Cocoon) configuration.
Where you now have this in the openjms.xml (to be found in <DAISY_HOME>/openjms/config):
<AdministeredDestinations> <AdministeredTopic name="daisy"> <Subscriber name="fullTextIndexer"/> <Subscriber name="emailNotifier"/> </AdministeredTopic> <AdministeredQueue name="fullTextIndexerJobs"/> </AdministeredDestinations>
it needs to be doubled to e.g.:
<AdministeredDestinations> <AdministeredTopic name="daisy_1"> <Subscriber name="fullTextIndexer_1"/> <Subscriber name="emailNotifier_1"/> </AdministeredTopic> <AdministeredQueue name="fullTextIndexerJobs_1"/> <AdministeredTopic name="daisy_2"> <Subscriber name="fullTextIndexer_2"/> <Subscriber name="emailNotifier_2"/> </AdministeredTopic> <AdministeredQueue name="fullTextIndexerJobs_2"/> </AdministeredDestinations>
For each DaisyWiki (Cocoon): in the cocoon.xconf inside the configuration for this component (to be found in <DAISY_HOME>/daisywiki/webapp/WEB-INF):
<component class="org.outerj.daisy.repository.clientimpl.RemoteRepositoryManager"
add an extra configuration element jmsTopic:
<jmsTopic>daisy_1</jmsTopic>
and likewise for the second wiki (using daisy_2 of course).
Then in the myconfig.xml of each repository server (to be found in /PATHTOREPOSITORY/conf), add:
<target path="/daisy/repository/eventdispatcher"> <configuration> <jmsTopic>daisy_1</jmsTopic> </configuration> </target> <target path="/daisy/repository/fulltextindexupdater"> <configuration> <jmsTopic>daisy_1</jmsTopic> <jmsSubscriptionName>fullTextIndexer_1</jmsSubscriptionName> <jmsQueue>fullTextIndexerJobs_1</jmsQueue> </configuration> </target> <target path="/daisy/extensions/emailnotifier/emailnotifier"> <configuration> <jmsTopic>daisy_1</jmsTopic> <jmsSubscriptionName>emailNotifier_1</jmsSubscriptionName> </configuration> </target>
If there would already be a target element with the same path attribute, you need to add the configuration elements to the existing one (which is normally the case for fulltextindexupdater and emailnotifier).
It's important to do this all correctly, since otherwise you might wind up with events from one repository going to the other...



There are no comments.