Forum OpenACS Q&A: Re: OpenACS clusters

Collapse
12: Re: OpenACS clusters (response to 1)
Posted by Armando Garcia on
Hello.

I also have been working with the openacs cluster.
I have the next configuration.
One instance "A" running in the port 8000 another one "B" in the port 8002. Both use the same database in postgresql.

Also i have dotlrn running in this configuration.

The problem is when i create a new community "Test" in the instance "A", when i want to access to "Test" community in "B" instance i get the following error "The requested URL was not found on this server."

I configured the parameters for the cluster in package "acs-kernel". After some problems i got it working and in the log i can see something like:

[05/Sep/2011:18:28:01][28048.3070536592][-conn:openacs3::3] Notice: Distributed flush of portal::element_params_not_cached 6839
[05/Sep/2011:18:28:01][28048.3069483920][-conn:openacs3::4] Notice: Distributed flush of dotlrn_community::get_site_template_id_not_cached -community_id 6553
[05/Sep/2011:18:28:01][28048.3068431248][-conn:openacs3::0] Notice: Distributed flush of permission::permission_p_not_cached -party_id 1081 -object_id 6553 -privilege admin
[05/Sep/2011:18:28:01][28048.3072641936][-conn:openacs3::1] Notice: Distributed flush of dotlrn_community::get_dotlrn_master_not_cached -community_id 6553
[05/Sep/2011:18:28:01][28048.3071589264][-conn:openacs3::2] Notice: Distributed flush of sec_lookup_property 1 dotlrn which_tab_selected
[05/Sep/2011:18:28:01][28048.3070536592][-conn:openacs3::3] Notice: Distributed flush of sec_lookup_property 1 dotlrn home_tab_selected_p

I understand that the instance "B" has gotten the request from "A" to flush his cache. But when i try to get in to the community "Test" I have the same error.

Any advice?

My best regards

Collapse
13: Re: OpenACS clusters (response to 12)
Posted by Eduardo Santos on
Hi Armando,

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.

Collapse
Posted by Armando Garcia on
Hi Eduardo.

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.

Collapse
15: Re: OpenACS clusters (response to 14)
Posted by Eduardo Santos on
Hi Armando,

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.

Collapse
16: Re: OpenACS clusters (response to 15)
Posted by Armando Garcia on
Hi Eduardo.
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

Collapse
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?