Class: Mongoid::Transaction
- Inherits:
-
Object
- Object
- Mongoid::Transaction
- Defined in:
- lib/mongoid/transaction.rb
Constant Summary collapse
- ISOLATIOAN_LEVELS =
Tokumx supports 3 isolation levels. default is mvcc
['mvcc', 'serializable', 'readUncommitted']
Class Method Summary collapse
Class Method Details
.execute(isolation_level = "mvcc", &block) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/mongoid/transaction.rb', line 6 def self.execute(isolation_level = "mvcc", &block) session = Mongoid.default_session raise 'Invalid isolation level' unless ISOLATIOAN_LEVELS.include? isolation_level # If transaction is not supported excute queries by default behaviour of # mongo if transaction_supported?(session, isolation_level) begin # Transaction is started when we called transaction_supported? so yield # block here yield(block) commit_transaction(session) true rescue Exception => e rollback_transaction(session) raise e end else yield(block) end end |