[open-ils-commits] r20312 - branches/rel_2_1/Open-ILS/src/support-scripts (dbs)
svn at svn.open-ils.org
svn at svn.open-ils.org
Tue Apr 26 10:13:24 EDT 2011
Author: dbs
Date: 2011-04-26 10:13:22 -0400 (Tue, 26 Apr 2011)
New Revision: 20312
Modified:
branches/rel_2_1/Open-ILS/src/support-scripts/authority_control_fields.pl
Log:
Make authority_control_fields.pl resistant to database timeouts
LP 771237 describes how on an underpowered system, the work that
authority_control_fields.pl tries to do on a per-record basis may hit the
CStore default timeout of 6 seconds for a transaction and automatically
end the transaction, resulting in no work being committed once the script tries
to update the bibliographic record. Searching each controlled field for a
matching authority record can be costly in a database with millions of
authority records.
To enable the script to accomplish its work on underpowered test systems, use a
regular read-only CStoreEditor session to accomplish the lookups and create a
separate CStoreEditor session to issue the update in a transaction if required.
Signed-off-by: Dan Scott <dscott at laurentian.ca>
Modified: branches/rel_2_1/Open-ILS/src/support-scripts/authority_control_fields.pl
===================================================================
--- branches/rel_2_1/Open-ILS/src/support-scripts/authority_control_fields.pl 2011-04-26 14:12:46 UTC (rev 20311)
+++ branches/rel_2_1/Open-ILS/src/support-scripts/authority_control_fields.pl 2011-04-26 14:13:22 UTC (rev 20312)
@@ -339,7 +339,7 @@
foreach my $rec_id (@records) {
# print "$rec_id\n";
- my $e = OpenILS::Utils::CStoreEditor->new(xact=>1);
+ my $e = OpenILS::Utils::CStoreEditor->new();
# State variable; was the record changed?
my $changed;
@@ -418,6 +418,7 @@
}
}
if ($changed) {
+ my $editor = OpenILS::Utils::CStoreEditor->new(xact=>1);
# print $marc->as_formatted();
my $xml = $marc->as_xml_record();
$xml =~ s/\n//sgo;
@@ -427,9 +428,9 @@
$xml = OpenILS::Application::AppUtils->entityize($xml);
$record->marc($xml);
- $e->update_biblio_record_entry($record);
+ $editor->update_biblio_record_entry($record);
+ $editor->commit();
}
- $e->commit();
}
__END__
More information about the open-ils-commits
mailing list