Ravi Jain
Ravi Jain

Reputation: 1482

How to rollback DB transaction after http connection is lost

Recently at a interview the interviewer asked me a question, below is the question -

Suppose a request is sent to a servlet and the servlet performs several DB transactions(first update and commit, then read and update and again commit) which takes around 3-4 minutes, during that period the user press the cancel button and the connection is lost. How would you rollback the entire transaction.

My answer was - Since Servlet throws IOException we can handle the exception and rollback the transaction.

But again he questioned me what about the DB commits which are already done, how would you rollback that.

I was blank and replied that i never came across that situation. But i would really like to know what could be done in such a situation.

Thanks.

Upvotes: 0

Views: 380

Answers (1)

Gabriel Aramburu
Gabriel Aramburu

Reputation: 2981

But again he questioned me what about the DB commits which are already done, how would you rollback that.

I think it was not a servlet related questions.If the transaction was committed in the database you can not rollback it. A database transaction has several properties known as ACID (Atomicity, Consistency, Isolation, Durability). The one that applies in this case is Durability:

"Durability is the ACID property which guarantees that transactions that have committed will survive permanently"

Upvotes: 0

Related Questions