Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Transação com gravação de arquivo

Aqui eu sei que o foco não é esse, mas no mundo real, não é uma boa ter transação de banco com uma operação de IO, por exemplo gravação de arquivo. Normalmente vcs separariam no MB um método a, que chama o método b (gravação do arquivo) e que depois chama o método c (transacional)?

Nesse caso se estourasse erro no método b (gravação de arquivo) a transação nem começaria. E se gravasse o arquivo (método b) e desse erro na hora de salvar no banco de dados (método c) em tese deveria desfazer o que foi feito no método b (gravação de arquivo). É mais ou menos isso que vcs fariam?

2 respostas

Felipe,

essas proteções contra transações com problemas, que violem as premissas do ACID, são feitas utilizando try, catch e, eventualmente, o finally.

Com o try/catch, você consegue fazer um rollback da transação (desfazer a transação) em caso de erro.

Espero ter ajudado.

Abraço.

Alguém aí?