Name

metaproxy — Metaproxy - server

Synopsis

metaproxy [--help] [--version] [-v loglevel] [--config config] [-D] [-l logfile] [-m timeformat] [-p pidfile] [-t] [-u ID] [-w dir] [-X]

DESCRIPTION

metaproxy is the Metaproxy daemon

OPTIONS

--help

Displays help message.

--version

Displays Metaproxy version.

-v loglevel

Specify YAZ log level (all, debug, log)

--config config

Specify the configuration.

-D

Puts Metaproxy in the background after startup.

-l logfile

Specifies YAZ log file.

-m timeformat

Sets the format of time-stamps for all logging performed via yaz_log. Refer to strftime(3) man page for the format.

-p pidfile

Specifies file which holds PID after startup.

-t

Tests configuration. Returns exit code 0 on success; non-zero on failure.

-u ID

Makes Metaproxy changes its identity to ID after startup.

-w dir

Changes working directory to dir.

-X

Makes Metaproxy operate in debug mode.

CONFIGURATION

Metaproxy's configuration is XML based. All elements should be in namespace http://indexdata.com/metaproxy.

The root element must be named metaproxy and must specify a version. Currently the version must be 1.0. The children elements of metaproxy are:

dlpath

Specifies the path for Loadable filter modules

start

Specifies the start route. Takes a route attribute with the name of the route.

filters

Specifies all filters. Includes one ore more filter elements with filter-specific configuration material.

routes

Specifies all routes. Includes one or more route elements. Each route in turn includes one or more filter specifications.

The configuration is described in more detail in the Metaproxy manual.

EXAMPLES

The configuration below specifies a simple Z39.50 proxy and illustrates most configuration elements of Metaproxy.

<?xml version="1.0"?>
<metaproxy xmlns="http://indexdata.com/metaproxy" version="1.0">
  <dlpath>/usr/local/metaproxy/filters</dlpath>
  <start route="start"/>
  <filters>
    <filter id="frontend" type="frontend_net">
      <threads>10</threads>
      <port>@:9000</port>
    </filter>
    <filter id="backend" type="z3950_client">
     <timeout>30</timeout>
     <default_target>z3950.indexdata.dk</default_target>
    </filter>
  </filters>
  <routes>
    <route id="start">
      <filter refid="frontend"/>
      <filter type="log">
        <message>log</message>
      </filter>
      <filter refid="backend"/>
      <filter type="bounce"/>
    </route>
  </routes>
</metaproxy>

   

Start server with configuration in my.xml.

       metaproxy --config my.xml
     

SCHEMA

# Metaproxy XML config file schemas

#   Copyright (C) Index Data.

#   See the LICENSE file for details


# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.

# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
# trang metaproxy.rnc metaproxy.rng 
# trang metaproxy.rnc metaproxy.xsd 

# Config file validation is done using 'xmllint':
# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
# xmllint -/-schema metaproxy.xsd config-bytarget.xml

# For information on RelaxNG see http://relaxng.org 
# see also http://books.xmlschemata.org/relaxng/

namespace mp = "http://indexdata.com/metaproxy"

start |= metaproxy

include "filter_auth_simple.rnc"
include "filter_backend_test.rnc"
include "filter_bounce.rnc"
include "filter_cgi.rnc"
include "filter_cql_rpn.rnc"
include "filter_frontend_net.rnc"
include "filter_http_client.rnc"
include "filter_http_file.rnc"
include "filter_http_rewrite.rnc"
include "filter_http_rewrite1.rnc"
include "filter_limit.rnc"
include "filter_load_balance.rnc"
include "filter_log.rnc"
include "filter_multi.rnc"
include "filter_present_chunk.rnc"
include "filter_query_rewrite.rnc"
include "filter_record_transform.rnc"
include "filter_sd_remove.rnc"
include "filter_session_shared.rnc"
include "filter_sort.rnc"
include "filter_sru_z3950.rnc"
include "filter_virt_db.rnc"
include "filter_z3950_client.rnc"
include "filter_zoom.rnc"

any = (text | element * { attribute * { text }*, any })*

metaproxy =
  element mp:metaproxy {
    attribute version { "1.0" },
    element mp:dlpath { xsd:string }?,
    element mp:start {
            attribute route { xsd:NCName }
    },
    element mp:filters { filter+ }?,
    element mp:routes { route+ }
  }

route =
  element mp:route {
    attribute id { xsd:NCName },
    filters+
  }

filters =
  filter |
  element mp:filters {
    filters+
  }

filter =
  element mp:filter {
    filter_refid
    | filter_auth_simple
    | filter_backend_test
    | filter_bounce
    | filter_cgi
    | filter_cql_rpn
    | filter_frontend_net
    | filter_http_client
    | filter_http_file
    | filter_http_rewrite
    | filter_http_rewrite1
    | filter_limit
    | filter_load_balance
    | filter_log
    | filter_multi
    | filter_present_chunk
    | filter_query_rewrite
    | filter_record_transform
    | filter_sd_remove
    | filter_session_shared
    | filter_sort
    | filter_sru_z3950
    | filter_virt_db
    | filter_z3950_client
    | filter_zoom
  }

filter_refid = attribute refid { xsd:NCName }


   

FILES

None important.

SEE ALSO

auth_simple(3mp), backend_test(3mp), bounce(3mp), frontend_net(3mp), http_file(3mp), log(3mp), multi(3mp), query_rewrite(3mp), record_transform(3mp), session_shared(3mp), sru_z3950(3mp), template(3mp), virt_db(3mp), z3950_client(3mp).

The Metaproxy manual.

COPYRIGHT

Copyright (C) 2005-2015 Index Data