These transaction isolation levels are supported:
Serializable (default)
Read Committed - Snapshot
The transaction isolation level can only be set before a transaction is started. The isolation level is in effect until a transaction commits or rolls-back. Example 4.5, “Transaction isolation level” demonstrates starting a serializable and a read committed - snapshot transaction.
Example 4.5. Transaction isolation level
// $Revision: 1.1.2.1 $ package com.kabira.snippets.transactions; import com.kabira.platform.Transaction; import com.kabira.platform.Transaction.Rollback; /** * Transaction isolation level * <p> * <h2> Target Nodes</h2> * <ul> * <li> <b>domainnode</b> = A * </ul> */ public class IsolationLevel { /** * Main entry point * @param args Not used */ public static void main(String [] args) { Transaction.Properties properties = new Transaction.Properties(); // // Run a serializable transaction // properties.setTransactionName("Serializable"); properties.setIsolationLevel( Transaction.IsolationLevel.SERIALIZABLE); new Transaction() { @Override protected void run() throws Rollback { System.out.println( getActiveTransactionProperties().getTransactionName() + " using isolation level " + getActiveTransactionProperties().getIsolationLevel()); } }.execute(properties); // // Run a read committed snapshot transaction // properties.setTransactionName("Read Committed - Snapshot"); properties.setIsolationLevel( Transaction.IsolationLevel.READ_COMMITTED_SNAPSHOT); new Transaction() { @Override protected void run() throws Rollback { System.out.println( getActiveTransactionProperties().getTransactionName() + " using isolation level " + getActiveTransactionProperties().getIsolationLevel()); } }.execute(properties); } }
When this snippet is run it outputs:
[A] Serializable using isolation level SERIALIZABLE [A] Read Committed - Snapshot using isolation level READ_COMMITTED_SNAPSHOT