# File lib/rq-2.3.1/qdb.rb, line 291
      def transaction opts = {} 
#--{{{
        ro = Util::getopt 'read_only', opts 
        ret = nil
        if @in_transaction
      STDERR.puts 'continuing transaction...'
          ret = yield
        else
          begin 
      STDERR.puts 'starting transaction...'
            @in_transaction = true
            lockd_recover_wrap(opts) do
              transaction_wrap(opts) do
                aquire_lock(opts) do
                  #sillyclean(opts) do
                    connect do
                      execute 'begin' unless ro
                      ret = yield 
                      execute 'commit' unless ro
                    end
                  #end
                end
              end
            end
          ensure
            @in_transaction = false
          end
        end
        ret
#--}}}
      end