{
DatabaseCluster<Z, D> cluster = map.getRoot().getDatabaseCluster();
ExceptionFactory<E> exceptionFactory = map.getExceptionFactory();
Balancer<Z, D> balancer = cluster.getBalancer();
Dialect dialect = cluster.getDialect();
StateManager stateManager = cluster.getStateManager();
while (true)
{
D database = this.selector.selectDatabase(balancer);