Forum OpenACS Q&A: Re: OpenACS clusters

17: Re: OpenACS clusters (response to 16)
Posted by Eduardo Santos on
Hi Armando,

The cache flush on Cluster is managed by acs-kernel parameters. The basic work is simple: if cluster is being used and you call for something in an util_memoize cache, the server is going to try it locally. If the requested item is not found on local server, the system send an HTTP request to the other server and tries to retrieve that cached item.

You can see this behaviour in your log files if you set the parameter EnableLoggingP to 1. The file that gets the cached item is at the path server_root/www/SYSTEM/flush-memoized-statement.tcl

I'm assuming that you have configured all the acs-kernel parameters the way they should. Anyways, it doesn't hurt to double check the configuration here:

- CanonicalServer: In the list of IPs above, which is the canonical (primary) server? If a port is not listed, we assume port 80.

- ClusterAuthorizedIP: a space separated list of which machines can issues requests (e.g., flushing) to the cluster. Can use glob matching notation (10.0.0.*)

- ClusterEnabledP: is clustering enabled?

- ClusterPeerIP: A space separated list of servers in the cluster. This server's IP may be included too.

You also have to make sure all the servers access the same database (it's obvious, but it doesn't hurt to say either) and make sure your network don't block communication between the servers on needed ports.

If everything above is done, then your cluster has another problem that do not rely on standard configurations. Let's try to see if we can get to your error. What you are doing is:

1 - Go to /dotlrn/admin/club-new and add a new community on server A;
2 - Set it as an open community;
3 - Go to community page (/dotlrn/clubs/test) on server A;
4 - Try to access the same page on server B.

Is it the activity sequence you are following?