jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luke Noel-Storr <luke.noel-st...@integrate.co.uk>
Subject Clustering Question
Date Mon, 04 Feb 2013 10:10:38 GMT

I'm working on a project where we are using JCR and Jackrabbit to store data, the project
will be deployed on load balanced Websphere instances, and I have a few questions about the
best way to set this up.  

Though the project is being deployed to a J2EE container, it is just a basic servlet application,
and so so far I have just been using the embedded servlet version of Jackrabbit.

The application is being deployed in our client's infrastructure, and so we don't have much
control over the environment, and anything which strays from their standard deployment is
usually a PITA.

We will be using Oracle for the persistence layer (Oracle 9i), acquiring the connection via

I've read the closeting section of the wiki, but have some questions:

> 	• Each cluster node must have its own repository configuration.

Does this need to differ from node to node? Can it be included in the EAR/WAR? Can the parts
that need to differ be programatically applied at startup (for example, could we programatically
at startup set the node-id to the current machine name?)

> 	• A DataStore must always be shared between nodes, if used.

I think this should be fine, with a DataStore on Oracle, correct?

> 	• The global FileSystem on the repository level must be shared (only the one that
> 	is on the same level as the data store; only in the repository.xml file).

I'm a bit lost here, the FileSystem link in the wiki goes nowhere but looking up FileSystem
on this page:


It seems we could use a Database file system.  Would this meet the above requirement?  Also,
I see there is an OracleFileSystem but not an Oracle9FileSystem, is the OracleFileSystem compatible
with Oracle 9i?

> 	• Each cluster node needs its own (private) workspace level and version FileSystem
> 	 (only those within the workspace and versioning configuration; the ones in the 
> 	repository.xml and workspace.xml file).

Ah, but if I use a DBFileSystem, does that break this requirement?  How do I specify a separate
FileSystem for the repository level and workspace level?

Also, unrelated to clustering, if I use a DB file system, will this mean no files need to
be written to the disk from Jackrabbit (as the client are also funny about that on their infrastructure),
or would some components (Lucene) still need to write down files?

> 	• Each cluster node needs its own (private) Search indexes.

Ah, so this probably would be Lucene writing files to the disk, right?

> 	• Every cluster node must be assigned a unique ID.

As mentioned earlier, can this be set programatically?

> 	• A journal type must be chosen, either based on files or stored in a database.
> 	• Each cluster node must use the same (shared) journal.

I think I'm OK on these, just use a DB journal? (Oracle 9i OK?)

> 	• The persistence managers must store their data in the same, globally
> 	accessible location (see PersistenceManagerFAQ).

Again, just use Oracle, and all OK, correct?

Also, and advice on locking would be appreciated.

And finally, a question about the persistence around this:

> If you use a database persistence manager, the configured database connection must not
be under the control of an external transaction manager. Jackrabbit implements distributed
XA transaction support on a higher level, and expects to be in full control of the underlying
database connection.

How would I know if it is under the control of an external transaction manager? Would this
be configured in websphere?

Sorry for so many questions, we're on a super tight deadline (is there any other kind), so
I don't have to to experiment with stuff.

Many Thanks,

Luke Noel-Storr.

Integrated Publishing Solutions Ltd.
Tel: +44 (0)1926 889199

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message