/**
* Create a database config for use on the replica which contains
* all the configuration options that were conveyed by way of this class.
*/
public DatabaseConfig getReplicaConfig(EnvironmentImpl envImpl) {
DatabaseConfig replicaConfig = new DatabaseConfig();
replicaConfig.setTransactional(true);
replicaConfig.setSortedDuplicates
(DatabaseImpl.getSortedDuplicates(flags));
/*
* KeyPrefixing is set to true if dups are enabled, to account for the
* upgrade scenario where the Master has not yet been upgraded but the
* Replica has been.
*/
replicaConfig.setKeyPrefixing(DatabaseImpl.getKeyPrefixing(flags) ||
DatabaseImpl.getSortedDuplicates(flags));
replicaConfig.setTemporary(DatabaseImpl.isTemporary(flags));
DbInternal.setReplicated(replicaConfig, true);
replicaConfig.setNodeMaxEntries(maxTreeEntriesPerNode);
DatabaseImpl.ComparatorReader reader =
new DatabaseImpl.ComparatorReader(btreeComparatorBytes,
"Btree",
envImpl.getClassLoader());
if (reader.isClass()) {
replicaConfig.setBtreeComparator(reader.getComparatorClass());
} else {
replicaConfig.setBtreeComparator(reader.getComparator());
}
reader = new DatabaseImpl.ComparatorReader(duplicateComparatorBytes,
"Duplicate",
envImpl.getClassLoader());
if (reader.isClass()) {
replicaConfig.setDuplicateComparator(reader.getComparatorClass());
} else {
replicaConfig.setDuplicateComparator(reader.getComparator());
}
replicaConfig.setTriggers(TriggerUtils.
unmarshallTriggers(null, triggerBytes,
envImpl.getClassLoader()));
return replicaConfig;
}