- From: Yaron Goland <yarong@microsoft.com>
- Date: Wed, 17 Feb 1999 16:31:01 -0800
- To: "'Greg Stein'" <gstein@lyra.org>, Imran Khan <imrank123@yahoo.com>
- Cc: w3c-dist-auth@w3.org
In http://lists.w3.org/Archives/Public/w3c-dist-auth/1998OctDec/0303.html (section 3) I talk about why WebDAV requires atomicity. I also question how critical this need really is. In the end, however, I suspect that atomicity really is important. I can just imagine too many scenarios where not having a truly atomic PROPPATCH would leave your system in a truly horrendous state. Yaron > -----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 Wednesday, 17 February 1999 19:31:06 UTC