[opencms-dev] R: Question about OCEE Cluster and Replicator

Michael Emmerich m.emmerich at alkacon.com
Thu Apr 15 09:27:25 CEST 2010


Hello Luca,

> I'm going on configuring replication and I have additional questions.
> In the replication module docs is written that I have to place in opencms.properties the info about the replication db (that is the database of the 3 production servers.)
> I don't need to place the same configuration in the opencms.properties of the 3 production server instances, am I right?

Yes.

In the opencms.properties, you have to define the database pools which 
are used by OpenCms.

If you have the following:
Workplace Server A (internal)
Database a (internal)

Production Servers B,C,E (external)
Database b (external)

Your db-pool configuration must look like this:

Workplace Serrver A:
Connection pool "default" pointing to database a
Connection pool "rteplication" pointing to database b

Production Servers B,C,D
Connection pool "default" pointing to database b


> And inside ocee-replication.xml I need to specify only 1<server>  where the destination name is  one of the 3 names of production instances. Is this correct?

Yes, this is correct.

> Because in my environment I need to replicate only in the production DB, so which production server name is specified is not important.
> Maybe a stupid question: I should do the same without cluster module? I mean: I have the replicator that update the production db. I have the 3 servers that point to that database and so I should see the resource online in every production server. What cluster module gives me more that an environment without it?

Replication does not work correctly without the cluster. Why?

Replication is done in the database. By default, the replication is 
automatically made when you publish something on the workplace server.

OpenCms keeps its content in two different sets of DB-Tables, Online and 
Offline. Content can only be edited in the Offline tables. When you 
publish something those changes are copied fomr the Offline to the 
Online tables. If you use replication, the content is also copied to the 
Online tables of the replicated database. This means, after the 
replication is completed, the production servers have the new content in 
their database.

But: Every OpenCms installation has its internal caches, those caches 
are stored in memory. So if you change some content in the database, 
those caches must be flushed. This is done via the Caching module. If 
you publish something, the OCEE-Cluster will tell all other OpenCms 
servers that they have to flush parts of the cache, maybe doing some 
static export, rebuild the search indices etc.

So the cluster module alles the workplace server to communicate with the 
other ones.

Hope this helps.

Kind regars,
Michael Emmerich






> -----Messaggio originale-----
> Da: opencms-dev-bounces at opencms.org [mailto:opencms-dev-bounces at opencms.org] Per conto di Michael Emmerich
> Inviato: mercoledì 14 aprile 2010 16:15
> A: The OpenCms mailing list
> Oggetto: Re: [opencms-dev] Question about OCEE Cluster and Replicator
>
> Hello Luca,
>
>
>> I downloaded the trial version of OCEE module
>>
>> I have an environment with 3 production servers with 3 OpenCms instances
>> that are on the same database.
>>
>> I configured the cluster module on these servers. In documentation I see
>> that one of these must be the workplace server. This means that editors
>> must login on that to edit contents?
>
> This is correct. In an OCEE-Cluster all content editing must be made on
> one of the cluster nodes.
>
>   >  And on the same server the users
>> that have the role of "Approvers" for the contents must login and decide
>> if publish or not?
>
> This is correct.
> The normal workflow in OpenCms is:
> 1) The content editor edits some content, but has no right to publish
> it. The content editor can see his changes in the Offline project.
> 2) The Project manager (=Approver) checks the cotnent and publishes it.
> The published content can then be accessed from the web.
>
> So you could use the same OpenCms instance for content editing and
> approval in the offline project and for content delivery in the online
> project.
>
>> So this is not a production server.
>
> No, of course you can still use this machine for delivering the content
> as well. When you publish something on this machine, the content will be
> accessible.
>
>
>> What I need is an environment where I have 3 production server and
>> another server for editing and approving contents.
>
> This would be a scenario which has a total of 4 OpenCms servers. Three
> for content delivery and one for content editig only.
>
>   >  Then from this server
>> should be a replication of this contents on the 3 production servers. So
>> I suppose I must have a editing server inside network (not public) with
>> its own database where editors can edit contents and where
>> administrators can approve these contents, and from this server Admins
>> can decide to publish "online" the resources. At this point the OCEE
>> replicator replicates these contents on the database of the 3 production
>> instances.
>
> You described it correctly, this is how most OCEE Cluster/Replication
> installations are set up: One internal server to edit the cotnent with
> its own database. Several external servers to deliver the content.
> There are two ways how you can transfer content form the internal server
> to the external ones: This can be dome automatically when you publish
> the content on the internal system (most installations work like this)
> or this has to be done manually after you have published it.
>
>> Is this right? Is this possible?
>
> Yes, this is possible.
>
>   >  If I'm right why I need a workplace
>> server on production environment (in OCEE documentation file
>> documentation_ocee_cluster.pdf is the blue circle at page 3)? I suppose
>> the blue instance is the one where editors edit contents and where Admin
>> decide what to publish online, so not a production machine.
>
> The scenario you describe has one dedicated machine only for content
> editing. So this machine is not deliviering content to the public. But
> as I said above, if your content editing machine is accessible from the
> web, you could use it for content delivery (=production) as well.
>
>
>> So the right solution should be an OpenCms instance with its own
>> database in the private network and 3 public instances of OpenCms
>> pointing all to the same database (but different from the workplace
>> server in the private network). Is this correct?
>
> This would be a setup as it it mostly done with OCEE cluster/replication.
>
>> So I need to install OCEE cluster module on the 3 production instances
>> and the replicator on the other one (the private one) and tell the
>> replicator that every content must be published on the production
>> database after admin has confirmed that the contents are ok.
>
> The cluster module must be installed on all servers. The replication
> module must be installed on the workplace server (= content editing server).
>
> Of course you must take care that you firewall settings allow that the
> workplace server can communicate with all other servers in your OCEE
> Cluster.
>
> Hope this helps.
>
>

-- 
Kind Regards,
Michael.

-------------------
Michael Emmerich

Alkacon Software GmbH  - The OpenCms Experts
http://www.alkacon.com - http://www.opencms.org




More information about the opencms-dev mailing list