[Koha-zebra] A few ZOOM::Package questions

Adam Dickmeiss adam at indexdata.dk
Wed Feb 22 09:00:43 CET 2006


Joshua Ferraro wrote:
> On Mon, Feb 20, 2006 at 11:39:54AM +0000, Mike Taylor wrote:
> 
>>>What are the case scenerios where the 'commit' method would be
>>>useful?
>>
>>When using shadow registers in Zebra.
> 
> Which we definitely want to use. So do we 'commit' after 
> multiple update services or after each one?
> 
> A somewhat related question is what you recommend for handling
> the $Zconn object. Our early proof-of-concept code had a new
> connection object being created and destroyed for every update
> action -- so ... should their be a single $Zconn for the whole
> system? or should we handle each incoming request as a separate
> connection (for search, update, create, drop (when available).
> One idea proposed was having our Context.pm module handle the
> connection in the same way we currently handle the dbh connection
> to MySQL ... but I know Z39.50 is a bit more stateful than MySQL...
> any suggestions?
> 
> 
>>>What is the xmlupdate method? :-)
>>
>>Don't know -- that's one for Adam to answer.
xmlupdate is a privately defined extended service. The package itself is 
an XML document. Semantics is XML itself. Zebra doesn't support this. So 
you shouldn't worry about it. 'xmlupdate' is a bad name, admitted. It 
should have been called 'xmlesprivate' or similar.
>
> Cool ... hopefully he's cced on this...
> 
> 
>>>We're trying to figure out when it would be useful (if ever) to use
>>>recordIdOpaque and/or recordIdName. The only reference to them I can
>>>find is here: http://www.indexdata.dk/zebra/NEWS where it says:
>>>
>>>"Allow Remote insert/delete/replace/update with record,
>>>recordIdNumber (sysno) and/or recordIdOpaque(user supplied record
>>>Id). If both IDs are omitted internal record ID match is assumed
>>>(recordId: - in zebra cfg)."
>>>
>>>Could someone provide a couple case scenerios where these would be
>>>used?
>>
>>I've not heard of "recordIdNumber" before, but I am guessing that it
>>just means "the unique ID of the record, as extracted from the record
>>itself using the rules specified in the Zebra configuration".  As you
>>know, every record in a Zebra database is identified by a, uh,
>>identifier.  That can either be drawn from the record itself (which
>>is probably what you want when adding MARC records that have IDs in
>>them), or you can specify an ID explicitly when you add the record.
>>

recordIdNumber is the ID that Zebra automatically assigns to each record 
  (currently an integer). It's the <localnumber>..</localnumber> that is 
part of XML in grs.-class records .. i.e.

</Date-of-Last-Modification>

   <idzebra xmlns="http://www.indexdata.dk/zebra/">
     <size>2704</size>
     <localnumber>14</localnumber>
     <filename>gils/esdd0006.grs</filename>
   </idzebra>
</gils>

>>I don't know about case scenerios -- again, Adam would have a better
>>handle on that.
> 
> Ditto.
Not of much help, I must admit. I don't think recordIdNumber has been 
used in any real-life application.

> 
> 
>>>When would it be useful to populate the databaseName option?
>>
>>Always, when creating or destroying a database.
>>
>>
>>>Isn't that already provided by the $conn object?
>>
>>No.  You might have a connection pointing at one database, and want to
>>create or destroy a different one.
>>
>>
>>>or can we connect to multiple databases in that object and then
>>>specify which one we want the specific package operation to be
>>>performed using that option?
>>
>>There's no "connect to multiple databases" functionality in ZOOM, no.
>>(What would such functionality mean?)
> 
> In my estimation, that would mean that you could connect to multiple 
> databases in the connection object, then specify which one you want
> to interact with for a given operation. One way this could be used would
> be for a Zebra installation that had two databases, one for full-text
> items in Dublin Core, and one using MARC records -- the MARC editor would
> first commit the full-text stuff to the DC db then the MARC records
> to the MARC db. But I think I understand now that the connection object
> only allows a single connection at a time.
> 
> 
>>>Finally, no mention is made of the record update 'syntax' option in
>>>the ZOOM documentation. Is it supported? if so, what are the valid
>>>values?
>>
syntax is supplied recordsyntax attached to each record in an update. By 
default XML is used (if syntax is not given).

Again, Zebra doesn't use this. Other "better" servers might. Had syntax 
been a string it could have been the record type (such as grs.xml). But 
it isn't - being an OID. And currently we don't map from OID to filter.

/ Adam

>>Sorry -- again, I don't know.  Adam's yer man.
> 
> Ditto.
> 
> Cheers,
> 






More information about the Koha-zebra mailing list