If you've used the user access method of installation of Net::Z3950, you will
need to copy verify.pl
to the relevant cgi-bin/ where you installed
Net::Z3950. You can use the verify.sh
bash shell of just change
to the directory and change back.
verify.pl has been extended to make it easier to read the (considerable)
output but the extension makes certain assumptions about your environment.
verify.pl uses non-printing bash characters to produce output in colour.
Terminals without colour, using a different shell or other factors may cause
problems with the new script. Please report any issues to the mailing list. A
workaround would be to simply change the values in the colour subroutine to
always use black or white as appropriate, alternatively, you can adapt the
subroutine to not output the non-printing characters at all by setting $init,
$endit and the various colour strings to blanks. If the colour output is useful,
please let me know via the mailing list. The colours are intended to be
intuitive:
lines in yellow
are details of the server to be tested (similar to amber at traffic
lights),
lines in red are errors that cause the
server to be omitted or ignored, and
lines in green indicate successful responses
from the server.
If your terminal uses a white background, you may prefer to swap the values for
yellow and blue to make it easier against a white background. The standard
isbnsearch error reports that would be sent via cron when using fallbackisbn.pl
or isbnsync.pl are printed in the default text colour but tabbed out of the
normal flow. Also in the default colour, if the server locates the ISBN used for
the verification query, the fulltitle and publisher details will be printed.
FAIL errors will cause the verify script to hang. They are usually
non-canonical names, socket requests on the defined port are accepted but a
Z39.50 connection request is not completed. Unlike other servers that are
reported as error="CONN"
, servers reported as "FAIL
"
do not allow the $conn=$mgr->connect()
call to complete because
they return no error values, so the script hangs. You will need to intervene
with Ctrl-C
to stop and restart the script. It may seem logical to
use a timer to halt the script if it hangs. However, with >1,000 servers to
verify, there is no way for the shell to tell if the script is working through a
"good patch" of 20 or so responsive servers or whether it has hung,
the time elapsed would be the same. All attempts to handle the crash within the
script have failed as the problem lies deep within the required Perl modules,
probably in Net::Z3950 itself. fallbackisbn.pl can handle the same errors using
a timer (implemented via cron and a .pid file) because it is only ever
connecting to a small number of servers per run.
When you get towards the end of the run, only the failing servers will be left to verify. Keep repeating verify.pl until the script reports:
verification run complete. No more runs required.
The format of the server result pages has changed again for the v0.5 release.
Displaying the results by interface and separating LoC Gateway listed servers
from the AsyncZ list is not useful for isbnsearch. This devel project will aim
for more automation and more regular updates using verify.pl
.
The result tables are created using scripts and the servers table created above. The fulltext name of the server has now been abandoned, leaving just the more critical name, port and database fields.
The SQL files for the next release and the new servers to upgrade existing sites are both created with this bash script:
bash export-new-servers.sh
The copyright licensing notice below applies to this text.
Copyright © 2003-2004 Neil Williams
Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of this license is included in the file copying.txt