Forum OpenACS Q&A: Re: OpenACS clusters
Just one question before we address your cluster environment: are you running two AOLServer instances on the same box in different ports? Because this is the worst case scenario for AOLServer.
Yes, for testing purpose i am running two instance of openACS on the same installation of AOLServer, i only change the port for each instance.
The final scenario will be to run this on different servers.
When you are testing a cluster scenario you need to use a setup like the real one, because some problems you can face are related to the configuration, not directly to OpenACS.
Concerning OpenACS, I can tell you in first place that the scenario you've created (more than one instance on the same box) won't work. The cluster setup is done for more than one server, and everything is designed to work on this situation.
My advice to you is to abandon this setup and try to get as close as you can to the reality.
We have set up the cluster using two separate servers and we are still getting the same error.
I have even tried doing a manual flush via the hyperlink "Flush" located in Developer's Administration : Cache Control. (http://x.x.x.x:8000/acs-admin/cache/flush-cache?suffix=util_memoize) and we are still getting the message "The requested URL was not found on this server." when trying to access the "Test" community from server B
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?