-
Notifications
You must be signed in to change notification settings - Fork 4
Description
If a service implements atomicity with isolation level "read uncommitted", and an atomicity group (or equivalently, a changeset) contains a successful and a failed request, must the corresponding responses both have failure status? This means that responses to an atomicity group cannot be streamed to the client.
Or is the client obliged to treat a success response like a failure if it comes from an atomicity group that also contains failed responses? This means that clients may receive success messages from an atomicity group as part of a streamed response, but must treat them as "provisional", because a failure message may come later in the same atomicity group. So clients must implement a rollback mechanism when interpreting the responses.
The same question applies to mass updates without continue-on-error preference: OData-Protocol, section 11.4.11.1 says:
If the continue-on-error preference has not been applied, and the service is unable to apply all of the changes in the request, then it MUST return an error response and MUST NOT apply any of the changes specified in the request payload.
For services that stream their responses, "returning an error" means producing an in-stream error. By then, clients may already have received parts of the response.
OData-Protocol, section 11.5.5.1 speaks of 4xx status codes in two places. (There may be other such places in the spec.) This should be rephrased to "client error", which can mean either a 4xx status code or an in-stream error following a success status code.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status