Index: openacs-4/packages/acs-admin/acs-admin.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/acs-admin.info,v diff -u -r1.58.2.13 -r1.58.2.14 --- openacs-4/packages/acs-admin/acs-admin.info 13 Jul 2023 13:09:51 -0000 1.58.2.13 +++ openacs-4/packages/acs-admin/acs-admin.info 4 Dec 2023 15:32:58 -0000 1.58.2.14 @@ -9,7 +9,7 @@ f t - + Don Baccus An interface for Site-wide administration of an OpenACS Installation. 2023-02-08 @@ -20,8 +20,8 @@ GPL 3 - - + + Index: openacs-4/packages/acs-admin/www/cluster.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/cluster.tcl,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/acs-admin/www/cluster.tcl 8 Feb 2023 18:35:05 -0000 1.1.2.1 +++ openacs-4/packages/acs-admin/www/cluster.tcl 4 Dec 2023 15:32:58 -0000 1.1.2.2 @@ -52,7 +52,19 @@ set all_cluster_hosts [server_cluster_all_hosts] set active_peer_nodes [lsort [nsv_get cluster cluster_peer_nodes]] + #ns_log notice "all_cluster_hosts <$all_cluster_hosts> active_peer_nodes <$active_peer_nodes>" set elements_list { + state { + label "State" + html {align center} + display_template { + + +   + + } + } + node_name { label "Node" orderby node_name @@ -106,7 +118,7 @@ } } - multirow create cluster_nodes node_name current_p \ + multirow create cluster_nodes state node_name current_p \ canonical_p dynamic_p peer_p \ last_contact pretty_last_contact \ last_request pretty_last_request \ @@ -131,8 +143,21 @@ } } } + if {$last_contact eq ""} { + set state self + } else { + set timeunit [parameter::get \ + -package_id $::acs::kernel_id \ + -parameter ClusterHeartbeatInterval \ + -default 20s ] + set state [expr {[clock seconds]-($last_contact/1000) > [ns_baseunit -time $timeunit] + ? "inactive" + : "active" + }] + } - multirow append cluster_nodes $node \ + multirow append cluster_nodes \ + $state $node \ [expr {$node eq $current_node}] \ [acs::cluster is_canonical_server $node] \ [expr {$node in $dynamic_cluster_nodes}] \ Index: openacs-4/packages/acs-kernel/acs-kernel.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/acs-kernel.info,v diff -u -r1.150.2.58 -r1.150.2.59 --- openacs-4/packages/acs-kernel/acs-kernel.info 5 Oct 2023 15:52:33 -0000 1.150.2.58 +++ openacs-4/packages/acs-kernel/acs-kernel.info 4 Dec 2023 15:32:58 -0000 1.150.2.59 @@ -9,15 +9,15 @@ f t - + OpenACS Core Team Routines and data models providing the foundation for OpenACS-based Web services. 2023-07-10 OpenACS The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, parties and the supporting PL/SQL and PL/pgSQL procedures. 3 - + @@ -32,8 +32,9 @@ + - + @@ -42,7 +43,7 @@ - + Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.10.1b2-5.10.1b3.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.10.1b2-5.10.1b3.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-tcl/acs-tcl.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/acs-tcl.info,v diff -u -r1.95.2.64 -r1.95.2.65 --- openacs-4/packages/acs-tcl/acs-tcl.info 13 Jul 2023 13:09:52 -0000 1.95.2.64 +++ openacs-4/packages/acs-tcl/acs-tcl.info 4 Dec 2023 15:32:58 -0000 1.95.2.65 @@ -9,7 +9,7 @@ f t - + OpenACS The Kernel Tcl API library. 2023-05-15 @@ -18,9 +18,9 @@ GPL version 2 3 - + - + Index: openacs-4/packages/acs-tcl/tcl/cluster-init.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/cluster-init.tcl,v diff -u -r1.1.2.9 -r1.1.2.10 --- openacs-4/packages/acs-tcl/tcl/cluster-init.tcl 7 Feb 2023 17:50:32 -0000 1.1.2.9 +++ openacs-4/packages/acs-tcl/tcl/cluster-init.tcl 4 Dec 2023 15:32:58 -0000 1.1.2.10 @@ -25,11 +25,16 @@ ::acs::cluster setup # - # Update the cluster info every 20s to detect changed cluster - # configurations, or cluster nodes become available or - # unavailable. + # Update the cluster info depending of the configured + # ClusterHeartbeatInterval to detect changed cluster + # configurations (maybe induced by missing reachability). # - ad_schedule_proc -all_servers t 20s ::acs::cluster update_node_info + ad_schedule_proc -all_servers t \ + [parameter::get \ + -package_id $::acs::kernel_id \ + -parameter ClusterHeartbeatInterval \ + -default 20s] \ + ::acs::cluster update_node_info # # Setup of the listening URL Index: openacs-4/packages/acs-tcl/tcl/cluster-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/cluster-procs.tcl,v diff -u -r1.1.2.11 -r1.1.2.12 --- openacs-4/packages/acs-tcl/tcl/cluster-procs.tcl 29 Nov 2023 19:44:11 -0000 1.1.2.11 +++ openacs-4/packages/acs-tcl/tcl/cluster-procs.tcl 4 Dec 2023 15:32:58 -0000 1.1.2.12 @@ -109,7 +109,12 @@ # Control verbosity # :method log {args} { - ns_log notice "cluster: [join $args { }]" + if {[parameter::get \ + -package_id $::acs::kernel_id \ + -parameter ClusterEnableLoggingP \ + -default t]} { + ns_log notice "cluster: [join $args { }]" + } } :public method setup {} { @@ -532,7 +537,7 @@ # set preferred_location_regexp [parameter::get \ -package_id $::acs::kernel_id \ - -parameter PreferredLocationRegexp \ + -parameter ClusterPreferredLocationRegexp \ -default https:// ] set preferred_location "" @@ -688,6 +693,7 @@ lappend peer_nodes $qualified_location } + #:log "final peer_nodes <$peer_nodes>" return $peer_nodes } @@ -750,6 +756,7 @@ # set cluster_peer_nodes [:peer_nodes $dynamic_peers] nsv_set cluster cluster_peer_nodes $cluster_peer_nodes + #:log "cluster_peer_nodes <$cluster_peer_nodes>" if {![:is_configured_server ${:currentServerLocations}]} { #