[OAI-implementers] custom error reporting, records in which sets.

Jozef Kruger jozef@nl.adlibsoft.com
Tue, 23 Jul 2002 14:02:35 +0200


This is a multi-part message in MIME format.

------=_NextPartTM-000-9596c58b-6d87-4401-a640-5eeacb2e99d3
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C23240.D5418EAE"

------_=_NextPart_001_01C23240.D5418EAE
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello Everybody,
=20
For the past week I've been upgrading our OAI implementation from
version 1.1 to 2.0 and I came across a few issues.
First of all, I understand from the protocol specs that there is no room
for error reporting other than the predefined errors, I find this quite
annoying, since I'd also like to report if there's for example an
internal database error, or an error while reading the initialization
file. I'd very much like to see the protocol be extended with some room
for this, or if anybody else has an idea about it, please let me know.
=20
Then there is the issue of reporting in which sets a record occurs. In
our implementation we create a set by selecting a number of record
numbers and writing these to a file (including a setName and setSpec of
course). When the ListSets verb gets used, it just reads all these files
from disc and puts out the spec and name.
Later, when for example all records from a particular set get fetched
(ListRecords with set=3D...), we just read all the record numbers from =
the
file (and use them to read from the database).
With version 2.0 this won't work properly anymore, since we'd have to
read through all the existing "set files", to find out in which sets
aparticular record occurs when it is fetched without a set specified
(with GetRecord). When you have only a few small sets, it's not much of
a problem to read them into memory while initializing the program. But
when they increase in number and/or size this of course creates a
performance problem.
So my question is, what is the precise use of this new "feature" in OAI
(of reporting all sets a record occurs in)?
=20
Allright, that's it! Thanks for your time.
=20
Sincerely yours,
=20
Jozef Kruger
Software Developer
=20
ADLIB | Information Systems
P.O. BOX 1436 | 3600 BK Maarssen | The Netherlands
tel. +31 (0)30 - 2411885 | fax. +31 (0)30-2412568
=20
www.adlibsoft.com <http://www.adlibsoft.com/>  | jozef@nl.adlibsoft.com
<mailto:sales@nl.adlibsoft.com>=20
=20

------_=_NextPart_001_01C23240.D5418EAE
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Message</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<META content=3D"MSHTML 6.00.2716.2200" name=3DGENERATOR></HEAD>
<BODY>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D126562109-16072002>Hello=20
Everybody,</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN=20
class=3D126562109-16072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D126562109-16072002>For =
the past week=20
I've been upgrading our OAI implementation from version 1.1 to 2.0 and I =
came=20
across a few issues.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D126562109-16072002>First =
of all, I=20
understand from the protocol specs that there is no room for error =
reporting=20
other than the predefined errors, I find this quite annoying, since I'd =
also=20
like to report if there's for example an internal database error, or an =
error=20
while reading the initialization file. I'd very much like to see the =
protocol be=20
extended with some room for this, or if anybody else has an idea about =
it,=20
please let me know.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN=20
class=3D126562109-16072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D126562109-16072002>Then =
there is the=20
issue of reporting in which sets a record occurs. In our implementation =
we=20
create a set by selecting a number of record numbers and writing these =
to a file=20
(including a setName and setSpec of course). When the ListSets verb gets =
used,=20
it just reads all these files from disc and puts out the spec and=20
name.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D126562109-16072002>Later, =
when for=20
example all records from a particular set get fetched (ListRecords with=20
set=3D...), we just read all the record numbers from the file (and use =
them to=20
read from the database).</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D126562109-16072002>With =
version 2.0=20
this won't work properly anymore, since we'd have to read through all =
the=20
existing "set files", to find out in which sets aparticular record =
occurs when=20
it is fetched without a set specified (with GetRecord). When you have =
only a few=20
small sets, it's not much of a problem to read them into memory while=20
initializing the program. But when they increase in number and/or size =
this of=20
course creates a performance problem.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D126562109-16072002>So my =
question is,=20
what is the precise use of this new "feature" in OAI (of reporting all =
sets a=20
record occurs in)?</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN=20
class=3D126562109-16072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D126562109-16072002>Allright, that's it!=20
Thanks for your time.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN=20
class=3D126562109-16072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D126562109-16072002>Sincerely=20
yours,</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV align=3Dleft>
<DIV><FONT face=3DArial><FONT size=3D2><SPAN =
class=3D312110611-22012002>Jozef=20
Kruger</SPAN></FONT></FONT></DIV>
<DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D312110611-22012002><SPAN=20
class=3D126562109-16072002>Software Developer</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial><FONT size=3D2><FONT =
color=3D#ff0000>ADLIB</FONT> |=20
Information Systems</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>P.O. BOX 1436 | 3600 BK Maarssen<SPAN=20
class=3D902002712-21012002> | </SPAN>The Netherlands</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>tel. +31 (0)30 - 2411885 | fax. +31=20
(0)30-2412568</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><A href=3D"http://www.adlibsoft.com/"><FONT face=3DArial =
color=3D#ff0000=20
size=3D2>www.adlibsoft.com</FONT></A><FONT color=3D#ff0000><FONT =
size=3D2><FONT=20
face=3DArial> <FONT color=3D#000000>|&nbsp;</FONT><SPAN=20
class=3D312110611-22012002><U>jozef</U></SPAN></FONT></FONT></FONT><A=20
href=3D"mailto:sales@nl.adlibsoft.com"><FONT face=3DArial =
color=3D#ff0000=20
size=3D2>@nl.adlibsoft.com</FONT></A></DIV></DIV></DIV>
<DIV>&nbsp;</DIV></BODY></HTML>
=00
------_=_NextPart_001_01C23240.D5418EAE--

------=_NextPartTM-000-9596c58b-6d87-4401-a640-5eeacb2e99d3--