- From: Lisa Lippert (Dusseault) (Exchange) <lisal@exchange.microsoft.com>
- Date: Fri, 16 Apr 1999 10:12:30 -0700
- To: "'w3c-dist-auth@w3.org'" <w3c-dist-auth@w3.org>
- Cc: "'gstein@lyra.org'" <gstein@lyra.org>
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