Search in sources :

Example 1 with Journal

use of org.apache.jena.dboe.transaction.txn.journal.Journal in project jena by apache.

the class TestTransBlobPersistent method transBlobFile_1.

@Test
public void transBlobFile_1() throws Exception {
    Journal journal = Journal.create(Location.create(DIR));
    BufferChannel chan = BufferChannelFile.create(DATA);
    ComponentId cid = ComponentId.allocLocal();
    TransBlob transBlob = new TransBlob(cid, chan);
    Transactional transactional = TransactionalFactory.createTransactional(journal, transBlob);
    String str = "Hello";
    TestTransBlob.write(transactional, transBlob, str);
    chan.close();
    journal.close();
    String s = FileUtils.readWholeFileAsUTF8(DATA);
    assertEquals(str, s);
}
Also used : BufferChannel(org.apache.jena.dboe.base.file.BufferChannel) Journal(org.apache.jena.dboe.transaction.txn.journal.Journal) ComponentId(org.apache.jena.dboe.transaction.txn.ComponentId) Transactional(org.apache.jena.dboe.transaction.Transactional)

Example 2 with Journal

use of org.apache.jena.dboe.transaction.txn.journal.Journal in project jena by apache.

the class TestTransBlobPersistent method transBlobFile_2.

@Test
public void transBlobFile_2() throws Exception {
    Journal journal = Journal.create(Location.create(DIR));
    BufferChannel chan = BufferChannelFile.create(DATA);
    ComponentId cid = ComponentId.allocLocal();
    TransBlob transBlob = new TransBlob(cid, chan);
    Transactional transactional = TransactionalFactory.createTransactional(journal, transBlob);
    String str = "Hello1";
    Txn.executeWrite(transactional, () -> {
        transBlob.setString("one");
    });
    Txn.executeWrite(transactional, () -> {
        transBlob.setString("two");
    });
    chan.close();
    journal.close();
    String s = FileUtils.readWholeFileAsUTF8(DATA);
    assertEquals("two", s);
}
Also used : BufferChannel(org.apache.jena.dboe.base.file.BufferChannel) Journal(org.apache.jena.dboe.transaction.txn.journal.Journal) ComponentId(org.apache.jena.dboe.transaction.txn.ComponentId) Transactional(org.apache.jena.dboe.transaction.Transactional)

Example 3 with Journal

use of org.apache.jena.dboe.transaction.txn.journal.Journal in project jena by apache.

the class TestRecovery method recoverBlobFile_2.

@Test
public void recoverBlobFile_2() throws Exception {
    String str1 = "Recovery One";
    String str2 = "Recovery Two";
    ComponentId cid1 = ComponentId.allocLocal();
    ComponentId cid2 = ComponentId.allocLocal();
    // Write out a journal for two components.
    {
        Journal journal = Journal.create(Location.create(dir.getRoot().getAbsolutePath()));
        journal.write(JournalEntryType.REDO, cid1, IO.stringToByteBuffer(str1));
        journal.write(JournalEntryType.REDO, cid2, IO.stringToByteBuffer(str2));
        journal.writeJournal(JournalEntry.COMMIT);
        journal.close();
    }
    Journal journal = Journal.create(Location.create(dir.getRoot().getAbsolutePath()));
    BufferChannel chan = BufferChannelFile.create(data);
    TransBlob tBlob1 = new TransBlob(cid1, chan);
    TransBlob tBlob2 = new TransBlob(cid2, chan);
    TransactionCoordinator coord = new TransactionCoordinator(journal, Arrays.asList(tBlob1, tBlob2));
    coord.start();
    ByteBuffer blob1 = tBlob1.getBlob();
    assertNotNull(blob1);
    String s1 = IO.byteBufferToString(blob1);
    assertEquals(str1, s1);
    ByteBuffer blob2 = tBlob2.getBlob();
    assertNotNull(blob2);
    String s2 = IO.byteBufferToString(blob2);
    assertEquals(str2, s2);
    assertNotEquals(str1, str2);
    coord.shutdown();
}
Also used : TransBlob(org.apache.jena.dboe.trans.data.TransBlob) BufferChannel(org.apache.jena.dboe.base.file.BufferChannel) TransactionCoordinator(org.apache.jena.dboe.transaction.txn.TransactionCoordinator) Journal(org.apache.jena.dboe.transaction.txn.journal.Journal) ComponentId(org.apache.jena.dboe.transaction.txn.ComponentId) ByteBuffer(java.nio.ByteBuffer)

Example 4 with Journal

use of org.apache.jena.dboe.transaction.txn.journal.Journal in project jena by apache.

the class AbstractTestTxn method setup.

@Before
public void setup() {
    Journal jrnl = Journal.create(Location.mem());
    List<TransactionalComponent> cg = Arrays.asList(counter1, new TransactionalComponentWrapper(counter2), monitor);
    txnMgr = new TransactionCoordinator(jrnl, cg);
    unit = new TransactionalBase(txnMgr);
    txnMgr.start();
}
Also used : Journal(org.apache.jena.dboe.transaction.txn.journal.Journal) Before(org.junit.Before)

Example 5 with Journal

use of org.apache.jena.dboe.transaction.txn.journal.Journal in project jena by apache.

the class TestJournal method journal_05.

@Test
public void journal_05() {
    Journal jrnl = Journal.create(Location.mem());
    jrnl.writeJournal(JournalEntry.COMMIT);
    jrnl.writeJournal(JournalEntry.ABORT);
    long x = jrnl.writeJournal(JournalEntry.COMMIT);
    jrnl.writeJournal(JournalEntry.COMMIT);
    assertFalse(jrnl.isEmpty());
    Iterator<JournalEntry> iter = jrnl.entries(x);
    List<JournalEntry> expected = Arrays.asList(JournalEntry.COMMIT, JournalEntry.COMMIT);
}
Also used : Journal(org.apache.jena.dboe.transaction.txn.journal.Journal) JournalEntry(org.apache.jena.dboe.transaction.txn.journal.JournalEntry) Test(org.junit.Test)

Aggregations

Journal (org.apache.jena.dboe.transaction.txn.journal.Journal)14 Test (org.junit.Test)7 JournalEntry (org.apache.jena.dboe.transaction.txn.journal.JournalEntry)6 ByteBuffer (java.nio.ByteBuffer)4 BufferChannel (org.apache.jena.dboe.base.file.BufferChannel)4 ComponentId (org.apache.jena.dboe.transaction.txn.ComponentId)4 TransactionCoordinator (org.apache.jena.dboe.transaction.txn.TransactionCoordinator)3 TransBlob (org.apache.jena.dboe.trans.data.TransBlob)2 Transactional (org.apache.jena.dboe.transaction.Transactional)2 Before (org.junit.Before)2