Transactions can be retried using the Transient Fault Handling Application Block.
This extension helps you create a strategy that will detect transient faults when performing
transactions with Spanner.
To create an execution strategy, create a class
class SpannerTransientErrorDetectionStrategy : ITransientErrorDetectionStrategy
{
public bool IsTransient(Exception ex) => ex.IsTransientSpannerFault();
}
public static bool IsTransientSpannerFault(this Exception exception)
Returns true if the exception represents a transient error in Spanner.
This indicates that the operation may succeed if it is attempted again.
Common errors that can cause this include temporary network interruption
or the service being temporarily unavailable.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThis webpage details the \u003ccode\u003eTransientFaultDetector\u003c/code\u003e class, which is crucial for handling temporary errors when interacting with Spanner databases in .NET applications.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eIsTransientSpannerFault\u003c/code\u003e method is used to detect transient errors in Spanner, indicating whether an operation might succeed upon retry due to temporary issues like network interruptions or service unavailability.\u003c/p\u003e\n"],["\u003cp\u003eThe content provides links to documentation for multiple versions of the \u003ccode\u003eGoogle.Cloud.Spanner.Data\u003c/code\u003e library, including the latest beta release (5.0.0-beta05) and a variety of stable releases, up to version 3.5.0.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eTransientFaultDetector\u003c/code\u003e class extends the base .NET \u003ccode\u003eObject\u003c/code\u003e class, inheriting its basic methods such as \u003ccode\u003eGetHashCode\u003c/code\u003e, \u003ccode\u003eGetType\u003c/code\u003e, \u003ccode\u003eMemberwiseClone\u003c/code\u003e, and \u003ccode\u003eToString\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eImplementing the \u003ccode\u003eITransientErrorDetectionStrategy\u003c/code\u003e interface, one can define a strategy using \u003ccode\u003eIsTransientSpannerFault\u003c/code\u003e to manage transient faults.\u003c/p\u003e\n"]]],[],null,[]]