Class NoticeOfDisconnect

  • All Implemented Interfaces:
    ExtendedResponse, Message, Response, ResultResponse

    public final class NoticeOfDisconnect
    extends AbstractExtendedResponse
    An extended operation intended for notifying clients of upcoming disconnection. Here's what RFC 2251 has to say about it:
      Section 4.1.1 (Small snippet on sending NoD)
      
         If the server receives a PDU from the client in which the LDAPMessage
         SEQUENCE tag cannot be recognized, the messageID cannot be parsed,
         the tag of the protocolOp is not recognized as a request, or the
         encoding structures or lengths of data fields are found to be
         incorrect, then the server MUST return the notice of disconnection
         described in section 4.4.1, with resultCode protocolError, and
         immediately close the connection. In other cases that the server
         cannot parse the request received by the client, the server MUST
         return an appropriate response to the request, with the resultCode
         set to protocolError.
         
      ...   
         
      4.4. Unsolicited Notification
      
         An unsolicited notification is an LDAPMessage sent from the server to
         the client which is not in response to any LDAPMessage received by
         the server. It is used to signal an extraordinary condition in the
         server or in the connection between the client and the server.  The
         notification is of an advisory nature, and the server will not expect
         any response to be returned from the client.
      
         The unsolicited notification is structured as an LDAPMessage in which
         the messageID is 0 and protocolOp is of the extendedResp form.  The
         responseName field of the ExtendedResponse is present. The LDAPOID
         value MUST be unique for this notification, and not be used in any
         other situation.
      
         One unsolicited notification is defined in this document.
      
      4.4.1. Notice of Disconnection
      
         This notification may be used by the server to advise the client that
         the server is about to close the connection due to an error
         condition. Note that this notification is NOT a response to an
         unbind requested by the client: the server MUST follow the procedures
         of section 4.3. This notification is intended to assist clients in
         distinguishing between an error condition and a transient network
         failure. As with a connection close due to network failure, the
         client MUST NOT assume that any outstanding requests which modified
         the directory have succeeded or failed.
      
         The responseName is 1.3.6.1.4.1.1466.20036, the response field is
         absent, and the resultCode is used to indicate the reason for the
         disconnection.
      
         The following resultCode values are to be used in this notification:
      
         - protocolError: The server has received data from the client in
           which the LDAPMessage structure could not be parsed.
      
         - strongAuthRequired: The server has detected that an established
           underlying security association protecting communication between
           the client and server has unexpectedly failed or been compromised.
      
         - unavailable: This server will stop accepting new connections and
           operations on all existing connections, and be unavailable for an
           extended period of time. The client may make use of an alternative
           server.
      
         After sending this notice, the server MUST close the connection.
         After receiving this notice, the client MUST NOT transmit any further
         on the connection, and may abruptly close the connection.
     
    Author:
    Apache Directory Project