public void begin(Transaction txn)
{
//debug("%s begin", txn.getLabel()) ;
if ( this.txn.getTxnId() != txn.getTxnId() )
throw new TDBException(String.format("Different transactions: %s %s", this.txn.getLabel(), txn.getLabel())) ;
if ( passthrough )
throw new TDBException("Already active") ;
passthrough = false ;
allocOffset = base.allocOffset().getId() ;
// base node table empty e.g. first use.
journalObjFileStartOffset = journalObjFile.length() ;