/**
* Begin a new transaction with the specified timeout and bind its context to the current thread
* @param transactionTimeoutSeconds the timeout foe this transaction in seconds
*/
public void begin(int transactionTimeoutSeconds) {
TransactionID txId = currentTransactionIdThreadLocal.get();
if (txId != null) {
throw new TransactionException("transaction already started");
}
LocalTransactionContext newTx = new LocalTransactionContext(transactionTimeoutSeconds, transactionIDFactory.createTransactionID());