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:22:27 UTC