// Note that the nested transaction inherits the compatibility space
// from "this", thus the new transaction shares the compatibility space
// of the current transaction.
Transaction child_rawtran =
((readOnly) ?
accessmanager.getRawStore().startNestedReadOnlyUserTransaction(
rawtran,
getLockSpace(),
cm,
AccessFactoryGlobals.NESTED_READONLY_USER_TRANS) :
accessmanager.getRawStore().startNestedUpdateUserTransaction(
rawtran,
cm,
AccessFactoryGlobals.NESTED_UPDATE_USER_TRANS,
flush_log_on_xact_end));
RAMTransaction rt =
new RAMTransaction(accessmanager, child_rawtran, this);
RAMTransactionContext rtc =
new RAMTransactionContext(
cm,
AccessFactoryGlobals.RAMXACT_CHILD_CONTEXT_ID,
rt, true /*abortAll */);
child_rawtran.setDefaultLockingPolicy(
accessmanager.getDefaultLockingPolicy());
return(rt);
}