Use TransactionalRecord and fix record read out of transaction in GLPort