public static void write(Transactional transactional, TransBlob transBlob, String data) { Txn.executeWrite(transactional, ()->{ transBlob.setString(data); }) ; }
public static void write(Transactional transactional, TransBlob transBlob, String data) { Txn.executeWrite(transactional, ()->{ transBlob.setString(data); }) ; }
@Test public void transBlob_2() { String str1 = "one" ; String str2 = "two" ; write(transactional, transBlob, str1) ; transactional.begin(ReadWrite.WRITE); transBlob.setString(str2); // Difefrent therad and transaction. threadRead(str1) ; transactional.commit() ; transactional.end() ; threadRead(str2) ; }
@Test public void transBlob_2() { String str1 = "one" ; String str2 = "two" ; write(transactional, transBlob, str1) ; transactional.begin(ReadWrite.WRITE); transBlob.setString(str2); // Difefrent therad and transaction. threadRead(str1) ; transactional.commit() ; transactional.end() ; threadRead(str2) ; }
@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); }
@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); }
@Test public void transBlob_3() { String str1 = "one" ; String str2 = "two" ; write(transactional, transBlob, str1) ; String s1 = transBlob.getString() ; assertEquals(str1, s1) ; String s2 = read(transactional, transBlob) ; assertEquals(str1, s2) ; // Start now. ThreadAction tt = ThreadTxn.threadTxnRead(transactional, ()-> { String sr = transBlob.getString() ; Assert.assertEquals(str1, sr) ; }) ; write(transactional, transBlob, str2) ; Txn.executeWrite(transactional, ()->{ transBlob.setString(str2) ; String s = transBlob.getString() ; assertEquals(str2, s) ; }) ; // Run later, after W transaction. tt.run(); } }
@Test public void transBlob_3() { String str1 = "one" ; String str2 = "two" ; write(transactional, transBlob, str1) ; String s1 = transBlob.getString() ; assertEquals(str1, s1) ; String s2 = read(transactional, transBlob) ; assertEquals(str1, s2) ; // Start now. ThreadAction tt = ThreadTxn.threadTxnRead(transactional, ()-> { String sr = transBlob.getString() ; Assert.assertEquals(str1, sr) ; }) ; write(transactional, transBlob, str2) ; Txn.executeWrite(transactional, ()->{ transBlob.setString(str2) ; String s = transBlob.getString() ; assertEquals(str2, s) ; }) ; // Run later, after W transaction. tt.run(); } }