version 1.1258, 2014/05/04 21:49:00
|
version 1.1259, 2014/05/05 03:24:40
|
Line 961 sub has_user_session {
|
Line 961 sub has_user_session {
|
# --------- determine least loaded server in a user's domain which allows login |
# --------- determine least loaded server in a user's domain which allows login |
|
|
sub choose_server { |
sub choose_server { |
my ($udom,$checkloginvia,$required) = @_; |
my ($udom,$checkloginvia,$required,$skiploadbal) = @_; |
my %domconfhash = &Apache::loncommon::get_domainconf($udom); |
my %domconfhash = &Apache::loncommon::get_domainconf($udom); |
my %servers = &get_servers($udom); |
my %servers = &get_servers($udom); |
my $lowest_load = 30000; |
my $lowest_load = 30000; |
my ($login_host,$hostname,$portal_path,$isredirect); |
my ($login_host,$hostname,$portal_path,$isredirect,$balancers); |
|
if ($skiploadbal) { |
|
($balancers,my $cached)=&is_cached_new('loadbalancing',$udom); |
|
unless (defined($cached)) { |
|
my $cachetime = 60*60*24; |
|
my %domconfig = |
|
&Apache::lonnet::get_dom('configuration',['loadbalancing'],$udom); |
|
if (ref($domconfig{'loadbalancing'}) eq 'HASH') { |
|
$balancers = &do_cache_new('loadbalancing',$udom,$domconfig{'loadbalancing'}, |
|
$cachetime); |
|
} |
|
} |
|
} |
foreach my $lonhost (keys(%servers)) { |
foreach my $lonhost (keys(%servers)) { |
|
if ($skiploadbal) { |
|
if (ref($balancers) eq 'HASH') { |
|
next if (exists($balancers->{$lonhost})); |
|
} |
|
} |
my $loginvia; |
my $loginvia; |
if ($checkloginvia) { |
if ($checkloginvia) { |
$loginvia = $domconfhash{$udom.'.login.loginvia_'.$lonhost}; |
$loginvia = $domconfhash{$udom.'.login.loginvia_'.$lonhost}; |