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).