Solved: Z3950 Searches Stopped Working
Just for the record, I was able to fix the problem, thanks to a message posted by Mike Taylor (the author of Net::Z3950) to the Net-Z3950 mailing list (see October 23, 2003). Don't understand why others haven't run into this problem, nor do I understand why it appeared so suddenly on my installation. In any event, in order to get it captured into this archive, here's a synopsis: Problem: MARC searches suddenly quit working altogether - the ISBN's remained in the search list, and Koha would continue to query the L.O.C. servers until the list was manually cleared. The z3950-daemon log in /var/log/koha showed an error message of the form: ERROR: Can't call method "option" on an undefined value at /var/www/library/koha/intranet/scripts/z3950daemon/processz3950queue line 163, <KC> line 22. Here's Mike's reply to someone who ran into the same problem:
Net::Z3950 is not guilty! The culprit here is the Library of Congress's, <ahem> somewhat eccentric Z39.50 server.
Remember that, as documented, the default record-syntax requested by Net::Z3950 programs is GRS-1. The LoC server doesn't support GRS-1 records.
To fix your problem, you need to tell Net::Z3950 that you want to fetch USMARC records from this connection.
CURE: in the module /usr/local/koha/intranet/scripts/z3950daemon/processz3950queue, look for the line that creates the new Z3950 connection: eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database); }; and modify it to explicitly spell out the record syntax you want, i.e. USMARC: eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database, preferredRecordSyntax => 'USMARC'); }; (Actually, you'll make this correction twice, because the command appears in the module twice, once with and once without password authentication). Don't forget to halt and re-start the Z3950 daemon, in order for the changes to take effect. (Or just reboot).
This may be more on-topic for koha-devel@lists.sourceforge.net than here. On 2004-03-22 00:43:44 +0000 Ken & Brenda Voelker <brenv@voelkerville.com> wrote:
Don't understand why others haven't run into this problem, nor do I understand why it appeared so suddenly on my installation.
Is this related to http://bugs.koha.org/cgi-bin/bugzilla/show_bug.cgi?id=624 on some installations (1.9x and maybe early 2.0RC)?
CURE: in the module /usr/local/koha/intranet/scripts/z3950daemon/processz3950queue, look for the line that creates the new Z3950 connection: eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database); };
and modify it to explicitly spell out the record syntax you want, i.e. USMARC: eval { $conn= new Net::Z3950::Connection($servername, $port, databaseName => $database, preferredRecordSyntax => 'USMARC'); };
Should this be drawn from the Z39.50 server config stored in the database instead of hard-coded? -- MJR/slef My Opinion Only and possibly not of any group I know. Please http://remember.to/edit_messages on lists to be sure I read http://mjr.towers.org.uk/ gopher://g.towers.org.uk/ slef@jabber.at Creative copyleft computing services via http://www.ttllp.co.uk/
participants (2)
-
Ken & Brenda Voelker -
MJ Ray