Change to use higher-level OpenTransaction()