- From: christopher ferris <chris.ferris@east.sun.com>
- Date: Mon, 06 Aug 2001 11:54:30 -0400
- To: Jacek Kopecky <jacek@idoox.com>
- CC: xml-dist-app@w3.org, soapbuilders@yahoogroups.com
+1 to Jacek's proposal below.
Cheers,
Chris
Jacek Kopecky wrote:
>
> Hello,
>
> on the RPC task force's telcon I agreed to post a summary
> on how I would resolve the issue #45 [1].
>
> Folks on soapbuilders, please respond directly to
> xml-dist-app@w3.org to minimize the crossposting.
>
> First, I'd like to show how other RPC systems handle error
> states:
>
> ONC RPC [2] has a predefined set of fault codes, summarizable as
> a) system error (like memory allocation failures)
> b) target not found (program, version or procedure unavailable)
> c) bad arguments (can't decode params)
> d) authentication errors
>
> Please note that ONC RPC doesn't view application errors as RPC
> faults, this is understandable in the context of this over a
> decade old protocol modeled after local calls in languages
> that didn't have exception handling.
>
> XML-RPC [3] has numeric fault codes whose meaning is
> implementation-dependent. There has been criticism of this
> because such an approach is bad for interoperability.
>
> SOAP has four fault codes, of which two could possibly be used
> to signify RPC errors: Client and Server. SOAP allows extending
> these fault codes by adding a identifier after a dot, but for my
> opinion on this please see my mail [4].
>
> My proposal for resolving the issue #45 is show below. In the
> text I use the notation {namespace}local-part for writing
> qualified names, the namespace is just an identifier that should
> be obvious, not the whole URI.
>
> --------- proposal begin
>
> 1) A {soap-env}Server fault SHOULD be generated when the server
> cannot handle the message because of some temporary condition,
> like when it is out of memory. This doesn't apply to temporary
> conditions of the application, like database being down or a
> record not present.
> [SHOULD because the server can lack the resources to even
> generate a proper fault]
>
> 2) An {rpc}MethodNotPresent fault MUST be generated when the
> server cannot find the method specified.
>
> 3) An {rpc}BadArguments fault MUST be generated when the server
> cannot parse the arguments or when there is a mismatch between
> what the server expects and what the client has sent.
>
> 4) Either of the following two is true, a) is preferred:
>
> a) An {rpc}Application fault is generated when the
> application has failed for some reason.
>
> b) A successful response containing some application-dependent
> indication of a fault is generated.
> [this 4a point allows for ONC-RPC-like handling of fault
> conditions]
>
> In all these cases the <detail> and <faultstring> values would
> depend on the implementation or could be specified by some
> external document.
>
> --------- proposal end
>
> This proposal is aims to cover the most common situations while
> remaining relatively simple. Comments very welcome and indeed
> requested. 8-)
>
> Jacek Kopecky
>
> Idoox
> http://www.idoox.com/
>
> [1] http://www.w3.org/2000/xp/Group/xmlp-issues.html#x45
> [2] http://sunsite.cnlab-switch.ch/ftp/doc/standard/rfc/18xx/1831
> [3] http://www.xml-rpc.org/spec
> [4] http://lists.w3.org/Archives/Public/xml-dist-app/2001Aug/0016.html
Received on Monday, 6 August 2001 11:54:38 UTC