Subject: status messages

From: Michael Mealling <[email-masked]>
Date: Mon, 22 May 2000 09:13:58 -0400

can I et some comments on these? Thanks!

-MM

4.1.5.2 Codes and Description

   A Status object indicates a message to the client in the results
   set. The object encapsulates two values: a status code and a
   description. The description can contain a textual description of
   the status being communicated. In many cases, additional diagnostic
   information can also be included. No attempt is made to standardize
   the description of a given status code since the only programmatic
   element that matters is the actual code.

       <results>
            <status code="x.y.z">
                 The CNRP foo.com database is temporarily unreachable
            </status>
       </results>

4.1.5.3 Status Codes

   The organization of status codes is taken from RFC 1893[9] which
   structures its codes in the form of x.yyy.zzz. Taken from RFC 1893
   is the ABNF for the codes:

             status-code = class "." subject "." detail
             class = "2"/"3"/"4"/"5"
             subject = 1*3digit
             detail = 1*3digit

   The top level codes denote levels of severity of the status:

   o  1.X.X Informational

      *  The information conveyed by the code has no bearing or
         indication of the success or failure of any request. It is
         stricly for informational purposes only.

   o  2.X.X Success

      *  The request was processed and results were returned. In most
         cases this status class won't be sent since actual results
         themselves denote success. In other cases results were
         returned but some information needs to be returned to the
         client.

   o  3.X.X Partial Success

      *  The request was processed and results were returned. In this
         case though, some values sent with the request were either
         invalid or ignored but in a way that the server still
         considers the response to be a successful one and not
         indicative of any true error condition.

Popp, et. al.            Expires August 1, 2000                [Page 15]

Internet-Draft        CNRP PROTOCOL SPECIFICATION          February 2000

   o  4.X.X Persistent Transient Failure

      *  The request was valid as sent, but some temporary even
         prevents the successful sending of the results. Sending in the
         future may be possible.

   o  5.X.X Permanent Failure

      *  A permenent failure is one which is not likely to be resolved
         by resending the request in its current form. Some change to
         the request or the destination must be made for successful
         request.

   The second level codes denote the subject of the status messages.
   This value applies to each of the three classifications.  The
   subject sub-code, if recognized, must be reported even if the
   additional detail provided by the detail sub-code is not recognized.
   The enumerated values for the subject sub-code are:

   o  X.0.X Other or Undefined Status

      *  No specific information is available about what subject class
         this message belongs to

   o  X.1.X Query Related

      *  Any status related to some specific way in which the query was
         encoded or its values with the exception of properties.

   o  X.2.X Property Related

      *  Any status related to properties and their values.

   o  X.3.X Service Related

      *  Any status related to the service in which this server is
         cooperating in providing.

   o  X.4.X Server Related

      *  Any status related to this particular server.

   o  X.5.X XML Related

      *  Any status related to actual XML encoding of the request

   Appendix B contains a list of all predefined status codes

Appendix B. Status Codes

B.1 Level 1 (Informative) Codes

   1.0.0 -- Undefined Information
      This code is used for any non-categorizable and informative
      message. If, for example, the server wanted to tell the client
      that the systems administrators cat has blue hair, then this code
      would be the appropriate place for this information.
   1.1.0 -- Query related information

Popp, et. al.            Expires August 1, 2000                [Page 27]

Internet-Draft        CNRP PROTOCOL SPECIFICATION          February 2000

      This code is used for any informative information concerning the
      query that client sent. For example, "The query you sent was
      rather interesting!".
   1.2.0 -- Property related information
      This code is used for any informative message pertaining to some
      particular property.
   1.2.1 -- Information related to a properties name
      This code is used for any informative message pertaining to some
      particular property.
   1.2.2 -- Information related to a properties type
      This code is used for any informative message pertaining to the
      type specified for a given property.
   1.2.3 -- Information related to a properties value
      This code is used for any informative message pertaining to a
      value given for a particular property.
   1.3.0 -- An informative message pertaining to the Service
      This message concerns the Service in the general sense.
   1.4.0 -- An informative message pertaining to the Server
      A message pertaining to this particular server.
   1.5.0 -- An informative message pertaining to some bit of XML
      A message describing some information about the XML sent by the
      client. For example, "My! That sure is some pretty XML code
      there!"

B.2 Level 2 (Success) Codes

   2.0.0 -- Something undefined succeeded
      There was success but the situation that this message concerns is
      undefined.
   2.0.0 -- Query succeeded
      The query succeeded. This message MUST be returned when there
      were no results that matched the query. I.e. the query was
      successfully handled and the correct set of results contained no
      resources or referrals. The lack of results is not an error but a
      succesful statement about the common-name.

   NOTE: The apparent lack of 2.X.X level codes is caused by success
   usually being indicated not by a status message but by the server
   returning only the objects that the client requested.

B.3 Level 3 (Partial Success) Codes

   3.0.0 -- Something undefined was only partially successful
      Some request by the client was only partially successful. The
      exact situation or cause of that partial failure is not defined.
   3.1.0 -- The query was only partially successful
   3.1.1 -- The query was overly complex
   3.1.2 -- Some portion of the data was unavailable
      While the service did return some results, some portion of the

Popp, et. al.            Expires August 1, 2000                [Page 28]

Internet-Draft        CNRP PROTOCOL SPECIFICATION          February 2000

      database was unavailable while this query was being processed.
   3.2.0 -- Some property was only partially successful
   3.2.1 -- A property was ignored in general
      The query contained a property that was ignored by this service
      because that property was not understood or used by the service.
   3.2.2 -- Some property was ignored because its type was invalid
      A property used in the query was ignored because the type used by
      the client was invalid for this service.
   3.2.3 -- Some property was ignored because its value was invalid
      A property used in the query was ignored because the value
      supplied was invalid for either the property or type specified.
   3.3.0 -- The Service itself caused a partially successful event
   3.3.1 -- Some referral server was unavailable
      This status message is used to denote that one or more of the
      referral services that are normally queried was unavailable.
      Results were generated but they may not be representative of a
      complete answer.
   3.4.0 -- The Server itself caused a partially successful event
   3.4.1 -- Partial results were returned due to an internal error
      Due to some internal server error the results returned were
      incomplete.
   3.5.0 -- The XML caused a partially successful event
   3.5.1 -- The XML was well formed but invalid
      The XML sent by the client was well formed but invalid. The
      server was smart enough to figure out what the client was talking
      about and return some results.

B.4 Level 4 (Persistent Transient Failure) Codes

   4.0.0 -- Something undefined caused a persistent transient failure
   4.1.0 -- The query failed
   4.1.1 -- The query was to complex
      The query as specified was to complex for this Service to handle.
   4.1.2 -- The common-name was invalid
      Due to constraints on this service, the common-name provided in
      the query was unintelligible. A good example would be for the
      common-name to contain Unicode characters that are not applicable
      for this service.
   4.1.3 -- No common-name was specified
   4.1.4 -- The ID specified was invalid
      If the query contains a request for a specifid ID and that ID was
      not known to this Service then this message is returned.
   4.2.0 -- A property failed
   4.2.1 -- An invalid property was used in the query
      This Service considers unknown properties to be a fatal error
      instead of ignoring it.
   4.2.2 -- A property's type was invalid
      This Service considers unknown property types to be a fatal error
      instead of ignoring it.

Popp, et. al.            Expires August 1, 2000                [Page 29]

Internet-Draft        CNRP PROTOCOL SPECIFICATION          February 2000

   4.2.3 -- A property's value was invalid
      This Service considers supplying a value for a property that
      doesn't match either the property or its type to be a fatal error
      instead of ignoring it.
   4.3.0 -- The Service failed
   4.3.1 -- The Service was to busy
      Due to resource constraints, the entire service is to busy to
      handle requests. This means that any of the Servers cooperating
      in providing this Service would have also returned this same
      message.
   4.4.0 -- The Server failed
   4.4.1 -- The Server was to busy
      Due to resource contstraints, this particular server was to busy
      to handle the query. It is very appropriate to attempt to send
      the query to other servers who are cooperating in providing the
      Service.
   4.5.0 -- The XML failed
   4.5.1 -- The request XML was invalid
      The XML sent in the request did not follow the CNRP DTD.

B.5 Level 5 (Permanent Failures) Codes

   5.0.0 -- Something undefined caused a permanent failure
   5.1.0 -- The query permanently failed
   5.2.0 -- A property caused a permanent failure
   5.3.0 -- The Service had a permanent failure
   5.3.1 -- This Service is no longer available.
      This Service has decided to no longer make itself available.
   5.4.0 -- The Server had a permanent failure
   5.4.1 -- This Server is no longer available
      This Server is no longer part of this Service. Any subsequent
      requests should be directed at another Server.
   5.5.0 -- The XML caused a permanent failure
--
--------------------------------------------------------------------------------
Michael Mealling        |      Vote Libertarian!       | www.rwhois.net/michael
Sr. Research Engineer   |   www.ga.lp.org/gwinnett     | ICQ#:         14198821
Network Solutions       |          www.lp.org          |  [email-masked]

---

From: Leslie Daigle <[email-masked]>
Date: Wed, 24 May 2000 22:31:12 -0400

Howdy,

> can I et some comments on these? Thanks!
        ^^

Depends how hungry you are ;-)

>    o  4.X.X Persistent Transient Failure

"Persistent Transient"?  It's not quite an oxymoron, but it's
awfully awkward.  What's wrong with Transient Failure?

>       *  The request was valid as sent, but some temporary even
                                                             ^^^^^

"evenT"

>          prevents the successful sending of the results. Sending in the

"the successful completion of the request and/or sending of the
results.  Sending in the"

>       that the systems administrators cat has blue hair, then this code

"administrator's" -- missed the apostrophe.

>    4.1.1 -- The query was to complex
                            ^^
TOO!

>       The query as specified was to complex for this Service to handle.
                                   ^^

ditTOO!

>    4.3.1 -- The Service was to busy
                              ^^

>    5.5.0 -- The XML caused a permanent failure

Which of hte above is a good, old-fashioned "syntax error"?!

Overall, the list seems pretty good on reading -- my only concern is
that it may be splitting things down to too fine a level of
granularity, and that only operational experience will tell what's
really needed.

Leslie.

--

-------------------------------------------------------------------
"My body obeys Aristotelian laws of physics."
   -- ThinkingCat

Leslie Daigle
[email-masked]
-------------------------------------------------------------------