Looking through the documentation, I can't find anything that tells me what
happens if an explicitly defined transaction fails to commit. I am
assuming that there must be some timeout, otherwise this obviously causes
the potential for serious problems with locks. For example:
Transaction 1:
BEGIN WORK
UPDATE table
(network outage prevents a COMMIT)
If I am reading correctly, all other transactions will hang waiting to see
if Transaction 1 commits. In this situation it should clearly rollback.
Will postgres eventually time out the transaction and catch this problem?
Can anyone supply or point me to more information about how Postgres
handles this situation?
Testing in psql shows that the transaction is considered stopped (and
rolled back) when the connection from psql is broken. Is a broken network
link (in this case established in PHP) an equivalent situation?
Thanks,
Ben