X-Git-Url: http://git.indexdata.com/?p=yazproxy-moved-to-github.git;a=blobdiff_plain;f=doc%2Freference.xml;h=2ef809c4f7706bbfa77a921930d1063e69c11788;hp=28cd49f25774f1fdd52fa969c3bc65336cee3566;hb=9b8dda8226cff9fb0ee5bf8d7c0e88e9613df63e;hpb=84434e0d19b1ecd73ff09853f7cb3d96f343c237 diff --git a/doc/reference.xml b/doc/reference.xml index 28cd49f..2ef809c 100644 --- a/doc/reference.xml +++ b/doc/reference.xml @@ -32,7 +32,7 @@ usual YAZ address format (typically tcp:hostname:port) as described in - the Addresses section of the YAZ manual. @@ -58,14 +58,13 @@ - If the proxy receives an SRW/SRU request, the following rules are used. + If the proxy receives an SRU request, the following rules are used. If default target has Explain information with a database that matches the path of the - HTTP request of SRW/SRU that backend server is used for - SRW/SRU operation. - + HTTP request of SRU that backend server is used for SRU operation. + @@ -74,13 +73,6 @@ - - - We know it is stupid to only check for explain in default target. - It means that it is only possible to offer one SRW/SRU server. - We expect to improve that in the next version of the YAZ proxy. - -
Keep-alive Facility @@ -199,8 +191,8 @@ The config file is XML based. The YAZ proxy must be compiled - with libxml2 and - libXSLT support in + with libxml2 and + libXSLT support in order for the config file facility to be enabled. @@ -221,13 +213,13 @@ The proxy config file must have a root element called proxy and scoped within namespace - xmlns="http://indexdata.dk/yazproxy/schema/0.8/. + xmlns="http://indexdata.dk/yazproxy/schema/0.9/". All information except an optional XML header must be stored within the proxy element. <?xml version="1.0"?> - <proxy xmlns="http://indexdata.dk/yazproxy/schema/0.8/"> + <proxy xmlns="http://indexdata.dk/yazproxy/schema/0.9/"> <!-- content here .. --> </proxy> @@ -245,16 +237,17 @@ equivalent to command line option -t. - - <?xml version="1.0"?> - <proxy xmlns="http://indexdata.dk/yazproxy/schema/0.9/"> - <target name="server1" default="1"> - <!-- description of server1 .. --> - </target> - <target name="server2"> - <!-- description of server2 .. --> - </target> - </proxy> + + + + + + + + + + ]]>
@@ -299,6 +292,16 @@ +
+ max-sockets + + The element max-sockets is the child of element + target and specifies the maximum number of sockets + to use for the target for all sessions using it. In other words: maximum + number of Z39.50 session to the target. + +
+
keepalive The keepalive element holds information about @@ -352,18 +355,20 @@ The following sets maximum number of bytes transferred per minute to - 500Kbytes and maximum number of requests to 40. + 500Kbytes, maximum number of records retrievals to 40 + and maximum number of searches to 20. <limit> <bandwidth>524288</bandwidth> <retrieve>40</retrieve> + <search>20</search> </limit> - Typically the limits for keepalive are much higher than - those for session minute average. + Typically the values in the keepalive section are mugh higher + than their equivalent limit counterparts (bandwidth, pdu).
@@ -418,7 +423,8 @@ syntax The syntax element specifies accept or reject - or a particular record syntax request from the client. + or a particular record syntax request from the client. It also + allows record conversion of XML records via XSLT. The syntax has one required attribute: @@ -439,26 +445,49 @@ type should be XML. The proxy will use preferred record syntax USMARC/MARC21 or backendtype (if given) against the backend target. + For the special case where backendtype is + opac the proxy will convert the OPAC + record to OPACXML. + + + When marcxml is used, yazproxy assumes + that records retrieved from the backend are encoded in the + MARC-8 character set. + This is correct for most MARC21 based systems, but not for + other MARC variants or UTF-8 based MARC21 systems. + The backendcharset attribute specifies + the character set of the MARC records to be converted. If attribute backendtype is given, that holds the record syntax to be transmitted to backend. + If attribute backendelementset is given, that holds + elementset to be transmitted to backend. An empty value of + backendelementset has the effect of omitting + any Comp-Spec (and elementset) sent to backend. + + If backendelementset is omitted, the element + set from client is used, except if marcxml is used. + In that case (using marcxml), no Comp-Spec and no + elementset is sent to backend. + + If attribute stylesheet is given, the proxy will convert XML record from server via XSLT. It is important that the content from server is XML. If used in conjunction with - attribute marcxml the MARC to MARCXML conversion - takes place before the XSLT conversion takes place. + attribute marcxml, the MARC to MARCXML/OPACXML + conversion takes place before the XSLT conversion takes place. If attribute identifier is given that is the - SRW/SRU record schema identifier for the resulting output record (after + SRU record schema identifier for the resulting output record (after MARCXML and/or XSLT conversion). If sub element title is given (as child element - of syntax, then that is the official SRW/SRU + of syntax, then that is the official SRU name of the resulting record schema. @@ -499,7 +528,7 @@ explain The explain element includes Explain information - for SRW/SRU about the server in the target section. This + for SRU about the server in the target section. This information must have a serverInfo element with a database that this target must be available as (URL path). For example, @@ -514,7 +543,7 @@ ]]> - In the above case, the SRW/SRU service is available as + In the above case, the SRU service is available as http://myhost.org:8000/mydatabase. @@ -526,14 +555,14 @@ The content of the cql2rpn element specifies the path from the working directory to a CQL-to-RPN conversion file for the server in the target section. This element - is required for SRW/SRU searches to operate against Z39.50 + is required for SRU searches to operate against Z39.50 servers that don't support CQL. Most Z39.50 servers only support Type-1/RPN so this is usually required. See YAZ documentation for more information about the - CQL - to PQF conversion. See also the + CQL to PQF conversion. + See also the pqf.properties in the etc (or prefix/share/yazproxy) directory of the YAZ proxy distribution. @@ -554,32 +583,6 @@ -
- max-clients - - The element max-clients is the child of element - proxy and specifies the total number of - allowed connections to targets (all targets). If this limit - is reached the proxy will close the least recently used connection. - - - Note, that many Unix systems impose a system on the number of - open files allowed in a single process, typically in the - range 256 (Solaris) to 1024 (Linux). - The proxy uses 2 sockets per session + a few files - for logging. As a rule of thumb, ensure that 2*max-clients + 5 - can be opened by the proxy process. - - - - Using the - bash shell, you can set the limit with - ulimit -nno. - Use ulimit -a to display limits. - - -
-
target-authentication @@ -627,6 +630,46 @@
+
+ target-charset + + The element target-charset specifies the + native character set that the target uses for queries. + + + If this is specified the proxy will act as a Z39.50 server + supporting character set negotiation. And in SRU mode + it will convert from UTF-8 (UNICODE) to this native character + set (if possible). + +
+ +
+ max-clients + + The element max-clients is the child of element + proxy and specifies the total number of + allowed connections to targets (all targets). If this limit + is reached the proxy will close the least recently used connection. + + + Note, that many Unix systems impose a system on the number of + open files allowed in a single process, typically in the + range 256 (Solaris) to 1024 (Linux). + The proxy uses 2 sockets per session + a few files + for logging. As a rule of thumb, ensure that 2*max-clients + 5 + can be opened by the proxy process. + + + + Using the bash shell, you can set + the limit with + ulimit -nno. + Use ulimit -a to display limits. + + +
+
log @@ -684,6 +727,13 @@ and the size of the APDU is logged. + + client-ip + + Log the client IP for each log entry. By default, the client IP + is only logged when a new session starts. + + @@ -705,7 +755,8 @@ The element max-connect is a child of element proxy and specifies the maximum number - of connections to be initiated within the last minute. + of connections to be initiated within the last minute (or + value of period-connect. If the maximum number is reached the proxy will terminate the @@ -718,11 +769,26 @@ The element max-connect is a child of element proxy and specifies the limit of number - of connections to be initiated within the last minute. + of connections to be initiated within the last minute (or + value of period-connect. + + + If the maximum number is reached the proxy delays the first operation + in the session by one second. + +
+ +
+ period-connect + + The element period-connect is a child of element + proxy and specifies period - in the number of seconds + that limit-connect and + max-connect + should measure connections. - If the maximum number is reached the proxy delay the first operatation - in the session (Thus delaying the connection). + If period-connect is omitted, 60 seconds is used.
@@ -782,7 +848,7 @@ The categoryTypeId is either OID 1.2.840.10003.10.1000.81.1, 1.2.840.10003.10.1000.81.2 for proxy target and proxy cookie respectively. The - integer element category is set to 0. + categoryValue is set to 1. The value proxy and cookie is stored in element characterInfo of the information choice. @@ -798,7 +864,6 @@ + @@ -846,6 +912,7 @@ + @@ -916,6 +983,7 @@ +