--- loncom/lonsql 2000/07/02 04:01:56 1.3 +++ loncom/lonsql 2001/03/22 16:10:53 1.8 @@ -1,6 +1,8 @@ #!/usr/bin/perl # lonsql-based on the preforker:harsha jagasia:date:5/10/00 - +# 7/25 Gerd Kortemeyer +# many different dates Scott Harrison +# 03/22/2001 Scott Harrison use IO::Socket; use Symbol; use POSIX; @@ -27,6 +29,17 @@ while ($configline=) { } close(CONFIG); +# --------------------------------------------- Check if other instance running + +my $pidfile="$perlvar{'lonDaemons'}/logs/lonsql.pid"; + +if (-e $pidfile) { + my $lfh=IO::File->new("$pidfile"); + my $pide=<$lfh>; + chomp($pide); + if (kill 0 => $pide) { die "already running"; } +} + # ------------------------------------------------------------- Read hosts file $PREFORK=4; # number of children to maintain, at least four spare @@ -168,7 +181,7 @@ sub make_new_child { #open database handle # making dbh global to avoid garbage collector unless ( - $dbh = DBI->connect("DBI:mysql:loncapa","www","newmysql",{ RaiseError =>0,PrintError=>0}) + $dbh = DBI->connect("DBI:mysql:loncapa","www","123",{ RaiseError =>0,PrintError=>0}) ) { my $st=120+int(rand(240)); &logthis("WARNING: Couldn't connect to database ($st secs): $@"); @@ -189,8 +202,9 @@ sub make_new_child { my $userinput = <$client>; chomp($userinput); - my ($conserver,$querytmp)=split(/&/,$userinput); + my ($conserver,$querytmp,$customtmp)=split(/&/,$userinput); my $query=unescape($querytmp); + my $custom=unescape($customtmp); #send query id which is pid_unixdatetime_runningcounter $queryid = $thisserver; @@ -212,6 +226,11 @@ sub make_new_child { my @r2; map {my $a=$_; my @b=map {escape($_)} @$a; push @r2,join(",", @b)} (@$r1); $result=join("&",@r2) . "\n"; } + + # do custom metadata searching here and build into result + &logthis("am going to do custom query for $custom"); + + # reply with result &reply("queryreply:$queryid:$result",$conserver); }