X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=doc%2Fproxy.xml;h=9d04a650f4a208b1a509da61f4c6732cc21a356c;hp=b7ae0d3a3799deeaf5e38a822266c47d188a5ea5;hb=5554ddf9c4d9670aaaa8f8b9ce6def1dadff3c96;hpb=09b40382c41a29b7e3de2fa1a0362f25422a4367 diff --git a/doc/proxy.xml b/doc/proxy.xml index b7ae0d3..9d04a65 100644 --- a/doc/proxy.xml +++ b/doc/proxy.xml @@ -157,33 +157,36 @@
- Keep-alive Facility for Stateless Clients + Keep-alive Facility - Stateless clients such as web gateways may generate a cookie for a Z39.50 - session which is sent to the proxy as part of PDUs. - In this case, the proxy will keep alive its Z39.50 session - to the backend target even when the connection from the client - to the proxy is closed. When the client contacts the - proxy again, and re-issues the same cookie, the proxy reuses the - Z39.50 connection with the backend target. + The keep-alive is a facility where the proxy keeps the connection to the + backend - even if the client closes the connection to the proxy. - There is no - guarantee that the Z39.50 connection to the backend - target is kept forever: the proxy will shut it down after certain - idle time. - So in effect, the connection from the client's - point of view should be considered stateless, and the keep-alive - facility should be treated only as a performance booster. + If a new or another client connects to the proxy again and requests the + same backend it will be reassigned to this backend. In this case, the + proxy sends an initialize response directly to the client and an + initialize handshake with the backend is omitted. - Cookies may be passed in an + When a client reconnects, query and record caching works better, if the + proxy assigns it to the same backend as before. And the result set + (if any) is re-used. To achive this, Index Data defined a session + cookie which identifies the backend session. + + + The cookie is defined by the client and is sent as part of the + Initialize Request and passed in an otherInfo element with OID 1.2.840.10003.10.1000.81.2. + + Clients that do not send a cookie as part of the initialize request + may still better performance, since the init handshake is saved. +
-
+
Query Caching Simple stateless clients often send identical Z39.50 searches @@ -208,11 +211,34 @@ You can enable/disable query caching using option -o.
+ + +
+ Record Caching + + As an option, the proxy may also cache result set records for the + last search. + The proxy takes into account the Record Syntax and CompSpec. + The CompSpec includes simple element set names as well. + +
+ +
+ Query Validation + + +
-
+
+ Record Syntax Validation + + +
+ +
Other Optimizations - - We've had some plans to support caching of result set records, + + We've had some plans to support global caching of result set records, but this has not yet been implemented.
@@ -225,24 +251,24 @@ &yaz-proxy-ref;
-
Otherinformation Encoding +
OtherInformation Encoding The proxy uses the OtherInformation definition to carry information about the target address and cookie. - + OtherInformation ::= [201] IMPLICIT SEQUENCE OF SEQUENCE{ - category [1] IMPLICIT InfoCategory OPTIONAL, + category [1] IMPLICIT InfoCategory OPTIONAL, information CHOICE{ - characterInfo [2] IMPLICIT InternationalString, - binaryInfo [3] IMPLICIT OCTET STRING, + characterInfo [2] IMPLICIT InternationalString, + binaryInfo [3] IMPLICIT OCTET STRING, externallyDefinedInfo [4] IMPLICIT EXTERNAL, - oid [5] IMPLICIT OBJECT IDENTIFIER}} + oid [5] IMPLICIT OBJECT IDENTIFIER}} -- InfoCategory ::= SEQUENCE{ - categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - categoryValue [2] IMPLICIT INTEGER} - + categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + categoryValue [2] IMPLICIT INTEGER} + The categoryTypeId is either OID 1.2.840.10003.10.1000.81.1, 1.2.840.10003.10.1000.81.2