데이터베이스 오류
SQLite 오류가 발생하면 SqliteException이 throw됩니다. 이 메시지는 SQLite에서 제공합니다. SqliteErrorCode
및 SqliteExtendedErrorCode
속성에는 오류의 SQLite 결과 코드가 포함되어 있습니다.
Microsoft.Data.Sqlite가 네이티브 SQLite 라이브러리와 상호 작용할 때마다 오류가 발생할 수 있습니다. 다음 목록에서는 오류가 발생할 수 있는 일반적인 시나리오를 보여줍니다.
- 연결을 여는 중입니다.
- 트랜잭션을 시작하는 중입니다.
- 명령 실행.
- NextResult을 호출하여.
앱에서 이러한 오류를 처리하는 방법을 신중하게 고려합니다.
잠금, 다시 시도 및 시간 제한
SQLite는 테이블 및 데이터베이스 파일을 잠글 때 적극적입니다. 앱에서 동시 데이터베이스 액세스를 활성화하면 사용 중이거나 잠금 오류가 발생할 수 있습니다. 미리 쓰기 로깅을 사용하면 많은 오류를 완화할 수 있습니다.
Microsoft.Data.Sqlite에서 사용 중이거나 잠금 오류가 발생할 때마다 성공하거나 명령 시간 제한에 도달할 때까지 자동으로 다시 시도합니다.
CommandTimeout을 설정하여 명령의 시간 제한을 늘릴 수 있습니다. 기본 제한 시간은 30초입니다. 0
값은 시간 제한이 없음을 의미합니다.
// Retry for 60 seconds while locked
command.CommandTimeout = 60;
Microsoft.Data.Sqlite는 경우에 따라 암시적 명령 개체를 만들어야 합니다. 예를 들면 BeginTransaction 중에 만들어야 합니다. 이러한 명령에 대한 시간 제한을 설정하려면 DefaultTimeout을 사용합니다.
// Set the default timeout of all commands on this connection
connection.DefaultTimeout = 60;
참고 항목
.NET