codeconsole commented on PR #15744: URL: https://github.com/apache/grails-core/pull/15744#issuecomment-4896586989
Done in 973747bdff — added a "Retry Semantics" section to the Multi-Document Transactions docs in `advancedConfig.adoc`. It documents both halves of the boundary explicitly: - **`UnknownTransactionCommitResult`** — GORM retries the commit automatically (up to 3 times), since the commit may have already succeeded and MongoDB guarantees re-issuing it will not double-apply the writes. - **`TransientTransactionError`** — deliberately *not* retried. Re-running the transaction body re-runs its side effects (email, HTTP calls, messaging), which is only safe when the body is idempotent — something only the application can know. This matches the line Spring Data MongoDB's `MongoTransactionManager` draws, and relational GORM behaves the same way for transient serialization/deadlock errors. The docs also include a worked example of an application-level retry loop using `MongoException.TRANSIENT_TRANSACTION_ERROR_LABEL`, plus a pointer to Spring Retry's `@Retryable` as the declarative alternative. The `MongoTransaction` javadoc already covered the rationale at the code level, so this fills the user-facing gap. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
