public <Z, D extends Database<Z>, T, R, E extends Exception> SortedMap<D, R> invoke(ProxyFactory<Z, D, T, E> map, Invoker<Z, D, T, R, E> invoker) throws E
{
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);