22
33package com .mongodb ;
44
5- import java .io .*;
6- import java .net .*;
7- import java .util .*;
8- import java .util .logging .*;
5+ import java .net .UnknownHostException ;
6+ import java .util .ArrayList ;
7+ import java .util .Collections ;
8+ import java .util .HashSet ;
9+ import java .util .Iterator ;
10+ import java .util .LinkedList ;
11+ import java .util .List ;
12+ import java .util .Random ;
13+ import java .util .Set ;
14+ import java .util .logging .Level ;
15+ import java .util .logging .Logger ;
916
1017/**
1118 * keeps replica set status
@@ -178,6 +185,18 @@ synchronized void update(Set<Node> seenNodes){
178185 maxBsonObjectSize = Bytes .MAX_OBJECT_SIZE ;
179186 }
180187
188+ if (res .containsField ("setName" )) {
189+ String setName = res .get ( "setName" ).toString ();
190+ if ( _setName == null ){
191+ _setName = setName ;
192+ _logger = Logger .getLogger ( _rootLogger .getName () + "." + setName );
193+ }
194+ else if ( !_setName .equals ( setName ) ){
195+ _logger .log ( Level .SEVERE , "mis match set name old: " + _setName + " new: " + setName );
196+ return ;
197+ }
198+ }
199+
181200 }
182201 catch ( MongoException e ){
183202 Throwable root = e ;
@@ -193,44 +212,6 @@ synchronized void update(Set<Node> seenNodes){
193212
194213 if ( ! _isMaster )
195214 return ;
196-
197- try {
198- DB db = _mongo .getDB ("local" );
199- _port .checkAuth (db );
200- DBObject config = _port .findOne ( db , "system.replset" , new BasicDBObject () );
201- if ( config == null ){
202- // probably a replica pair
203- // TODO: add this in when pairs are really gone
204- //_logger.log( Level.SEVERE , "no replset config!" );
205- } else if (config .get ("$err" ) != null && UNAUTHENTICATED_ERROR_CODE == (Integer )config .get ("code" )) {
206- _logger .log ( Level .WARNING , "Replica Set updater cannot get results, call authenticate on 'local' or 'admin' db" );
207- } else {
208-
209- String setName = config .get ( "_id" ).toString ();
210- if ( _setName == null ){
211- _setName = setName ;
212- _logger = Logger .getLogger ( _rootLogger .getName () + "." + setName );
213- }
214- else if ( !_setName .equals ( setName ) ){
215- _logger .log ( Level .SEVERE , "mis match set name old: " + _setName + " new: " + setName );
216- return ;
217- }
218-
219- // TODO: look at members
220- }
221- } catch ( MongoException e ){
222- if ( _setName != null ){
223- // this probably means the master is busy, so going to ignore
224- }
225- else {
226- _logger .log ( Level .SEVERE , "can't get initial config from node: " + _addr , e );
227- }
228- }
229- catch ( Exception e ){
230- _logger .log ( Level .SEVERE , "unexpected error getting config from node: " + _addr , e );
231- }
232-
233-
234215 }
235216
236217 public boolean master (){
0 commit comments