OK,

I bit more experimenting, and I think I can answer my own questions a bit:

I believe it is just the version and workspace FileSystem that needs to be 
unique to each node, and I have discovered that environment variables can be 
embedded in prefixes, so, for the version and workspace filesystem schema 
prefixes I have:

  <param name="schemaObjectPrefix" value="${wsp.name}_${node.id}_"/>

and

  <param name="schemaObjectPrefix" value="${wsp.name}_${node.id}_"/>

And, to give the nodes unique ids, but with a single repository.xml, I have:

  <Cluster id="${node.id}">

Does this seem like I'm on the right track?


Many Thanks,

Luke Noel-Storr.
----------------

Integrated Publishing Solutions Ltd.
Tel: +44 (0)1926 889199
http://www.integrate.co.uk



On 6 Feb 2013, at 11:03, Luke Noel-Storr <[email protected]> 
wrote:

> Hi,
> 
> Thanks for the answers, both.
> 
> Regarding locks, from what I've read session locks won't work, but object 
> locks should.  Can anyone confirm this.
> 
> I think I will need to use locks as, as far as I can tell, JCR offers no 
> means of specifying unique keys, or of doing an atomic query+update.  The 
> only two ways I've seen recommended of doing this are using locks, or using 
> single name siblings, as my "unique key" is made of a number of fields, 
> single name siblings seem to be an unlikely solution, unless the name I use 
> is some combination of all the properties and their values.
> 
> Also, regarding the FileSystem, where the clustering page in the wiki says:
> 
> 
>> 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)
> 
> 
> Does this mean that I will not be able to use Oracle persistence for the 
> version table and the workspace file system, or, if I do, will each node need 
> to use a different schema object prefix pre-fix? (and can the node id be 
> automatically added to the prefix, like value="${node.id}_version"?)
> 
> 
> Regarding using Oracle, I seem to have come across a strange bug, which I've 
> not yet been able to identify.  When starting up a new repository on a clean 
> DB, you get an error "ORA-00955: name is already used by an existing object" 
> for every set of tables it tries to create.  If you restart it then gets past 
> the error, but hits it again for the next set of tables.  This meant I needed 
> to restart 4 times before it would run, once for the default workspace, once 
> for versions, and one for security, and then the final time it worked.  I'll 
> try and have a dig into this when I get a bit more time, but, wondered if 
> anyone else had experienced this.
> 
> I lost about two days to the bug, as every time I hit it I tried clearing the 
> database, changing some configuration, or settings, and then restarting.  It 
> was only by chance that I finally found that a brute force effort would 
> finally get it running smoothly.
> 
> 
> Many Thanks,
> 
> Luke Noel-Storr.
> ----------------
> 
> Integrated Publishing Solutions Ltd.
> Tel: +44 (0)1926 889199
> http://www.integrate.co.uk
> 
> 
> 
> On 5 Feb 2013, at 22:08, Ian Boston <[email protected]> wrote:
> 
>> On 5 February 2013 20:57, Jeroen Reijn <[email protected]> wrote:
>>> On Mon, Feb 4, 2013 at 11:10 AM, Luke Noel-Storr
>>> <[email protected]> wrote:
>>>> 
>>>> 
>>>> Also, and advice on locking would be appreciated.
>>>> 
>>> 
>>> Sorry can't help you with this one.
>>> 
>> 
>> JCR locks will work within the same JVM but will not propagate
>> reliably throughout a cluster since the replay of the journal  (which
>> is used to propagate the lock) is not synchronised with the writing of
>> that journal. ie cluster nodes can fall behind.
>> 
>> If you need cluster wide locks then you should probably use separate
>> component. Since you have Oracle in the mix, a transactional lock
>> within Oracle will be the easiest way of achieving this. Perhaps a
>> table with a sha1of the path to be locked will work, with a simple IN
>> query to select descendents. YMMV.
>> 
>> 
>> HTH
>> Ian
> 

Reply via email to