<message>FN</message>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<include src="filters-enabled/*.xml"/>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<productname>Metaproxy</productname>
<info><orgname>Index Data</orgname></info>
</refentryinfo>
-
+
<refmeta>
<refentrytitle>auth_simple</refentrytitle>
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>auth_simple</refname>
<refpurpose>Metaproxy Simple Authentication And Authorization Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
Simple authentication and authorization. The configuration
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
</screen>
</para>
<!-- Show and describe example.target-auth -->
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>backend_test</refname>
<refpurpose>Metaproxy Backend Test Z39.50 Server Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
A pseudo Z39.50 server for test purposes.
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
- "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"
[
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % local SYSTEM "local.ent">
processes, interprets and redirects requests from IR clients using
standard protocols such as the binary
<ulink url="&url.z39.50;">ANSI/NISO Z39.50</ulink>
- and the information search and retrieval
+ and the information search and retrieval
web service <ulink url="&url.sru;">SRU</ulink>
as well as functioning as a limited
- <ulink url="&url.http;">HTTP</ulink> server.
+ <ulink url="&url.http;">HTTP</ulink> server.
</simpara>
<simpara>
Metaproxy is configured by an XML file which
<chapter id="introduction">
<title>Introduction</title>
-
+
<para>
<ulink url="&url.metaproxy;">Metaproxy</ulink>
is a stand alone program that acts as a universal router, proxy and
as <ulink url="&url.z39.50;">Z39.50</ulink> and
<ulink url="&url.sru;">SRU</ulink>.
To clients, it acts as a server of these protocols: it can be searched,
- records can be retrieved from it, etc.
+ records can be retrieved from it, etc.
To servers, it acts as a client: it searches in them,
retrieves records from them, etc. it satisfies its clients'
requests by transforming them, multiplexing them, forwarding them
including examples.
</para>
</chapter>
-
+
<chapter id="installation">
<title>Installation</title>
<para>
</varlistentry>
<varlistentry><term><ulink url="&url.libxslt;">Libxslt</ulink></term>
<listitem>
- <para>This is an XSLT processor - based on
+ <para>This is an XSLT processor - based on
<ulink url="&url.libxml2;">Libxml2</ulink>. Both Libxml2 and
Libxslt must be installed with the development components
(header files, etc.) as well as the run-time libraries.
The latter the compiler toolset (eg. gcc34).
</para>
<para>
- Pass <literal>--help</literal> to configure to get a list of
+ Pass <literal>--help</literal> to configure to get a list of
available options.
</para>
</section>
<section id="installation.debian">
<title>Installation on Debian GNU/Linux</title>
<para>
- All dependencies for Metaproxy are available as
+ All dependencies for Metaproxy are available as
<ulink url="&url.debian;">Debian</ulink>
packages for the sarge (stable in 2005) and etch (testing in 2005)
distributions.
<section id="installation.rpm">
<title>Installation on RPM based Linux Systems</title>
<para>
- All external dependencies for Metaproxy are available as
- RPM packages, either from your distribution site, or from the
+ All external dependencies for Metaproxy are available as
+ RPM packages, either from your distribution site, or from the
<ulink url="http://fr.rpmfind.net/">RPMfind</ulink> site.
</para>
<para>
- For example, an installation of the requires Boost C++ development
+ For example, an installation of the requires Boost C++ development
libraries on RedHat Fedora C4 and C5 can be done like this:
- <screen>
+ <screen>
wget ftp://fr.rpmfind.net/wlinux/fedora/core/updates/testing/4/SRPMS/boost-1.33.0-3.fc4.src.rpm
sudo rpmbuild --buildroot src/ --rebuild -p fc4/boost-1.33.0-3.fc4.src.rpm
sudo rpm -U /usr/src/redhat/RPMS/i386/boost-*rpm
</para>
<para>
There is currently no official RPM package for YAZ++.
- See the <ulink url="&url.yazplusplus;">YAZ++</ulink> pages
+ See the <ulink url="&url.yazplusplus;">YAZ++</ulink> pages
for more information on a Unix tarball install.
</para>
<para>
</para>
</listitem>
</varlistentry>
-
+
</variablelist>
-
+
<para>
After successful compilation you'll find
<literal>metaproxy.exe</literal> in the
</section>
</chapter>
-
+
<chapter id="yazproxy-comparison">
<title>YAZ Proxy Comparison</title>
<para>
</row>
<row>
<entry>SRU Virtual database, i.e. select any Z39.50 target for path</entry>
- <entry>Supported with filter <literal>virt_db</literal>,
+ <entry>Supported with filter <literal>virt_db</literal>,
<literal>sru_z3950</literal></entry>
<entry>Supported</entry>
</row>
<chapter id="filters">
<title>Filters</title>
-
-
+
+
<section id="filters-introductory-notes">
<title>Introductory notes</title>
<para>
others are sinks: they consume packages and return a result
(<literal>backend_test</literal>,
<literal>bounce</literal>,
- <literal>http_file</literal>,
+ <literal>http_file</literal>,
<literal>z3950_client</literal>);
the others are true filters, that read, process and pass on the
packages they are fed
<literal>virt_db</literal>).
</para>
</section>
-
-
+
+
<section id="overview.filter.types">
<title>Overview of filter types</title>
<para>
<para>
The filters are here listed in alphabetical order:
</para>
-
+
<!--
### New filters:
the user.
</para>
</section>
-
+
<section id="backend_test">
<title><literal>backend_test</literal>
(mp::filter::Backend_test)</title>
even read this section.
</para>
</section>
-
+
<section id="bounce">
<title><literal>bounce</literal>
(mp::filter::Bounce)</title>
<para>
- A sink that swallows <emphasis>all packages</emphasis>,
+ A sink that swallows <emphasis>all packages</emphasis>,
and returns them almost unprocessed.
It never sends any package of any type further down the row, but
sets Z39.50 packages to Z_Close, and HTTP_Request packages to
HTTP_Response err code 400 packages, and adds a suitable bounce
- message.
+ message.
The bounce filter is usually added at end of each filter chain route
to prevent infinite hanging of for example HTTP
- requests packages when only the Z39.50 client partial sink
+ requests packages when only the Z39.50 client partial sink
filter is found in the
- route.
+ route.
</para>
</section>
-
+
<section id="cql_rpn">
<title><literal>cql_rpn</literal>
(mp::filter::CQLtoRPN)</title>
<para>
- A query language transforming filter which catches Z39.50
+ A query language transforming filter which catches Z39.50
<literal>searchRequest</literal>
packages containing <literal>CQL</literal> queries, transforms
those to <literal>RPN</literal> queries,
and sends the <literal>searchRequests</literal> on to the next
- filters. It is among other things useful in a SRU context.
+ filters. It is among other things useful in a SRU context.
</para>
</section>
-
+
<section id="frontend_net">
<title><literal>frontend_net</literal>
(mp::filter::FrontendNet)</title>
<title><literal>http_file</literal>
(mp::filter::HttpFile)</title>
<para>
- A partial sink which swallows only
- <literal>HTTP_Request</literal> packages, and
+ A partial sink which swallows only
+ <literal>HTTP_Request</literal> packages, and
returns the contents of files from the local
- filesystem in response to HTTP requests.
+ filesystem in response to HTTP requests.
It lets Z39.50 packages and all other forthcoming package types
- pass untouched.
+ pass untouched.
(Yes, Virginia, this
does mean that Metaproxy is also a Web-server in its spare time. So
far it does not contain either an email-reader or a Lisp
interpreter, but that day is surely coming.)
</para>
</section>
-
+
<section id="load_balance">
<title><literal>load_balance</literal>
(mp::filter::LoadBalance)</title>
Performs load balancing for incoming Z39.50 init requests.
It is used together with the <literal>virt_db</literal> filter,
but unlike the <literal>multi</literal> filter it does send an
- entire session to only one of the virtual backends. The
+ entire session to only one of the virtual backends. The
<literal>load_balance</literal> filter is assuming that
all backend targets have equal content, and chooses the backend
with least load cost for a new session.
</warning>
</para>
</section>
-
+
<section id="log">
<title><literal>log</literal>
(mp::filter::Log)</title>
of virtual databases and multi-database searching below.
</para>
</section>
-
+
<section id="query_rewrite">
<title><literal>query_rewrite</literal>
(mp::filter::QueryRewrite)</title>
<para>
- Rewrites Z39.50 <literal>Type-1</literal>
- and <literal>Type-101</literal> (``<literal>RPN</literal>'')
+ Rewrites Z39.50 <literal>Type-1</literal>
+ and <literal>Type-101</literal> (``<literal>RPN</literal>'')
queries by a
three-step process: the query is transliterated from Z39.50
packet structures into an XML representation; that XML
structure.
</para>
</section>
-
-
+
+
<section id="record_transform">
<title><literal>record_transform</literal>
(mp::filter::RecordTransform)</title>
This filter implements global sharing of
result sets (i.e. between threads and therefore between
clients), yielding performance improvements by clever resource
- pooling.
+ pooling.
</para>
</section>
messages.
The <literal>sru_z3950</literal> filter processes also SRU
GET/POST/SOAP explain requests, returning
- either the absolute minimum required by the standard, or a full
+ either the absolute minimum required by the standard, or a full
pre-defined ZeeReX explain record.
- See the
+ See the
<ulink url="&url.zeerex.explain;">ZeeReX Explain</ulink>
- standard pages and the
+ standard pages and the
<ulink url="&url.sru.explain;">SRU Explain</ulink> pages
for more information on the correct explain syntax.
SRU scan requests are not supported yet.
</para>
</section>
-
+
<section id="template">
<title><literal>template</literal>
(mp::filter::Template)</title>
intended for civilians.
</para>
</section>
-
+
<section id="virt_db">
<title><literal>virt_db</literal>
(mp::filter::VirtualDB)</title>
of virtual databases and multi-database searching below.
</para>
</section>
-
+
<section id="z3950_client">
<title><literal>z3950_client</literal>
(mp::filter::Z3950Client)</title>
the route. Subsequent requests are sent to the same address,
which is remembered at Init time in a Session object.
HTTP_Request packages and all other forthcoming package types
- are passed untouched.
+ are passed untouched.
</para>
</section>
Z39.50 explain requests, returning a static ZeeReX
Explain XML record from the config section. All other packages
are passed through.
- See the
+ See the
<ulink url="&url.zeerex.explain;">ZeeReX Explain</ulink>
standard pages
for more information on the correct explain syntax.
</para>
</warning>
</section>
-
+
</section>
-
-
+
+
<section id="future.directions">
<title>Future directions</title>
<para>
</variablelist>
</section>
</chapter>
-
-
-
+
+
+
<chapter id="configuration">
<title>Configuration: the Metaproxy configuration file format</title>
-
-
+
+
<section id="configuration-introductory-notes">
<title>Introductory notes</title>
<para>
Metaproxy.)
</para>
</section>
-
+
<section id="overview.xml.structure">
<title>Overview of the config file XML structure</title>
<para>
All four are non-repeatable.
</para>
<para>
- The <dlpath;> element contains a text element which
+ The <dlpath;> element contains a text element which
specifies the location of filter modules. This is only needed
if Metaproxy must load 3rd party filters (most filters with Metaproxy
are built into the Metaproxy application).
<filter id="backend" type="z3950_client">
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log"/>
mutton, beef and trout packages.
When the response arrives, it is handed
back to the <literal>log</literal> filter, which emits another
- message; and then to the <literal>frontend_net</literal> filter,
+ message; and then to the <literal>frontend_net</literal> filter,
which returns the response to the client.
</para>
</section>
<para>
Metaproxy XML configuration snippets can be reused by other
filters using the <literal>XInclude</literal> standard, as seen in
- the <literal>/etc/config-sru-to-z3950.xml</literal> example SRU
+ the <literal>/etc/config-sru-to-z3950.xml</literal> example SRU
configuration.
<screen><![CDATA[
<filter id="sru" type="sru_z3950">
<para>
The distribution contains RelaxNG Compact and XML syntax checking
files, as well as XML Schema files. These are found in the
- distribution paths
+ distribution paths
<screen>
xml/schema/metaproxy.rnc
xml/schema/metaproxy.rng
configuration files. For example, using the utility
<filename>xmllint</filename>, syntax checking is done like this:
<screen>
- xmllint --noout --schema xml/schema/metaproxy.xsd etc/config-local.xml
- xmllint --noout --relaxng xml/schema/metaproxy.rng etc/config-local.xml
+ xmllint --noout --schema xml/schema/metaproxy.xsd etc/config-local.xml
+ xmllint --noout --relaxng xml/schema/metaproxy.rng etc/config-local.xml
</screen>
(A recent version of <literal>libxml2</literal> is required, as
support for XML Schemas is a relatively recent addition.)
<chapter id="sru-server">
<title>Combined SRU webservice and Z39.50 server configuration</title>
<para>
- Metaproxy can act as
- <ulink url="&url.sru;">SRU</ulink> and
- web service server, which translates web service requests to
+ Metaproxy can act as
+ <ulink url="&url.sru;">SRU</ulink> and
+ web service server, which translates web service requests to
<ulink url="&url.z39.50;">ANSI/NISO Z39.50</ulink> packages and
sends them off to common available targets.
</para>
<para>
A typical setup for this operation needs a filter route including the
- following modules:
+ following modules:
</para>
-
+
<table id="sru-server-table-config" frame="top">
<title>SRU/Z39.50 Server Filter Route Configuration</title>
<tgroup cols="3">
<entry>Purpose</entry>
</row>
</thead>
-
+
<tbody>
<row>
<entry><literal>frontend_net</literal></entry>
</tbody>
</tgroup>
</table>
- <para>
+ <para>
A typical minimal example <ulink url="&url.sru;">SRU</ulink>
- server configuration file is found in the tarball distribution at
+ server configuration file is found in the tarball distribution at
<literal>etc/config-sru-to-z3950.xml</literal>.
- </para>
+ </para>
<para>
Off course, any other metaproxy modules can be integrated into a
- SRU server solution, including, but not limited to, load balancing,
- multiple target querying
- (see <xref linkend="multidb"/>), and complex RPN query rewrites.
+ SRU server solution, including, but not limited to, load balancing,
+ multiple target querying
+ (see <xref linkend="multidb"/>), and complex RPN query rewrites.
</para>
</para>
</section>
</chapter>
-
-
+
+
<reference id="reference">
<title>Reference</title>
<partintro id="reference-introduction">
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
</para>
-
+
<para>
You should have received a copy of the GNU General Public License
along with Metaproxy; see the file LICENSE. If not, write to the
- Free Software Foundation,
+ Free Software Foundation,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
</para>
-
+
</appendix>
&gpl2;
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>bounce</refname>
<refpurpose>Metaproxy Bouncing Package Sink Module for all kind of metaproxy packages</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
A sink that swallows all packages, and returns them almost
suitable bounce message. The bounce filter is added at the end of
filter routes to prevent infinite hanging of yet unprocessed
packages. When a package is bounced, the client connection is
- closed as well.
+ closed as well.
</para>
</refsect1>
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>cgi</refname>
<refpurpose>Metaproxy Package CGI Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
- CGI Common Gateway Interface module.
+ CGI Common Gateway Interface module.
</para>
</refsect1>
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
- xi:href="../xml/schema/filter_cgi.rnc" xi:parse="text"
+ xi:href="../xml/schema/filter_cgi.rnc" xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>cql_rpn</refname>
<refpurpose>Metaproxy CQL to RPN Query Language Transforming Module</refpurpose>
<refsect1><title>DESCRIPTION</title>
<para>
- A query language transforming filter which catches Z39.50
+ A query language transforming filter which catches Z39.50
<literal>searchRequest</literal>
packages containing <literal>CQL</literal> queries, transforms
those to <literal>RPN</literal> queries,
</para>
<para>
The filter takes only one configuration parameter, namely the path
- of the standard <literal>YAZ</literal>
+ of the standard <literal>YAZ</literal>
<literal>CQL</literal>-to-<literal>CQL</literal> configuration
file. See the <ulink url="&url.yaz;">YAZ</ulink> manual for
configuration file syntax and details.
been created by running:
<screen>
xsltproc xml/xslt/explain2cqlpqftxt.xsl etc/explain.xml > etc/cql2pqf.txt
- </screen>
+ </screen>
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_cql_rpn.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>frontend_net</refname>
<refpurpose>Metaproxy Network Server module that accepts Z39.50 and
HTTP requests</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This is a frontend module. Listens on one or more ports and
with a slash. For example <literal>/fn_stat</literal>.
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_frontend_net.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>http_file</refname>
<refpurpose>Metaproxy HTTP File Server Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This module enables file access via the HTTP protocol.
static content.
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_http_file.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo>Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>limit</refname>
<refpurpose> Metaproxy Module for imposing resource limits </refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
- This filter offers a way to limit access for a single session to
+ This filter offers a way to limit access for a single session to
a resource (target) in order to obtain a fair resource sharing.
</para>
<para>
transferred within the last minute. The pdu is the number of requests
in the last minute. The retrieve holds the maximum records to which may
be retrieved in one Present Request.
- The search is the maximum number of searches within the last minute.
+ The search is the maximum number of searches within the last minute.
</para>
</refsect1>
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_limit.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
Configuration:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>load_balance</refname>
<refpurpose>Metaproxy Module balancing load among multiple identical
Z39.50 targets</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This filter balances load among Z39.50 targets based on statistics
- gathered on number of open sessions and number of open package requests.
+ gathered on number of open sessions and number of open package requests.
</para>
<para>
The load balancing is depending on targets to be specified (vhosts).
filter is mostly used as a follower to filter virt_db.
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_load_balance.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
This configuration offers one database, <literal>Default</literal>,
]]>
</screen>
</para>
-
- </refsect1>
-
+
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>log</refname>
<refpurpose>Metaproxy Package Logging Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
- This filter logs packages sent - and received .
+ This filter logs packages sent - and received .
</para>
<para>
<listitem>
<para>
Specifies the category of messages to be logged. The category is an
- XML attribute and value of attribute is a boolean;
+ XML attribute and value of attribute is a boolean;
<literal>true</literal> for enabled; <literal>false</literal>
for disabled.
The following category attributes are supported:
</listitem>
</varlistentry>
</variablelist>
-
+
</para>
</listitem>
</varlistentry>
<varlistentry><term>protocol (position 6)</term>
<listitem><para>
Protocol type which is one of <literal>Z3950</literal> or
- <literal>HTTP_Request</literal> or
+ <literal>HTTP_Request</literal> or
<literal>HTTP_Response</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
-
+
<para>
For packages of with protocol marker <literal>Z3950</literal>
the the access log line is followed by the APDU type + information
depending on the type. The APDU type is on position 7.
-
+
<variablelist>
-
+
<varlistentry><term>initRequest</term>
<listitem><para>
- Z39.50 Initialize Request with the information
+ Z39.50 Initialize Request with the information
username, vhost,
implementation ID, implementation name, implementation version.
</para>
</listitem>
</varlistentry>
-
+
<varlistentry><term>initResponse</term>
<listitem><para>
Z39.50 Initialize Response with the information:
</para>
</listitem>
</varlistentry>
-
+
<varlistentry><term>searchRequest</term>
<listitem><para>
Z39.50 Search Request with the information:
database(s), result set ID, record syntax, query.
</para>
<para>
- Multiple databases are separated by
+ Multiple databases are separated by
a plus-sign (<literal>+</literal>). The query itself is
multiple tokens. For this reason it is placed as the last
information on this log entry.
</para>
</listitem>
</varlistentry>
-
+
<varlistentry><term>searchResponse</term>
<listitem><para>
Z39.50 Search Response with the information:
</para>
</listitem>
</varlistentry>
-
+
<varlistentry><term>presentRequest</term>
<listitem><para>
Z39.50 Present Request with the information:
</para>
</listitem>
</varlistentry>
-
+
<varlistentry><term>presentResponse</term>
<listitem><para>
Z39.50 Present Response with the information:
</para>
</listitem>
</varlistentry>
-
+
<varlistentry><term>scanRequest</term>
<listitem><para>
Z39.50 Scan Request with the information:
</para>
</listitem>
</varlistentry>
-
+
<varlistentry><term>scanResponse</term>
<listitem><para>
Z39.50 Scan Response with the information:
</para>
</listitem>
</varlistentry>
-
+
</variablelist>
</para>
-
+
</refsect1>
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
- xi:href="../xml/schema/filter_log.rnc" xi:parse="text"
+ xi:href="../xml/schema/filter_log.rnc" xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % local SYSTEM "local.ent">
<manvolnum>1</manvolnum>
<refmiscinfo class="manual">Commands</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>metaproxy</refname>
<refpurpose>Metaproxy - server</refpurpose>
</refnamediv>
-
+
<refsynopsisdiv>
<cmdsynopsis>
<command>metaproxy</command>
<arg choice="opt"><option>-X</option></arg>
</cmdsynopsis>
</refsynopsisdiv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
</para>
</refsect1>
-
+
<refsect1><title>OPTIONS</title>
-
+
<variablelist>
<varlistentry>
<term>--help</term>
<term>filters</term>
<listitem>
<para>
- Specifies all filters. Includes one ore more
+ Specifies all filters. Includes one ore more
<literal>filter</literal> elements with filter-specific
configuration material.
</para>
<default_target>z3950.indexdata.dk</default_target>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log">
metaproxy --config my.xml
</screen>
</para>
- </refsect1>
+ </refsect1>
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/metaproxy.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>FILES</title>
<para>
None important.
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>multi</refname>
<refpurpose>Metaproxy Package Multiplexer Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This filter multiplexes packages.
</para>
<para>
A target element is not required for multi-plexing to work.
- It merely serves as a way to route differently.
+ It merely serves as a way to route differently.
</para>
<para>
If an empty
<literal><hideerrors></literal>
element is placed inside the
<literal>multi</literal>
- filter, then databases that reports diagnostics are not reported back
+ filter, then databases that reports diagnostics are not reported back
to the client, but simply ignored (unless every one of the databases report
diagnostics).
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_multi.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>query_rewrite</refname>
<refpurpose>Metaproxy RPN Query Rewrite Module</refpurpose>
### Describe the XML representation.
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_query_rewrite.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>record_transform</refname>
<refpurpose>Metaproxy Module that performs record transformations</refpurpose>
syntax and elementset name according to the rules specified, to fetch
only existing record formats, and transform them on the fly to requested
record syntaxes.
- </para>
+ </para>
<para>
- The allowed record present syntax and
+ The allowed record present syntax and
element name are described in multiple
- <literal><retrieval></literal> elements inside the
+ <literal><retrieval></literal> elements inside the
<literal><retrievalinfo></literal>
element. The <literal>syntax</literal> attribute is mandatory, but
the <literal>name</literal> attribute
- may be omitted, in which case any
+ may be omitted, in which case any
element name is accepted. An additional
<literal>identifier</literal> attribute can be added to explicitly
describe the Z39.50 identifier string.
</para>
<para>
The <literal><retrieval></literal> element and the content
- is described in the
+ is described in the
<ulink url="&url.yaz.retrieval;">Retrieval Facility</ulink> section
of the YAZ manual.
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_record_transform.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>session_shared</refname>
- <refpurpose> Metaproxy Module for sharing system ressorces between
+ <refpurpose> Metaproxy Module for sharing system ressorces between
threads</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This filter implements global sharing of
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_session_shared.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
Configuration:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>sort</refname>
<refpurpose>Metaproxy Z39.50 Sort Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This filter performs sorting of Z39.50 result sets.
</variablelist>
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_sort.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
For example, to sort MARCXML records on title, one could use:
<screen><![CDATA[
<filter type="sort">
- <sort
+ <sort
xpath="/marc:record/marc:datafield[@tag='245']/marc:subfield[@code='a']"
namespaces="marc=http://www.loc.gov/MARC21/slim"
prefetch="5"
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>sru_z3950</refname>
<refpurpose>Metaproxy Module transforming SRU web service requests to
Z39.50 Metaproxy packages</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
The <literal>sru_z3950</literal> Metaproxy filter transforms valid
SRU GET/POST/SOAP requests to Z39.50 requests, and wraps the
- received hit counts and XML records into suitable SRU response messages.
+ received hit counts and XML records into suitable SRU response messages.
</para>
<para>
Multiple database elements defining the names of the accepted
databases are allowed in the configuration file. Each
- of them must contain their own explain record, or must be empty.
+ of them must contain their own explain record, or must be empty.
Notice that explain
records come in SRU and Z39.50 flavors, and this filter requires
- the SRU version. See the
+ the SRU version. See the
<ulink url="&url.zeerex.explain;">ZeeReX Explain</ulink>
- standard pages and the
+ standard pages and the
<ulink url="&url.sru.explain;">SRU Explain</ulink> pages
- for more information.
+ for more information.
</para>
<para>
All Z39.50 packages and all HTTP packages that do not resolve to
filters on the route.
</para>
<para>
- The SRU <literal>explain</literal> operation is supported,
+ The SRU <literal>explain</literal> operation is supported,
returning either the absolute minimum required by the standard, or
- a full pre-defined ZeeReX explain record.
+ a full pre-defined ZeeReX explain record.
</para>
<para>
It supports the SRU <literal>searchRetrieve</literal> operation, which
- is transformed into successive Z39.50 <literal>init</literal>,
- <literal>search</literal> and <literal>present</literal> requests.
+ is transformed into successive Z39.50 <literal>init</literal>,
+ <literal>search</literal> and <literal>present</literal> requests.
</para>
<para>
The SRU <literal>scan</literal> operation is not supported.
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_sru_z3950.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>template</refname>
<refpurpose>Metaproxy Template Module That Does Nothing</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This module does nothing at all, simply passing packages through
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>virt_db</refname>
<refpurpose>Metaproxy Virtual Databases Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This filter allows one Z39.50 database to be me mapped to
another target; or even multiple targets.
</para>
<para>
- The configuration of virt_db consists of zero or more
+ The configuration of virt_db consists of zero or more
<literal><virtual></literal> elements each describing the
Z39.50 virtual database recognized.
The name of the database is the text content of the
<literal><database></literal> element which should be
- first element inside the virtual section.
+ first element inside the virtual section.
</para>
<para>
For Metaproxy 1.0.20 and later, the database is treated as a glob pattern.
- This allows operators * (any number of any character) and
+ This allows operators * (any number of any character) and
? (any single character). The virtual sections are inspected in
the order given. The first matching virtual database is used.
</para>
databases do not result in the same routing.
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_virt_db.rnc" xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
Consider this virt_db configuration:
</filter>
]]>
</screen>
- This will offer 4 databases, <literal>db1</literal>,
+ This will offer 4 databases, <literal>db1</literal>,
<literal>db2</literal>, <literal>combined</literal> and
<literal>db3</literal>. If a Z39.50 specifies <literal>db1</literal>
and <literal>db2</literal> that will have same effect as specifying
Since <literal>db3</literal> routes differently from the other databases,
this database may not be combined with the others.
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>z3950_client</refname>
<refpurpose>Metaproxy Z39.50 Backend Client Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
This backend filter is a Z39.50 client. This modules
<para>
Is a boolean value (false, true). If true, the Z39.50 client will
terminate Z39.50 sessions with a close APDU followed by a socket close.
- If false (default), the Z39.50 client will be transparent and only
+ If false (default), the Z39.50 client will be transparent and only
send a close if the peer client does it too.
</para>
</listitem>
</variablelist>
</para>
</refsect1>
-
+
<refsect1><title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_z3950_client.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1><title>EXAMPLES</title>
<para>
A typical configuration looks like this:
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
- <!ENTITY copyright SYSTEM "copyright.xml">
+ <!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
%idcommon;
]>
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>zeerex_explain</refname>
<refpurpose>Metaproxy Z39.50 ZeeReX Explain Module</refpurpose>
</refnamediv>
-
+
<refsect1><title>DESCRIPTION</title>
<para>
- The <literal>zeerex_explain</literal> Metaproxy filter
+ The <literal>zeerex_explain</literal> Metaproxy filter
answers valid Z30.50 explain requests, returning a
static ZeeReX Explain XML record from the config section. All other
- packages are passed through.
+ packages are passed through.
</para>
<para>
Multiple database elements defining the names of the accepted
databases are allowed in the configuration file. Each
of them must contain their own explain record. Notice that explain
records come in SRU and Z39.50 flavours, and this filter requires
- the Z39.50 version. See the
+ the Z39.50 version. See the
<ulink url="&url.zeerex.explain;">ZeeReX Explain</ulink>
- standard pages and the
+ standard pages and the
<ulink url="&url.sru.explain;">SRU Explain</ulink> pages
- for more information.
+ for more information.
</para>
<warning>
<para>
]]>
</screen>
</para>
- </refsect1>
-
+ </refsect1>
+
<refsect1><title>SEE ALSO</title>
<para>
<citerefentry>
<manvolnum>1</manvolnum>
</citerefentry>
</para>
- <para>
+ <para>
<ulink url="&url.zeerex.explain;">ZeeReX Explain</ulink>
</para>
</refsect1>
-
+
©right;
</refentry>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY copyright SYSTEM "copyright.xml">
<!ENTITY % idcommon SYSTEM "common/common.ent">
<productname>Metaproxy</productname>
<info><orgname>Index Data</orgname></info>
</refentryinfo>
-
+
<refmeta>
<refentrytitle>zoom</refentrytitle>
<manvolnum>3mp</manvolnum>
<refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
</refmeta>
-
+
<refnamediv>
<refname>zoom</refname>
<refpurpose>Metaproxy ZOOM Module</refpurpose>
</refnamediv>
-
+
<refsect1>
<title>DESCRIPTION</title>
<para>
The client implements the protocols that ZOOM C does: Z39.50, SRU
(GET, POST, SOAP) and SOLR .
</para>
-
+
<para>
This filter only deals with Z39.50 on input. The following services
are supported: init, search, present and close. The backend target
</para>
<para>
When Metaproxy creates a content proxy session, the XSL parameter
- <literal>cproxyhost</literal> is passed to the transform.
+ <literal>cproxyhost</literal> is passed to the transform.
</para>
</listitem>
</varlistentry>
<para>
Step 1: for CCL, the query is converted to RPN via
<link linkend="cclmap"><literal>cclmap</literal></link> elements part of
- the target profile as well as
+ the target profile as well as
<link linkend="cclmap_base">base CCL maps</link>.
</para>
<para>
type.
</para>
</refsect1>
-
+
<refsect1>
<title>SORTING</title>
<para>
The ZOOM module actively handle CQL sorting - using the SORTBY parameter
which was introduced in SRU version 1.2. The conversion from SORTBY clause
- to native sort for some target is driven by the two parameters:
+ to native sort for some target is driven by the two parameters:
<link linkend="sortStrategy"><literal>sortStrategy</literal></link>
and <link linkend="sortmap"><literal>sortmap_</literal><replaceable>field</replaceable></link>.
</para>
conversion. It doesn't throw a diagnostic.
</para>
</refsect1>
-
+
<refsect1>
<title>TARGET PROFILE</title>
<para>
</para>
</listitem>
</varlistentry>
-
+
<varlistentry id="cclmap">
<term>cclmap_<replaceable>field</replaceable></term><listitem>
<para>
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>cfAuth</term><listitem>
<para>
<literal>element_raw</literal> from the configuration.
By default that is the element sets <literal>pz2</literal>
and <literal>raw</literal>.
- If record transform is not enabled, this setting is
+ If record transform is not enabled, this setting is
not used and the element set specified by the client
is passed verbatim.
</para>
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>piggyback</term><listitem>
<para>
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>queryEncoding</term><listitem>
<para>
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>recordEncoding</term><listitem>
<para>
</para>
</listitem>
</varlistentry>
-
+
<varlistentry id="sortStrategy">
<term>sortStrategy</term><listitem>
<para>
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>sru</term><listitem>
<para>
<para>
The value of this field is a string that generates a dynamic link
based on record content. If the resulting string is non-zero in length
- a new field, <literal>metadata</literal> with attribute
+ a new field, <literal>metadata</literal> with attribute
<literal>type="generated-url"</literal> is generated.
The contents of this field is the result of the URL recipe conversion.
The urlRecipe value may refer to an existing metadata element by
</para>
</listitem>
</varlistentry>
-
+
<varlistentry>
<term>zurl</term><listitem>
<para>
is a comma rather than a question mark. What follows question mark are
HTTP arguments (in this case SRU arguments).
</para>
- <variablelist>
+ <variablelist>
<varlistentry>
<term>user</term>
<listitem>
</para>
</listitem>
</varlistentry>
- </variablelist>
+ </variablelist>
</refsect1>
<refsect1>
<title>SCHEMA</title>
<literallayout><xi:include
xi:href="../xml/schema/filter_zoom.rnc"
- xi:parse="text"
+ xi:parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</literallayout>
</refsect1>
-
+
<refsect1>
<title>EXAMPLES</title>
<para>
<fieldmap cql="dc.creator" ccl="au"/>
<fieldmap cql="dc.title" ccl="ti"/>
<fieldmap cql="dc.subject" ccl="su"/>
-
+
<cclmap>
<qual name="ocn">
<attr type="u" value="12"/>
]]>
</screen>
</para>
-
- </refsect1>
-
+
+ </refsect1>
+
<refsect1>
<title>SEE ALSO</title>
<para>
</citerefentry>
</para>
</refsect1>
-
+
©right;
</refentry>
<port>@:9000</port>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log"><category user-access="true" apdu="true" /></filter>
<filter type="frontend_net">
<port>@:7090</port>
<!-- maximum connections within a minute from same IP -->
- <threads>100</threads>
- <connect-max>10</connect-max>
+ <threads>100</threads>
+ <connect-max>10</connect-max>
</filter>
<!-- converts SRU to Z39.50 and back -->
<filter type="limit">
<limit bandwidth="50000" pdu="100" search="5" retrieve="50"/>
</filter>
- <filter type="session_shared">
+ <filter type="session_shared">
<resultset ttl="10" max="3"/>
<session ttl="30"/>
</filter>
<timeout>30</timeout>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log">
<message>Front</message>
</filter>
<filter type="sort">
- <sort
+ <sort
xpath="/marc:record/marc:datafield[@tag='245']/marc:subfield[@code='a']"
namespaces="marc=http://www.loc.gov/MARC21/slim"
prefetch="5"
<filter id="backend" type="z3950_client">
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log">
<filter type="limit">
<limit bandwidth="50000" pdu="100" search="5" retrieve="50"/>
</filter>
- <filter type="session_shared">
+ <filter type="session_shared">
<resultset ttl="10" max="3" optimizesearch="false" restart="true"/>
<session ttl="30"/>
</filter>
is NOT used and, thus, the database does not map to a Z93.50 target.
The Z39.50 is set, instead via the new x-target SRU parameter .
-->
-<metaproxy
- xmlns="http://indexdata.com/metaproxy"
+<metaproxy
+ xmlns="http://indexdata.com/metaproxy"
version="1.0">
<start route="start"/>
<filters>
</retrievalinfo>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log">
<?xml version="1.0"?>
-<metaproxy
- xmlns="http://indexdata.com/metaproxy"
+<metaproxy
+ xmlns="http://indexdata.com/metaproxy"
version="1.0">
<start route="start"/>
<filters>
</retrievalinfo>
</filter>
</filters>
- <routes>
+ <routes>
<!-- Z39.50 clients -->
<route id="remote">
<filter type="log">
</filter>
<filter type="bounce"/>
</route>
-
+
<!-- shared Z39.50 clients -->
<route id="shared">
<filter type="log">
</filter>
<filter type="bounce"/>
</route>
-
+
<!-- local built-in server -->
<route id="local">
<filter type="backend_test"/>
element_raw="raw"
explain_xsl="torus2zeerex.xsl"
record_xsl="pz2dc.xsl"
- >
+ >
<!--
- http://usi.indexdata.com/torus2/admin.admin/records/?query=userName==test+and+password==test
+ http://usi.indexdata.com/torus2/admin.admin/records/?query=userName==test+and+password==test
-->
-
+
<!-- these records are examples only -->
<records>
<zoom timeout="20" proxy_timeout="1"/>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="sru_z3950"/>
<stat-req>/fn_stat</stat-req>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log"><category access="false" line="true" apdu="true" /></filter>
<?xml version="1.0"?>
<metaproxy xmlns="http://indexdata.com/metaproxy" version="1.0">
- <!-- Z39.50 proxy which relays to target specified in Init otherinfo
+ <!-- Z39.50 proxy which relays to target specified in Init otherinfo
(VAL_RPOXY). If no target is given, it relays to target
z3950.indexdata.dk -->
<start route="start"/>
<force_close>true</force_close>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log">
<metaproxy xmlns="http://indexdata.com/metaproxy" version="1.0">
<start route="start"/>
<!-- sample config which illustrates the use of http_file filter.. -->
- <routes>
+ <routes>
<route id="start">
<filter type="frontend_net">
<threads>10</threads>
<port>@:9000</port>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log">
<message>F</message>
- <time-format>%Y%m%d-%H%M%S</time-format>
+ <time-format>%Y%m%d-%H%M%S</time-format>
</filter>
<filter type="query_rewrite">
<xslt stylesheet="../etc/pqf2pqf.xsl"/>
</filter>
<filter type="log">
<message>B</message>
- <time-format>%Y%m%d-%H%M%S</time-format>
+ <time-format>%Y%m%d-%H%M%S</time-format>
<category init-options="true" request-session="true" response-session="true"
request-apdu="true" response-apdu="true"
/>
<schemaInfo>
<schema identifier="http://www.loc.gov/zing/srw/dcschema/v1.0/"
- location="http://www.loc.gov/zing/srw/dc.xsd"
+ location="http://www.loc.gov/zing/srw/dc.xsd"
name="dc"
retrieve="true">
<title lang="en">Dublin Core</title>
</schema>
<!--
<schema identifier="http://indexdata.dk/dc-short"
- location=""
+ location=""
name="dc-short"
retrieve="true">
<title lang="en">Dublin Core Short Form</title>
-->
</schemaInfo>
-
+
<configInfo>
<!-- searchRetrieve settings -->
<!--<supports type="relationModifier">phonetic</supports> --><!-- 2=100 -->
<!--<supports type="relationModifier">stem</supports> --><!-- 2=101 -->
- <!-- <supports type="proximity"></supports> -->
+ <!-- <supports type="proximity"></supports> -->
<!-- title = (house prox/distance=1/unit=word the) -->
- <!-- proximity modifier supported by the server or index
+ <!-- proximity modifier supported by the server or index
(relation, distance, unit, ordering) -->
<!-- <supports type="proximityModifier"></supports> -->
<!-- boolean modifier supported by the server or index -->
<!-- supported sortmodifier (ascending, missingValue, caseSensitive) -->
<!-- <supports type="sortModifier"></supports> -->
- <!-- presentation settings -->
+ <!-- presentation settings -->
<default type="numberOfRecords">0</default>
<default type="retrieveSchema">dc</default>
<default type="recordPacking">xml</default>
<setting type="stylesheet">docpath/sru.xsl</setting>
<!-- <setting type="maximumRecords">1000</setting> -->
- <!-- <supports type="resultSets"></supports> -->
+ <!-- <supports type="resultSets"></supports> -->
<!-- scan settings -->
<!-- <supports type="extraExplainData"></supports> -->
<!-- <supports type="profile"></supports> -->
</configInfo>
-
+
</explain>
<port>@:9000</port>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<filter type="log"><category user-access="true" apdu="true" /></filter>
<message>FN</message>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="frontend"/>
<include src="filters-enabled/*.xml"/>
</filter>
</filters>
- <routes>
+ <routes>
<route id="start">
<filter refid="log_cout"/>
<filter type="cond"> <!-- conditional -->
- <if test="port=210 and db=public" route="A"/>
- <if test="port=210 and db=other" route="B"/>
+ <if test="port=210 and db=public" route="A"/>
+ <if test="port=210 and db=other" route="B"/>
<switch>
<case test="blabla" route="C"/>
<case test="blabla2" route="C2"/>
<filter refid="log_cerr"/>
<filter type="log"> <!-- apply logging always -->
<logfile>mylog.log</logfile>
- </filter>
+ </filter>
<filter name="reject"> <!-- reject .. -->
</filter>
<filter type="bounce"/>
Filters are constructed with a FilterFactory class which exposes a
-method
+method
Filter* createFilter(std::string type)
<?xml version="1.0" encoding="UTF-8"?>
<!-- fictive yaz-frontend plus zeerex-explain plus retrieval info format -->
-<zeerex xmlns="http://indexdata.com/yaz"
+<zeerex xmlns="http://indexdata.com/yaz"
xmlns:dc="http://purl.org/dc/elements/1.1/"
version="1.0">
<protocol refid="z3950"/>
<database name="Default">
- <!-- host and port can be different from listen socket
+ <!-- host and port can be different from listen socket
due to firewalling!!! -->
<target host="server1.mydomain" port="80"/>
<attr type="4" set="bib1">3</attr>
</map>
</index>
-
+
<!-- Dublin Core Indexes -->
<index search="true" scan="true" sort="false">
<!-- <supports type="relation">any</supports> --><!-- 2=3 OK -->
<!-- relation modifier supported by the server or index -->
- <!-- MARC: So I promise that you can use 'title <>/stem fish' , but it
+ <!-- MARC: So I promise that you can use 'title <>/stem fish' , but it
really defaults to 'title =/stem fish' ??? And nobody cares ???-->
<!-- <supports type="relationModifier">relevant</supports> --><!-- 2=102 OK, makes no difference .. sic -->
<!-- <supports type="relationModifier">phonetic</supports> --> <!-- 2=100 DEAD -->
<!-- <supports type="proximity"></supports> --> <!-- DEAD, title = (house prox/distance=1/unit=word the) FAILS -->
- <!-- proximity modifier supported by the server or index
+ <!-- proximity modifier supported by the server or index
(relation, distance, unit, ordering) -->
<!-- <supports type="proximityModifier"></supports> -->
<supports type="maskingCharacter">?</supports>
<!-- anchoring supported? (^ character) -->
- <!-- MARC: how do I express that I only support left anchoring in
+ <!-- MARC: how do I express that I only support left anchoring in
the beginning of the field ( bib1 3=1 ), but no right anchoring ?? -->
<!-- MIKE: You can't. The ZeeRex documentation should be changed
to allow this, as <supports type="anchoring">left</supports> -->
<!-- MIKE: this is for the new CQL "sortby" sorting, which Zebra
doesn't yet do at all, so you're right to omit this for now. -->
- <!-- presentation settings -->
+ <!-- presentation settings -->
<!-- default number of records that a server will return at once -->
<default type="numberOfRecords">0</default>
<!-- <setting type="maximumRecords">1000</setting> -->
<!-- support result sets (Empty) -->
- <!-- <supports type="resultSets"></supports> -->
+ <!-- <supports type="resultSets"></supports> -->
<!-- XPath retrieval supported -->
<!-- <supports type="recordXPath"></supports> -->
</zeerex>
-
+