Table of Contents

Enum TransactionFailure

Namespace
DynaSharp
Assembly
DynaSharp.dll

Why one action of a cancelled transaction did not take effect, as a value: ReasonFor(TransactMarker). Each member says whether repeating the same transaction can pass, because some causes go away by themselves and others never do.

public enum TransactionFailure

Fields

Unknown = 0

A code this library does not know, which Code shows, or no reason at all for the action. Whether a retry can pass is not known.

None = 1

The action caused no problem. It did not take effect, because another one failed. Look at the others: the transaction was cancelled because of them.

ConditionalCheckFailed = 2

The condition of the action did not hold. Will not pass on a retry: the data must change first, so read it, or use ItemFor(TransactMarker), and decide anew.

ItemCollectionSizeLimitExceeded = 3

The item collection of a table with a local secondary index would exceed 10 GB. Will not pass on a retry: data must go first.

TransactionConflict = 4

An item takes part in another transaction or request right now. May pass on a retry after a short wait: the conflict is over when the other one is.

Throttled = 5

DynamoDB did not have the capacity for the action (the codes ProvisionedThroughputExceeded and ThrottlingError). May pass on a retry with a backoff, once the table has capacity again.

ValidationError = 6

The action is invalid, for example an expression that does not parse or a key that does not fit the table. Will not pass on a retry: the request must change.

Remarks

When adding a member: map its code in TransactionCanceledException, say whether it passes later for IsTransient, and add it to StubResponse.Reason in DynaSharp.Testing. A code this library does not know reads as Unknown.