- $conn->log("irspy_test", "Fetch test search found $n records");
- return ZOOM::IRSpy::Status::TEST_SKIPPED if $n == 0;
-
- my @syntax = (
- 'canmarc',
- 'danmarc',
- 'grs-1',
- 'ibermarc',
- 'intermarc',
- 'jpmarc',
- 'librismarc',
- 'mab',
- 'normarc',
- 'opac',
- 'picamarc',
- 'rusmarc',
- 'summary',
- 'sutrs',
- 'swemarc',
- 'ukmarc',
- 'unimarc',
- 'usmarc',
- 'xml'
- );
- #@syntax = qw(grs-1 sutrs usmarc xml); # simplify for debugging
- foreach my $syntax (@syntax) {
+ $conn->log("irspy_test", "Fetch test search (", $task->render_query(), ") ",
+ ref $event && $event->isa("ZOOM::Exception") ?
+ "failed: $event" : "found $n records (event=$event)");
+
+ # remember how often a target record hit a timeout
+ if (ref $event && $event->isa("ZOOM::Exception")) {
+ if ($event =~ /Timeout/i) {
+ $conn->record->zoom_error->{TIMEOUT}++;
+ $conn->log("irspy_test", "Increase timeout error counter to: " .
+ $conn->record->zoom_error->{TIMEOUT});
+ }
+ }
+
+ if ($n == 0) {
+ $task->{rs}->destroy();
+ my $qindex = $udata->{queryindex}+1;
+ my $q = $queries[$qindex];
+ return ZOOM::IRSpy::Status::TEST_SKIPPED
+ if !defined $q || $conn->record->zoom_error->{TIMEOUT} >= $max_timeout_errors;
+
+ $conn->log("irspy_test", "Trying another search ...");
+ $conn->irspy_search_pqf($queries[$qindex], { queryindex => $qindex }, {},
+ ZOOM::Event::ZEND, \&completed_search,
+ exception => \&completed_search);
+ return ZOOM::IRSpy::Status::TASK_DONE;
+ }
+
+ foreach my $i (0 ..$#syntax) {
+ my $syntax = $syntax[$i];