Changes for version 1.19 - 2008-03-26

  • Use the DBI module's connect_cached() method to pool similar connections. This is important when running the resolver as a web-service, since (currently) each invocation makes a new Resolver object, which in turn makes its own Database object, which until this change made its own DBI connection. Due to Perl's lazy garbage-collection, each Apache process can accumulate a lot of these connections before they get tidied up, and when (as is usually the case) many Apache processes are used, they can exhaust the back-end database's connection pool.
  • Log-levels (as specified for example by the opt_loglevel query parameter) can now be specified symbolically, as a comma-separated list of level names, as well as numerically.
  • New logging level, LIFECYCLE, notes the creation and destruction of Resolver, OpenURL and Database objects.
  • The DBI logging level can now also be set, using the opt_dbi_trace query parameter.
  • New function LogLevel::num() that converts a logging-level string into a numeric value, complementing the existing label(). Both these functions now handle composite values (e.g. CONVERT01|LIFECYCLE).
  • New test-script for log-level utility functions.
  • Add brief documentation of logging (doc/logging).
  • Option setting is now always done via the option() method rather than, as previously at Resolver creation time, via direct assignment. This ensures that the logging-related special cases are handled uniformly.
  • Add static_log() function (not method) to the Resolver class, for use in contexts where no Resolver object is available to invoke the method on.
  • Copies are included (web/htdocs/1cate-test/) of the KEV context-objects that were part of Openly's OpenURL 1.0 test suite. These will be useful one day for local testing.
  • More explicit diagnostics for some database problems.
  • Steps towards support for Oracle as the back-end database: NOT YET COMPLETE.

Documentation

test Keystone Resolver's "recipe"-based result formatting

Modules

an OpenURL resolver
an OpenURL Framework (Z39.88) ContextObject
Resource Database for an OpenURL v1.0 resolver
a Descriptor in an OpenURL v1.0 ContextObject
logging levels for Keystone Resolver
an OpenURL that can be resolved
a result, with its type, resolved from an OpenURL
run tests for the Keystone Resolver library
Simple utility functions for Keystone Resolver

Provides

in lib/Keystone/ContentURL/Elsevier.pm
in lib/Keystone/Resolver/Admin.pm
in lib/Keystone/Resolver/DB/Domain.pm
in lib/Keystone/Resolver/DB/Genre.pm
in lib/Keystone/Resolver/DB/MetadataFormat.pm
in lib/Keystone/Resolver/DB/Object.pm
in lib/Keystone/Resolver/DB/Provider.pm
in lib/Keystone/Resolver/DB/Rule.pm
in lib/Keystone/Resolver/DB/Serial.pm
in lib/Keystone/Resolver/DB/Service.pm
in lib/Keystone/Resolver/DB/ServiceRule.pm
in lib/Keystone/Resolver/DB/ServiceType.pm
in lib/Keystone/Resolver/DB/ServiceTypeRule.pm
in lib/Keystone/Resolver/DB/Session.pm
in lib/Keystone/Resolver/DB/Site.pm
in lib/Keystone/Resolver/DB/User.pm
in lib/Keystone/Resolver/ResultSet.pm
in lib/Keystone/Resolver/plugins/Citation/APP.pm
in lib/Keystone/Resolver/plugins/Citation/Endnote.pm
in lib/Keystone/Resolver/plugins/Citation/JVP.pm
in lib/Keystone/Resolver/plugins/Citation/author.pm
in lib/Keystone/Resolver/plugins/ID/http.pm
in lib/Keystone/Resolver/plugins/ID/info.pm
in lib/Keystone/Resolver/plugins/ID/info/doi.pm
in lib/Keystone/Resolver/plugins/ID/info/oclcnum.pm
in lib/Keystone/Resolver/plugins/ID/info/pmid.pm
in lib/Keystone/Resolver/plugins/ID/mailto.pm
in lib/Keystone/Resolver/plugins/ID/urn.pm
in lib/Keystone/Resolver/plugins/ID/urn/isbn.pm
in lib/Keystone/Resolver/plugins/Service/APP.pm
in lib/Keystone/Resolver/plugins/Service/Elsevier.pm
in lib/Keystone/Resolver/plugins/Service/Gale.pm
in lib/Keystone/Resolver/plugins/Service/Infotrac.pm
in lib/Keystone/Resolver/plugins/Service/Science.pm
in lib/Keystone/Resolver/plugins/Service/ScienceAbstracts.pm
in lib/Keystone/Resolver/plugins/ServiceType/abstract.pm
in lib/Keystone/Resolver/plugins/ServiceType/authorsearch.pm
in lib/Keystone/Resolver/plugins/ServiceType/bookstore.pm
in lib/Keystone/Resolver/plugins/ServiceType/citation.pm
in lib/Keystone/Resolver/plugins/ServiceType/citeref.pm
in lib/Keystone/Resolver/plugins/ServiceType/fulltext.pm
in lib/Keystone/Resolver/plugins/ServiceType/websearch.pm

Examples