es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Los motivos de cancelación de transacciones se devuelven en el mismo orden que se especifican en la solicitud de TransactWriteItemsRequest?

Estamos utilizando la API de transacciones de DynamoDB para realizar 2 escrituras:

TransactWriteItemsRequest transactionalWriteRequest = new TransactWriteItemsRequest();
transactionalWriteRequest.withTransactItems(writeOne, writeTwo); 
dynamoDB.transactWriteItems(transactionalWriteRequest);

Si la transacción falla con una TransactionCanceledException, recibimos una excepción con una lista de objetos CancellationReason.

En mi escenario, imaginemos que tanto writeOne como writeTwo fallan. La excepción devolverá dos razones de cancelación.

Mi pregunta es: ¿El orden de esas razones coincide con el orden de las transacciones en mi solicitud?

¿Esto siempre es cierto?

// Explica por qué falló writeOne
transactionError.getCancellationReasons().get(0);
// Explica por qué falló writeTwo
transactionError.getCancellationReasons().get(1);

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según la documentación de la API de Transacciones de DynamoDB, el orden de las razones devueltas en una TransactionCanceledException corresponde al orden de los elementos de transacción especificados en la TransactWriteItemsRequest. Por lo tanto, en su escenario, la primera razón devuelta coincidiría con la razón del fallo de writeOne y la segunda razón coincidiría con writeTwo. Este comportamiento es consistente y siempre debería ser cierto.

Comments are closed.