private LoadException loadException = null;
// when instantiated, all data are loaded
TidList(File topDir, boolean clear) throws BrokerException {
SizeString filesize = config.getSizeProperty(TXN_FILE_SIZE_PROP,
DEFAULT_TXN_FILE_SIZE);
backingFile = new File(topDir, BASENAME);
try {
useMemoryMappedFile = config.getBooleanProperty(
TXN_USE_MEMORY_MAPPED_FILE_PROP,
DEFAULT_TXN_USE_MEMORY_MAPPED_FILE);
updateOptimization = useMemoryMappedFile &&
config.getBooleanProperty(
TXN_UPDATE_OPTIMIZATION_PROP,
DEFAULT_TXN_UPDATE_OPTIMIZATION);
// safe = false; caller controls data synchronization
if (useMemoryMappedFile) {
tidMap = new PHashMapMMF(
backingFile, filesize.getBytes(), 1024, false, clear);
if (updateOptimization) {
((PHashMapMMF)tidMap).intClientData(CLIENT_DATA_SIZE);
}
} else {
tidMap = new PHashMap(
backingFile, filesize.getBytes(), 1024, false, clear);
}
} catch (IOException e) {
logger.log(logger.ERROR, br.X_LOAD_TRANSACTIONS_FAILED, e);
throw new BrokerException(
br.getString(br.X_LOAD_TRANSACTIONS_FAILED), e);