
MongoDB Driver의 TopologyDescription 클래스의 hasWritableServer 메소드는 서버가 writable한지 여부를 boolean 값으로 반환합니다. 이 메소드는 서버의 writability를 확인하는 데 사용됩니다.
이 메소드는 서버의 writability를 확인하기 위해 여러 조건을 검사합니다. 서버가 writable한 상태일 때, 이 메소드는 true를 반환합니다. 그러나 서버가 writable하지 않은 상태일 때, 이 메소드는 false를 반환합니다.
서버가 writable한 상태는 다음과 같은 경우에 해당합니다.
- 서버가 primary server일 때
- 서버가 secondary server일 때, ancak replica set의 primary server가 down되었을 때
- 서버가 arbiter server일 때
서버가 writable하지 않은 상태는 다음과 같은 경우에 해당합니다.
- 서버가 secondary server일 때, replica set의 primary server가 up되어 있을 때
- 서버가 arbiter server일 때
이 메소드를 사용하는 경우에 발생할 수 있는 에러나 예외는 다음과 같습니다.
- ServerNotActiveException: 서버가 활성화되지 않은 경우
- ServerSelectionTimeoutException: 서버 선택 시간이 초과된 경우
- MongoException: MongoDB 서버와의 연결이 끊어졌을 때
이 메소드를 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
java
TopologyDescription topology = mongoClient.getTopology();
if (topology.hasWritableServer()) {
System.out.println("서버가 writable합니다.");
} else {
System.out.println("서버가 writable하지 않습니다.");
}
이 예제에서는 mongoClient의 getTopology() 메소드를 사용하여 TopologyDescription 객체를 가져옵니다. 그런 다음, hasWritableServer() 메소드를 사용하여 서버의 writability를 확인합니다. 만약 서버가 writable한 상태라면, true를 반환하고 writable하지 않은 상태라면, false를 반환합니다.
2025-06-21 04:31