Transaction Abort is not causing rollback

  • Thread starter Thread starter Kathy Sedro
  • Start date Start date
K

Kathy Sedro

Hello,
I am using the Microsoft.Jet.OLEDB.4.0 provider with an
Access database. My C++ program contains the following
where m_pTransaction is an ITransactionLocal:

hr = m_pTransaction->StartTransaction(
ISOLATIONLEVEL_READCOMMITTED, 0, NULL, NULL );
 
1) I don't know
2) I suspect a bug (what jet release are you using)
3) I'm not familiar with the C++ library
4) It's never happened to me

and now for the bad news...

5) How big is the transaction? When MS got SQL Server
good enough to start to compete with JET in the mid 90's,
they broke the JET transaction handling. JET 3 and JET 4
transactions may be partially committed mid transaction.
Unless you use (16 Bit) Jet 2.x, Jet transactions are not
transactions at all -- they are just called that for
historical reasons.... Theoretically, when the transaction
log gets to a certain size, JET will just commit it anyway.

Obviously, MS does not want you to use JET for any
application that has a serious need to transactions, but
having said that, I use JET transactions where I have
complex transactions that may fail, and have not any
roll-back failures: I've never had a partially committed
'transaction'. (But I'm using Jet 3.51, Jet 4 has more
bugs...).


I suggest that you
1) apply any outstanding service packs.
2) test your code against a different provider

(david)
 
Back
Top