Rollback su transazioni

Ciao a tutti,

credo di essermi perso qualche puntata sulle transazioni in Rails…

Ho una applicazione che fa una cosa del tipo:

    Availability.transaction do
      User.transaction do
          begin
            Availability.update_booking(booking)
          rescue Exception => e
            overbooking_exception = true
            raise "Rollback for overbooking"
          end

          begin
            user.credits -= booking.credits
            user.credits = 0 if user.credits < 0
            user.save!
          rescue Exception => e
            user_exception = true
            raise "Rollback for user credits update exception"
          end

      end
    end

Ora, quando sollevo l’eccezione sul secondo blocco (user_exception)
succede che invece di fare rollback mi ritrovo nel db i dati scritti dal
primo blocco.

La cosa strana è che questo mi succede da quando ho aggiornato il
framework a Rails 1.2.7 mentre prima con Rails 1.2.2 il rollback
avveniva correttamente.

Mi sono perso qualche puntata ?

Qualcuno mi può dare qualche dritta ?

Grazie a tutti.

Ho risolto…

E’ successo che il db utilizzava lo storage engine MyISAM anzichè InnoDB
(damn…)