# File lib/transaction/simple.rb, line 347
347:     def start_transaction(name = nil)
348:       @__transaction_level__ ||= 0
349:       @__transaction_names__ ||= []
350: 
351:       if name.nil?
352:         @__transaction_names__ << nil
353:         ss = "" if Transaction::Simple.debugging?
354:       else
355:         if @__transaction_names__.include?(name)
356:           raise TransactionError, Messages[:unique_names]
357:         end
358:         name = name.dup.freeze if name.kind_of?(String)
359:         @__transaction_names__ << name
360:         ss = "(#{name.inspect})" if Transaction::Simple.debugging?
361:       end
362: 
363:       @__transaction_level__ += 1
364: 
365:       if Transaction::Simple.debugging?
366:         Transaction::Simple.debug_io << "#{'>' * @__transaction_level__} " <<
367:           "Start Transaction#{ss}\n"
368:       end
369: 
370:       @__transaction_checkpoint__ = Marshal.dump(self)
371:     end