From: Ann W. H. <aha...@ib...> - 2002-12-16 15:15:35
|
At 01:56 AM 12/16/2002 -0400, Claudio Valderrama C. wrote: > > > > But when client dies and server notice, server performs the rollback, > > don't he ? If undo log is used on rollback to rewind changes and allow to > > mark transaction as committed instead, client or network failure should > > not affect OIT in most cases (every time undo log is used). > >I don't know why this can't happen. If the client crashed, the server knows >the changes that it received until the client crashed. So, naively, I would >expect that the undo log is usable. Can you explain why not, Ann? No, not from the code. If I were doing it, I'd assume that a transaction that rolled back might have something severely wrong with it and not trust its undo log. However, there are two paths, TRA_release_transaction and TRA_rollback. The latter applies the undo log, the former does not. The only calls to the former are from various shutdown routines. So, apparently, the undo log is used on client death, regardless of how I thought it worked. Hard to argue with the code. >Pre-committed from the point of view of OAT management maybe, but I would >dare to call pre-committed only the system transaction. In fact, the system transaction, transaction 0, is always active... >And of course, there are some system tables whose changes are seen >immediately by every txn, regardless of its isolation level. Those changes are made by transaction 0. Regards, Ann www.ibphoenix.com We have answers. |