亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? logsystem.java

?? 非常棒的java數據庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
                return ((LogFile) a).getId() - ((LogFile) b).getId();
            }
        });
        if (activeLogs.size() == 0) {
            LogFile l = new LogFile(this, 0, fileNamePrefix);
            activeLogs.add(l);
        }
        currentLog = (LogFile) activeLogs.get(activeLogs.size() - 1);
        closed = false;
    }

    Storage getStorageForRecovery(int id) throws SQLException {
        boolean dataFile;
        if (id < 0) {
            dataFile = false;
            id = -id;
        } else {
            dataFile = true;
        }
        Integer i = ObjectUtils.getInteger(id);
        Storage storage = (Storage) storages.get(i);
        if (storage == null) {
            storage = database.getStorage(null, id, dataFile);
            storages.put(i, storage);
        }
        return storage;
    }

    boolean isSessionCommitted(int sessionId, int logId, int pos) {
        Integer key = ObjectUtils.getInteger(sessionId);
        SessionState state = (SessionState) sessions.get(key);
        if (state == null) {
            return true;
        }
        return state.isCommitted(logId, pos);
    }

    void setLastCommitForSession(int sessionId, int logId, int pos) {
        SessionState state = getOrAddSessionState(sessionId);
        state.lastCommitLog = logId;
        state.lastCommitPos = pos;
        state.inDoubtTransaction = null;
    }

    SessionState getOrAddSessionState(int sessionId) {
        Integer key = ObjectUtils.getInteger(sessionId);
        SessionState state = (SessionState) sessions.get(key);
        if (state == null) {
            state = new SessionState();
            sessions.put(key, state);
            state.sessionId = sessionId;
        }
        return state;
    }

    void setPreparedCommitForSession(LogFile log, int sessionId, int pos, String transaction, int blocks) {
        SessionState state = getOrAddSessionState(sessionId);
        // this is potentially a commit, so 
        // don't roll back the action before it (currently)
        setLastCommitForSession(sessionId, log.getId(), pos);
        state.inDoubtTransaction = new InDoubtTransaction(log, sessionId, pos, transaction, blocks);
    }

    public ObjectArray getInDoubtTransactions() {
        return inDoubtTransactions;
    }

    void removeSession(int sessionId) {
        sessions.remove(ObjectUtils.getInteger(sessionId));
    }

    public void prepareCommit(Session session, String transaction) throws SQLException {
        if (database == null || readOnly) {
            return;
        }
        synchronized (database) {
            if (closed) {
                return;
            }
            currentLog.prepareCommit(session, transaction);
        }
    }

    public void commit(Session session) throws SQLException {
        if (database == null || readOnly) {
            return;
        }
        synchronized (database) {
            if (closed) {
                return;
            }
            currentLog.commit(session);
            session.setAllCommitted();
        }
    }

    public void flush() throws SQLException {
        if (database == null || readOnly) {
            return;
        }
        synchronized (database) {
            if (closed) {
                return;
            }
            currentLog.flush();
        }
    }

    /**
     * Add a truncate entry.
     * 
     * @param session the session
     * @param file the disk file
     * @param storageId the storage id
     * @param recordId the id of the first record
     * @param blockCount the number of blocks
     */
    public void addTruncate(Session session, DiskFile file, int storageId, int recordId, int blockCount)
            throws SQLException {
        if (database == null) {
            return;
        }
        synchronized (database) {
            if (disabled || closed) {
                return;
            }
            database.checkWritingAllowed();
            if (!file.isDataFile()) {
                storageId = -storageId;
            }
            currentLog.addTruncate(session, storageId, recordId, blockCount);
            if (currentLog.getFileSize() > maxLogSize) {
                checkpoint();
            }
        }
    }

    public void add(Session session, DiskFile file, Record record) throws SQLException {
        if (database == null) {
            return;
        }
        synchronized (database) {
            if (disabled || closed) {
                return;
            }
            database.checkWritingAllowed();
            int storageId = record.getStorageId();
            if (!file.isDataFile()) {
                storageId = -storageId;
            }
            int log = currentLog.getId();
            int pos = currentLog.getPos();
            session.addLogPos(log, pos);
            record.setLastLog(log, pos);
            currentLog.add(session, storageId, record);
            if (currentLog.getFileSize() > maxLogSize) {
                checkpoint();
            }
        }
    }

    public void checkpoint() throws SQLException {
        if (readOnly || database == null) {
            return;
        }
        synchronized (database) {
            if (closed || disabled) {
                return;
            }
            flushAndCloseUnused();
            currentLog = new LogFile(this, currentLog.getId() + 1, fileNamePrefix);
            activeLogs.add(currentLog);
            writeSummary();
            currentLog.flush();
        }
    }

    public ObjectArray getActiveLogFiles() {
        synchronized (database) {
            ObjectArray list = new ObjectArray();
            list.addAll(activeLogs);
            return list;
        }
    }

    private void writeSummary() throws SQLException {
        byte[] summary;
        DiskFile file;
        file = database.getDataFile();
        if (file == null) {
            return;
        }
        summary = file.getSummary();
        if (summary != null) {
            currentLog.addSummary(true, summary);
        }
        if (database.getLogIndexChanges() || database.getIndexSummaryValid()) {
            file = database.getIndexFile();
            summary = file.getSummary();
            if (summary != null) {
                currentLog.addSummary(false, summary);
            }
        } else {
            // invalidate the index summary
            currentLog.addSummary(false, null);
        }
    }

    Database getDatabase() {
        return database;
    }

    DataPage getRowBuffer() {
        return rowBuff;
    }

    public void setFlushOnEachCommit(boolean b) {
        flushOnEachCommit = b;
    }

    boolean getFlushOnEachCommit() {
        return flushOnEachCommit;
    }

    public void sync() throws SQLException {
        if (database == null || readOnly) {
            return;
        }
        synchronized (database) {
            if (currentLog != null) {
                currentLog.flush();
                currentLog.sync();
            }
        }
    }

    public void setDisabled(boolean disabled) {
        this.disabled = disabled;
    }

    void addRedoLog(Storage storage, int recordId, int blockCount, DataPage rec) throws SQLException {
        DiskFile file = storage.getDiskFile();
        file.addRedoLog(storage, recordId, blockCount, rec);
    }

    public void invalidateIndexSummary() throws SQLException {
        currentLog.addSummary(false, null);
    }

    public synchronized void updateKeepFiles(int incrementDecrement) {
        keepFiles += incrementDecrement;
    }

    String getAccessMode() {
        return accessMode;
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产一区二区| 欧美极品aⅴ影院| 91免费视频网址| 成人av网站在线观看免费| 久久99精品久久久久久国产越南| 一区二区三区 在线观看视频| 亚洲日本一区二区| 亚洲欧美日韩一区二区 | 久久色中文字幕| 欧美午夜精品一区二区蜜桃| 欧美性大战xxxxx久久久| 日本韩国一区二区| 4438x亚洲最大成人网| 日韩精品一区二区三区中文精品| 日韩欧美国产高清| 亚洲国产精品成人综合 | 欧美日韩一区中文字幕| 欧美日韩一区不卡| 日韩欧美一区在线| 中文字幕国产一区二区| 亚洲精品成人悠悠色影视| 亚洲成a人在线观看| 久草热8精品视频在线观看| 99精品欧美一区二区蜜桃免费 | 国产福利91精品一区二区三区| 国产精品综合二区| 色婷婷久久综合| 欧美一区二区三区公司| 欧美激情一区二区三区不卡| 亚洲一卡二卡三卡四卡无卡久久| 男女激情视频一区| av综合在线播放| 欧美一区二区三区色| 国产精品日产欧美久久久久| 亚洲国产日韩精品| 国产麻豆精品在线观看| 91蜜桃婷婷狠狠久久综合9色| 欧美丰满少妇xxxxx高潮对白| 久久精品视频免费观看| 亚洲一区二区三区小说| 国产永久精品大片wwwapp| 在线亚洲+欧美+日本专区| 久久久亚洲精华液精华液精华液| 一区二区三区在线看| 国产一区二区精品在线观看| 在线精品亚洲一区二区不卡| 国产欧美一区二区在线| 午夜精彩视频在线观看不卡| 国产成人免费视频| 欧美一区二区福利在线| 亚洲一区二区成人在线观看| 成人性生交大片免费看视频在线 | 亚洲色图欧美激情| 精品一区二区影视| 在线成人免费视频| 自拍偷在线精品自拍偷无码专区| 久久精品噜噜噜成人av农村| 在线精品亚洲一区二区不卡| 最新不卡av在线| 国产大陆a不卡| 精品免费国产二区三区 | 国产美女在线观看一区| 日韩一级在线观看| 美洲天堂一区二卡三卡四卡视频| 欧美色爱综合网| 亚洲日本丝袜连裤袜办公室| 成人爽a毛片一区二区免费| 久久久久久久久久久久电影 | 欧美日韩免费在线视频| 亚洲桃色在线一区| 风间由美一区二区三区在线观看| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产精品嫩草99a| 国产91精品露脸国语对白| 久久婷婷综合激情| 激情综合亚洲精品| 久久久久久日产精品| 国产在线不卡视频| 久久精品一区二区三区不卡| 国产一区二区三区在线观看精品 | 在线一区二区三区四区五区| 日韩毛片高清在线播放| 色婷婷av一区二区| 亚洲综合视频网| 欧美夫妻性生活| 狠狠色丁香久久婷婷综| 国产日韩精品一区二区浪潮av | 日本视频中文字幕一区二区三区| 91.com视频| 韩国精品在线观看| 欧美激情一区二区三区全黄| 91在线播放网址| 亚洲国产一二三| 日韩精品在线一区| 国产aⅴ精品一区二区三区色成熟| 国产精品久久久久久福利一牛影视 | 91麻豆免费在线观看| 亚洲欧美韩国综合色| 在线一区二区视频| 麻豆精品一区二区三区| 中日韩av电影| 精品视频一区三区九区| 韩国欧美国产1区| **欧美大码日韩| 91精品国产黑色紧身裤美女| 国产一区美女在线| 亚洲精品成人悠悠色影视| 91精品国产综合久久精品图片| 国产综合色产在线精品| 亚洲欧美另类小说| 日韩欧美资源站| 91免费看`日韩一区二区| 一区二区三区日韩欧美| 亚洲精品一区二区三区福利 | 91精品国产综合久久久久久久久久| 精品一区二区三区久久| 亚洲精品国产视频| 久久香蕉国产线看观看99| 欧美性大战久久久久久久蜜臀| 国产精品77777| 日本在线不卡一区| 中文字幕日本乱码精品影院| 欧美一级日韩不卡播放免费| 91在线观看一区二区| 黑人巨大精品欧美黑白配亚洲| 国产精品久久久久久亚洲毛片| 3atv在线一区二区三区| 成人动漫在线一区| 激情五月激情综合网| 日韩在线一区二区| 一区二区在线观看视频| 国产精品欧美综合在线| 日韩精品专区在线影院重磅| 欧美日韩国产在线播放网站| av中文一区二区三区| 国产很黄免费观看久久| 热久久久久久久| 午夜精品福利一区二区三区av| 一色屋精品亚洲香蕉网站| 国产亚洲成aⅴ人片在线观看| 欧美一区二区三区视频在线观看| 在线精品视频免费播放| 丁香网亚洲国际| 国产高清精品久久久久| 天堂va蜜桃一区二区三区漫画版| 一区二区三区在线视频播放| 日韩美女久久久| 亚洲精品亚洲人成人网| 亚洲婷婷综合久久一本伊一区| 国产精品久久三区| 国产精品久久三| 最新成人av在线| 亚洲欧美另类在线| 亚洲在线观看免费视频| 亚洲综合av网| 亚洲午夜视频在线观看| 午夜视频久久久久久| 亚洲三级在线看| 一区二区三区国产| 亚洲国产人成综合网站| 午夜精品久久久| 久久精品国内一区二区三区| 狠狠色综合播放一区二区| 国产精品99久久久久久宅男| 大胆亚洲人体视频| 91丨国产丨九色丨pron| 91久久国产综合久久| 欧美猛男男办公室激情| 69精品人人人人| 国产成人精品综合在线观看| 欧美一区二区二区| 男女男精品视频网| 狠狠色丁香婷婷综合| 成人免费视频网站在线观看| 91热门视频在线观看| 欧美群妇大交群的观看方式| 欧美日本高清视频在线观看| 精品免费国产二区三区| 国产精品初高中害羞小美女文| 亚洲精品乱码久久久久久久久| 日韩国产高清在线| 国产成人欧美日韩在线电影| 在线观看亚洲专区| 欧美成人精精品一区二区频| 国产精品成人网| 美女脱光内衣内裤视频久久网站| 国产福利91精品一区二区三区| 欧美性大战久久久| 久久久久国产成人精品亚洲午夜| 亚洲免费视频成人| 久久se这里有精品| 色老头久久综合| 精品国内二区三区| 亚洲一区欧美一区| 丰满少妇久久久久久久| 欧美剧情片在线观看| 亚洲欧洲日产国码二区| 日韩精品一卡二卡三卡四卡无卡| 不卡视频在线观看| 欧美不卡一区二区|