2 # script that starts the zebraquee
3 # Written by TG on 01/08/2006
9 use C4::AuthoritiesMarc;
12 ### ZEBRA SERVER UPDATER
13 ##Uses its own database handle
14 my $dbh=C4::Context->dbh;
15 my $readsth=$dbh->prepare("select id,biblio_auth_number,operation,server from zebraqueue");
16 my $delsth=$dbh->prepare("delete from zebraqueue where id =?");
20 my $wait=C4::Context->preference('zebrawait');
21 $wait=120 unless $wait;
22 my ($id,$biblionumber,$operation,$server,$marcxml);
24 while (($id,$biblionumber,$operation,$server)=$readsth->fetchrow){
25 if ($server eq "biblioserver"){
26 ($marcxml) =ZEBRA_readyXML($dbh,$biblionumber);
27 }elsif($server eq "authorityserver"){
28 $marcxml =C4::AuthoritiesMarc::XMLgetauthority($dbh,$biblionumber);
32 my $hashed=XMLin($marcxml);
33 }; ### is it a proper xml? broken xml may crash ZEBRA- slow but safe
37 ## Broken XML-- Should not reach here-- but if it does -lets protect ZEBRA
38 $delsth->execute($id);
43 $ok=ZEBRAopserver($marcxml,$operation,$server);
45 ## If a delete operation delete the SQL DB as well
46 if ($operation eq "recordDelete" && $ok==1){
47 if ($server eq "biblioserver"){
48 ZEBRAdelbiblio($dbh,$biblionumber);
49 }elsif ($server eq "authorityserver"){
50 ZEBRAdelauthority($dbh,$biblionumber);
53 $delsth->execute($id) if ($ok==1);