cancel
Showing results for 
Search instead for 
Did you mean: 

trouble getting content up on both sides of Alfresco

gendhar
Champ in-the-making
Champ in-the-making
We are having trouble getting content to show up on both sides of our Alfresco setup.
  - Alfresco 3.0.0 (schema 128)
  - Geographically separated Oracle 10g databases in which our Alfresco schema is eing replicated via Oracle streams
  - Geographically separated Alfresco application servers running Tomcat 6.0

We had planned to sync up the content store directories of the Alfresco applications running at each location using RSYNC.
One assumption here is tht the Lucene Indexes should not be replicated in that fashion.

The index.recovery.mode=AUTO and we have tried turning on the index tracking cron from within the custom-respoitory.properties file.

Thus far in testing, the only time we are ever able to see a new document that was created at one location from the other location is following a content RSYNC AND a Tomcat restart with inde.recovery.mode=FULL.

Is it necessary to sync up the L2 Cashes as well using ehcache-custom.xml? We had hoped to avoid a large amount of network traffic between locations.

Has anyone ever had these issue?  We have been searching but cannot find this particular issue for anyone, at least not that we can find.  Any information/answer would be very much appreciated!
1 REPLY 1

pmonks
Star Contributor
Star Contributor
This approach is unlikely to work for a number of reasons:
  1. As you've discovered, without cluster-wide cache coherency (which is achieved via EHCache configuration) content updates don't appear right away on anything but the node where the update took place.  This problem is serious enough that it can lead to corruption if not corrected.

  2. The latencies inherent in replication (be it via rsync or Oracle or something else) are likely to cause further problems, even if the cache coherency problem is resolved.  This is because EHCache distributes events synchronously with respect to each Alfresco transaction, whereas replication is likely to be asynchronous ie. executes some time (perhaps even minutes) after the Alfresco transaction has completed.  During that window the cache and replicated persistent storage (Oracle + filesystem) on each recipient node will be out of sync, causing all manner of unexpected behaviour.

  3. Directly manipulating the Alfresco database and filesystem while Alfresco is running is guaranteed to cause any number of problems (including corruption, excessive blocking and sporadic lock related errors, and poor performance).  Alfresco requires exclusive access to both.
As described at http://wiki.alfresco.com/wiki/Cluster_Configuration_V2.1.3_and_Later, Alfresco clustering fundamentally requires a single logical database and filesystem across the cluster.  These may in fact be clustered themselves, but both components must act as though they are each a single system.  Replication doesn't provide that guarantee, primarily due to the latencies involved.

Cheers,
Peter