RE: Must PROPPATCH operation be atomic...

I know this is an old conversation, but the email got buried in my
mailbox...

Some PROPPATCH results can fail and others can succeed, so this is why we
have multi-valued responses.  Clients can easily see what happened.
Rollback is difficult for servers to implement.  Are there any server
implementations that do already implement this as atomic or with rollback?
I'm not aware of any.  I see rollback as a more advanced feature, that we
can figure out how to do later on.

Lisa

> -----Original Message-----
> From: Greg Stein [mailto:gstein@lyra.org]
> Sent: Wednesday, February 17, 1999 4:21 PM
> To: Imran Khan
> Cc: w3c-dist-auth@w3.org
> Subject: Re: Must PROPPATCH operation be atomic...
> 
> 
> Imran Khan wrote:
> > 
> > I am implementing WebDAV server but I feel I might be hitting in a
> > brick wall. I was wondering if PROPPATCH command enforces 
atomicity?
> > Atleast according to the WebDAV draft it says that either all the
> > set/remove operations pass or they all fail which means 
> rolling back.
> > Can't I do "besteffort" vs. "atomic" in case of PROPPATCH? 
> Because in
> > my application scenario I am trying to replace the 
current protocol
> > that allows besteffort as well as atomic flexibility.
> 
> Painful as it may be, the operation must be atomic. As a 
fellow server
> implementor, I sympathize ... I haven't implemented rollback 
> either :-)
> 
> It would be nice if a client could say "do best effort", but that
> doesn't exist. The atomic requirement allows a client to 
ensure that a
> consistent set of changes are made.
> 
> IMO, if you have a closed system (your own client and 
server), then it
> is perfectly acceptable to insert a new child element in 
the PROPPATCH
> to identify best-effort. For example, the request body could 
> look like:
> 
> <?xml version="1.0" encoding="utf-8" ?>
> <D:propertyupdate xmlns:D="DAV:"
> xmlns:Z="http://www.example.com/mydav/">
>   <Z:besteffort>
>   <D:set>
>     <D:prop>
>       <Z:some-prop/>
>     </D:prop>
>   </D:set>
>   <D:remove>
>     <D:prop>
>       <Z:other-prop/>
>     </D:prop>
>   </D:remove>
> </D:propertyupdate>
> 
> Your server could then recognize the besteffort tag. Your 
client would
> also use the tag. Other clients that access the server would 
> not include
> it, so your server would guarantee atomicity for them (since 
> they expect
> it).
> 
> Cheers,
> -g
> 
> --
> Greg Stein, http://www.lyra.org/

Received on Friday, 16 April 1999 13:12:49 UTC