2010-06-24 2 views
0

.NET 응용 프로그램에서 Windows 용 SQLite를 사용하고 있습니다. .NET 응용 프로그램은 Open Source System.Data.SQLite 라이브러리를 사용합니다..NET 응용 프로그램에서 Windows의 SQLite 연결을 관리하는 가장 좋은 방법은 무엇입니까?

내 응용 프로그램에는 동일한 데이터베이스에 액세스하는 많은 스레드가 있습니다. 그것을 가장하는 것입니다 (? 내가 가질 수있는 최대 수 무엇)

  1. 만들고 을 필요에 따라 연결을 파괴
  2. 오래 살았 연결을 생성하고 다른 스레드 에서 사용하는 것은 (이 안전합니까?)
  3. 다른 것?

처음에는 선택 항목 # 2로 갔지만 다른 스레드에서 연결에 액세스 할 때 트랜잭션과 관련하여 임의/간헐적 인 오류가 발생했습니다. 나는 선택 1로 옮긴 후 오류가 사라졌다.

+0

참고로 링크가 깨진 것 같습니다. –

+0

Thanks Tom - link fixed. –

답변

3

SQLite FAQ에 따르면 SQLite의 최신 버전에서는 여러 스레드가 동일한 연결을 사용할 수 있지만 한 번에 하나의 트랜잭션 만 사용할 수 있습니다.

한 번에 활성화 될 수있는 연결 수에 대한 기본 제한이 없습니다.

연결을 소유하는 "데이터베이스 스레드"를 설정하고 다른 스레드를 대신하여 작업을 수행하는 것이 좋습니다. 이것은 .NET 4 SQLite 프로세스에서 수행하고있는 작업이며 매우 잘 작동합니다.

P. 관심이 있으시면, 최근에 using SQLite via Entity Framework 4에 대한 블로그 글을 작성했습니다.

관련 문제