On Mar 6, 2006, at 7:21 PM, Lisa Dusseault wrote:


I understand that doing a PUT for both these parts of the stamped resource is non-atomic. But there may be other ways of solving that part.

1. Microsoft invented a WebDAV extension to combine multiple requests in a transaction:
        LOCK with special syntax to start transaction and get transaction ID
PUT #1 with Transaction header to do the first resource created in the transaction
        PUT #2 with same Transaction header
        UNLOCK with transaction ID to commit the changes


Cool. Do they have any documentation for this? Is it on any standards track?

2. The "If" header allows you to create two resources in a way that creating the second one relies on the existence of the first one. The second PUT would look like this

        PUT /users/lisa/work/task-prepare-staff-meeting HTTP/1.1
If: <http://share.o11n.org/users/lisa/work/staff-meeting-event> ([event-etag])
        Content-Type: text/calendar
        ...

There's two options, there may be others.



I'm not sure how that would solve the transactionality problem. If the second PUT failed, the first one would still remain, no?


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

Reply via email to