public DnsMultiServerCluster(final ClusterId clusterId, final ClusterSettings settings, final ClusterableServerFactory serverFactory, final DnsSrvRecordMonitorFactory dnsSrvRecordMonitorFactory) { super(clusterId, settings, serverFactory); notNull("srvHost", settings.getSrvHost()); dnsSrvRecordMonitor = dnsSrvRecordMonitorFactory.create(settings.getSrvHost(), new DnsSrvRecordInitializer() { private volatile boolean initialized; @Override public void initialize(final Collection<ServerAddress> hosts) { srvResolutionException = null; if (!initialized) { initialized = true; DnsMultiServerCluster.this.initialize(hosts); } else { DnsMultiServerCluster.this.onChange(hosts); } } @Override public void initialize(final MongoException initializationException) { if (!initialized) { srvResolutionException = initializationException; DnsMultiServerCluster.this.initialize(Collections.<ServerAddress>emptyList()); } } @Override public ClusterType getClusterType() { return DnsMultiServerCluster.this.getClusterType(); } }); dnsSrvRecordMonitor.start(); }
public MultiServerCluster(final ClusterId clusterId, final ClusterSettings settings, final ClusterableServerFactory serverFactory) { super(clusterId, settings, serverFactory); isTrue("srvHost is null", settings.getSrvHost() == null); initialize(settings.getHosts()); } }
return new SingleServerCluster(clusterId, clusterSettings, serverFactory); } else if (clusterSettings.getMode() == ClusterConnectionMode.MULTIPLE) { if (clusterSettings.getSrvHost() == null) { return new MultiServerCluster(clusterId, clusterSettings, serverFactory); } else {
public DnsMultiServerCluster(final ClusterId clusterId, final ClusterSettings settings, final ClusterableServerFactory serverFactory, final DnsSrvRecordMonitorFactory dnsSrvRecordMonitorFactory) { super(clusterId, settings, serverFactory); notNull("srvHost", settings.getSrvHost()); dnsSrvRecordMonitor = dnsSrvRecordMonitorFactory.create(settings.getSrvHost(), new DnsSrvRecordInitializer() { private volatile boolean initialized; @Override public void initialize(final Collection<ServerAddress> hosts) { srvResolutionException = null; if (!initialized) { initialized = true; DnsMultiServerCluster.this.initialize(hosts); } else { DnsMultiServerCluster.this.onChange(hosts); } } @Override public void initialize(final MongoException initializationException) { if (!initialized) { srvResolutionException = initializationException; DnsMultiServerCluster.this.initialize(Collections.<ServerAddress>emptyList()); } } @Override public ClusterType getClusterType() { return DnsMultiServerCluster.this.getClusterType(); } }); dnsSrvRecordMonitor.start(); }
public MultiServerCluster(final ClusterId clusterId, final ClusterSettings settings, final ClusterableServerFactory serverFactory) { super(clusterId, settings, serverFactory); isTrue("srvHost is null", settings.getSrvHost() == null); initialize(settings.getHosts()); } }
return new SingleServerCluster(clusterId, clusterSettings, serverFactory); } else if (clusterSettings.getMode() == ClusterConnectionMode.MULTIPLE) { if (clusterSettings.getSrvHost() == null) { return new MultiServerCluster(clusterId, clusterSettings, serverFactory); } else {