[MONGODB] 2.0 드라이버 MongoServer.State 동등한
MONGODB2.0 드라이버 MongoServer.State 동등한
기존의 API (1.X)에서는 서버가 MongoClient.GetServer에서 반환 된 MongoServer 인스턴스에 주 속성을 사용하여 연결 여부되었는지 여부를 알 수 있습니다 :
public bool IsConnceted
{
get
{
return _client.GetServer().State == MongoServerState.Connected;
}
}
그러나 GetServer는 새로운 API (2.0)의 일부가 아닙니다. 그 어떻게 달성 할 수 있습니까?
해결법
-
==============================
1.그렇게 할 수있는 더 적절한 방법은 서버가 아니라 클러스터 (다중 서버를 포함 할 수 있음)하고 MongoClient 인스턴스에서 직접 액세스 할 수 있습니다를 확인하여되지 않습니다 :
그렇게 할 수있는 더 적절한 방법은 서버가 아니라 클러스터 (다중 서버를 포함 할 수 있음)하고 MongoClient 인스턴스에서 직접 액세스 할 수 있습니다를 확인하여되지 않습니다 :
public bool IsClusterConnceted { get { return _client.Cluster.Description.State == ClusterState.Connected; } }
특정 서버를 확인하려는 경우 그 수도 있습니다 :
public bool IsServerConnceted { get { return _client.Cluster.Description.Servers.Single().State == ServerState.Connected; } }
그것은 현재하지 않을 수 있도록 값이 마지막 작업으로 업데이트됩니다 있음을 유의하십시오. 실제로 할 수있는 유일한 방법은 확실히 올바른 연결 동작의 일종을 실행하기 위해이되어있어합니다.
-
==============================
2.i3arnon에서 언급 한 바와 같이, 하나는 상태가 제대로 업데이트되기 전에 데이터베이스에 작업의 일종을 수행 할 수 있습니다.
i3arnon에서 언급 한 바와 같이, 하나는 상태가 제대로 업데이트되기 전에 데이터베이스에 작업의 일종을 수행 할 수 있습니다.
데이터베이스를 열거하는 행위는 상태를 업데이트하기에 충분하다.
이것은 나를 위해 일한 :
var databases = _client.ListDatabasesAsync().Result; databases.MoveNextAsync(); // Force MongoDB to connect to the database. if (_client.Cluster.Description.State == ClusterState.Connected) { // Database is connected. }
from https://stackoverflow.com/questions/29459990/mongoserver-state-equivalent-in-the-2-0-driver by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] oplog.rs에서 TS 필드에 인덱스가 업데이트되지 않습니다 (0) | 2019.12.26 |
---|---|
[MONGODB] Google 클라우드 MongoDB를 : 외부 IP는 연결되지 (0) | 2019.12.26 |
[MONGODB] 사용자 정의 직렬화 (0) | 2019.12.26 |
[MONGODB] java.lang.NoClassDefFoundError가는 MongoDB의 드라이버를 사용하는 경우 (0) | 2019.12.26 |
[MONGODB] 키 ID와 같은 MongoDB를 합산 기 (0) | 2019.12.26 |