# File lib/tapkit/access/adapters/openbase.rb, line 379
                def begin_transaction
                        if open_transaction? then
                                raise "already begun"
                        else
                                @channel = nil
                                @channels.each do |channel|
                                        unless channel.fetch_progress? then
                                                unless channel.open? then
                                                        channel.open
                                                end
                                        end

                                        @channel = channel
                                        break
                                end

                                unless @channel then
                                        @channel = create_channel
                                        @channel.open
                                end
                        end

                        openbase.begin

                        @open_transaction     = true
                        @commit_transaction   = false
                        @rollback_transaction = false

                        transaction_did_begin
                end