当前位置: 首页>>代码示例>>Java>>正文


Java Transaction.commitSync方法代码示例

本文整理汇总了Java中com.sleepycat.je.Transaction.commitSync方法的典型用法代码示例。如果您正苦于以下问题:Java Transaction.commitSync方法的具体用法?Java Transaction.commitSync怎么用?Java Transaction.commitSync使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.sleepycat.je.Transaction的用法示例。


在下文中一共展示了Transaction.commitSync方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: syncExplicit

import com.sleepycat.je.Transaction; //导入方法依赖的package包/类
/**
 * Does an explicit commit and returns whether an fsync occured.
 */
private void syncExplicit(RandomAccessFile lastLogFile,
                          TransactionConfig config,
                          boolean expectSync,
                          boolean expectWrite)
    throws DatabaseException, IOException {

    DatabaseEntry key = new DatabaseEntry(new byte[1]);
    DatabaseEntry data = new DatabaseEntry(new byte[1]);

    long beforeSyncs = getNSyncs();
    Transaction txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    long beforeLength = lastLogFile.length();
    txn.commit();
    long afterSyncs = getNSyncs();
    long afterLength = lastLogFile.length();
    boolean syncOccurred = afterSyncs > beforeSyncs;
    boolean writeOccurred = afterLength > beforeLength;
    assertEquals(expectSync, syncOccurred);
    assertEquals(expectWrite, writeOccurred);

    /*
     * Make sure explicit sync/noSync/writeNoSync always works.
     */

    /* Expect a sync and write. */
    beforeSyncs = getNSyncs();
    beforeLength = lastLogFile.length();
    txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    txn.commitSync();
    afterSyncs = getNSyncs();
    afterLength = lastLogFile.length();
    assert(afterSyncs > beforeSyncs);
    assert(afterLength > beforeLength);

    /* Expect neither a sync nor write. */
    beforeSyncs = getNSyncs();
    beforeLength = lastLogFile.length();
    txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    txn.commitNoSync();
    afterSyncs = getNSyncs();
    afterLength = lastLogFile.length();
    assert(afterSyncs == beforeSyncs);
    assert(afterLength == beforeLength);

    /* Expect no sync but do expect a write. */
    beforeSyncs = getNSyncs();
    beforeLength = lastLogFile.length();
    txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    txn.commitWriteNoSync();
    afterSyncs = getNSyncs();
    afterLength = lastLogFile.length();
    assert(afterSyncs == beforeSyncs);
    assert(afterLength > beforeLength);
}
 
开发者ID:nologic,项目名称:nabs,代码行数:62,代码来源:TxnTest.java

示例2: syncExplicit

import com.sleepycat.je.Transaction; //导入方法依赖的package包/类
/**
 * Does an explicit commit and returns whether an fsync occured.
 */
private void syncExplicit(RandomAccessFile lastLogFile,
                          TransactionConfig config,
                          boolean expectSync,
                          boolean expectWrite)
    throws DatabaseException, IOException {

    DatabaseEntry key = new DatabaseEntry(new byte[1]);
    DatabaseEntry data = new DatabaseEntry(new byte[1]);

    long beforeSyncs = getNSyncs();
    Transaction txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    long beforeLength = lastLogFile.length();
    txn.commit();
    long afterSyncs = getNSyncs();
    long afterLength = lastLogFile.length();
    boolean syncOccurred = afterSyncs > beforeSyncs;
    boolean writeOccurred = afterLength > beforeLength;
    assertEquals(expectSync, syncOccurred);
    assertEquals(expectWrite, writeOccurred);

    /* 
     * Make sure explicit sync/noSync/writeNoSync always works.
     */

    /* Expect a sync and write. */
    beforeSyncs = getNSyncs();
    beforeLength = lastLogFile.length();
    txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    txn.commitSync();
    afterSyncs = getNSyncs();
    afterLength = lastLogFile.length();
    assert(afterSyncs > beforeSyncs);
    assert(afterLength > beforeLength);

    /* Expect neither a sync nor write. */
    beforeSyncs = getNSyncs();
    beforeLength = lastLogFile.length();
    txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    txn.commitNoSync();
    afterSyncs = getNSyncs();
    afterLength = lastLogFile.length();
    assert(afterSyncs == beforeSyncs);
    assert(afterLength == beforeLength);

    /* Expect no sync but do expect a write. */
    beforeSyncs = getNSyncs();
    beforeLength = lastLogFile.length();
    txn = env.beginTransaction(null, config);
    db.put(txn, key, data);
    txn.commitWriteNoSync();
    afterSyncs = getNSyncs();
    afterLength = lastLogFile.length();
    assert(afterSyncs == beforeSyncs);
    assert(afterLength > beforeLength);
}
 
开发者ID:nologic,项目名称:nabs,代码行数:62,代码来源:TxnTest.java


注:本文中的com.sleepycat.je.Transaction.commitSync方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。