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