The Z39.50 standard says "a target need not support, in general, the naming of result sets by the origin." If a target does not support named result sets, how should the target behave when it receives a Search Request where a named result set is supplied (i.e. where resultSetName is other than 'default').
The target may always choose to:
(a) Fail the search, supplying bib-1 diagnostic 22 (Result set naming not supported).Alternatively, in certain circumstances (detailed below) the target may (but need not):(b) Treat the condition as a protocol error: issue a Close, with Close-reason 'protocol error', if version 3 is in effect; or terminate the connection, if version 2 is in effect.Result set naming is a negotiated feature in Z39.50-1995, thus a target who doesn't support it should so inform the origin during initialization (via option bit 14). It might thus be argued that if a target has so informed the origin, then a subsequent attempt by the origin to name a result set (i.e. assign a name other than 'default') constitutes a protocol error.However the mechanism, by which the target informs the origin that result set naming is not suported, is not reliable unless either version 3 is in effect or if the origin sets bit 14 during initialization (implicitly acknowledging that it knows the meaning of this option bit). Z39.50-1992 did not define this option bit, so by 1992 interpretation, the condition is not a protocol error. If version 2 is in force, the origin may have implemented either Z39.50-1992 or Z39.50-1995. If version 3 is in force, the target may be sure that the origin has implemented Z39.50-1995.
In general, the target may always choose behavior (a) above, and more specifically:
- If version 2 is in force, and if the origin did not attempt during initialization to negotiate result set naming (via option bit 14), the target should choose behavior (a).
- If version 2 is in force, but the origin did attempt during initialization to negotiate result set naming, and the target rejected that option, the target may choose (a) but may alternatively choose (b).
- If version 3 is in force, and the target had set bit 14 off indicating that result set naming is not supported (regardless of whether the origin set bit 14), then similarly, the target may choose (a) but may alternatively choose (b).