Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

동기화 오류 및 시간 초과 처리 - .NET SDK

이 페이지의 내용

  • 클라이언트 로그 수준 설정
  • 로깅 기능 사용자 지정
  • 시간 초과 처리

Device Sync 는 SessionExceptions 를 통해 오류를 나타냅니다. 표준 예외 속성 외에도 오류 유형에 대한 정보가 포함된 ErrorCode 에 액세스 할 수 있으며 이를 통해 강력한 유형의 처리 로직을 가질 수 있습니다.

config.OnSessionError = (session, sessionException) =>
{
switch (sessionException.ErrorCode)
{
// See https://www.mongodb.com/ko-kr/docs/realm-sdks/dotnet/latest/reference/Realms.Sync.Exceptions.ErrorCode.html
// for a list of all error codes
case ErrorCode.BadQuery:
break;
}
};

참고

추가 예외 정보

보안상의 이유로 App Services 는 예외에 대한 최소한의 정보만 보낼 수 있지만, 서버 측 로그에는 더 많은 세부 정보가 포함됩니다. 이러한 경우 헬프링크 속성 에는 연결된 로그 항목에 대한 링크가 포함되어 있습니다.

일반적인 Device Sync 오류 목록과 이를 처리하는 Device Sync 방법은 Atlas App Services 문서에서 동기화 오류 를 참조하세요.

클라이언트 로거가 어떤 메시지를 기록할지 제어하려면 LogLevel을 사용하세요.

Logger.LogLevel = LogLevel.Debug;

애플리케이션을 개발하는 동안 발생하는 오류를 진단하고 문제를 해결하려면 로그 수준을 debug 또는 trace 로 설정합니다. 프로덕션 배포의 경우 성능을 향상시키려면 로그 수준을 낮추세요.

사용자 지정 로거 함수를 설정하려면 Logger.Default 를 사용자 지정 로거 함수로 설정합니다.

using Realms.Logging;
Logger.LogLevel = LogLevel.All;
// customize the logging function:
Logger.Default = Logger.Function(message =>
{
// Do something with the message
});

동기화 세션 중에 이벤트가 예외를 발생시키지 않고 시간 초과될 수 있습니다. CancelAsyncOperationsOnNonFatalErrorstrue 으로 설정하여 이러한 이벤트가 예외를 발생시킨 다음 처리할 수 있도록 할 수 있습니다. 다음 코드는 시간 초과 시 예외를 발생시키는 CancelAsyncOperationsOnNonFatalErrors 속성 및 3 이벤트를 설정하는 예를 보여줍니다.

var config = new FlexibleSyncConfiguration(app.CurrentUser!)
{
CancelAsyncOperationsOnNonFatalErrors = true,
};
// These operations will throw an exception
// on timeout or other transient sync session errors.
var realm = await Realm.GetInstanceAsync(config);
var session = realm.SyncSession;
await session.WaitForUploadAsync();
await session.WaitForDownloadAsync();

돌아가기

Flexible Sync 구독 관리