2010-04-17 7 views
0

현재 클라이언트가 서버로 데이터를 보내고 서버가 데이터를 SQLite 데이터베이스 파일에 저장하는 클라이언트/서버 설치가 있습니다. 이 작업을 수행하려면 약 30 개의 클라이언트 (각 클라이언트가 5 - 30 초 사이에 데이터를 보내는 클라이언트)를 실행할 때 Windows 7에서 올바르게 작동하는 트랜잭션을 사용하고 있습니다.SQLite 트랜잭션 사용 I/O 오류

Windows XP에서 동일한 소프트웨어를 사용하는 경우 내가 윈도우 지연 실패 쓴 오류를 얻을 시작 20 클라이언트를 실행할 때까지, 나는 아무런 문제없이/데이터 세트를 여러 번 얻을 수 있습니다 :이 예외를 발생 을 alt text http://files.me.com/james.ingham/on1qb1

서버에서 : alt text http://files.me.com/james.ingham/hjoodv

나는 이것이 XP 또는 컴퓨터의 하드웨어 문제와 관련이 있다고 가정하고 XP를 실행 중입니다.

누구나이를 피할 수있는 조언이 있습니까? 아니면 그냥 예외를 잡아서 데이터 저장을 다시 시도해야합니까?

+0

이 정보가 도움이됩니까? http://support.microsoft.com/kb/330174 –

+0

죄송합니다. 실행하고 싶은 컴퓨터에서 변경할 수있는 권한이 없습니다. XP 또는 하드웨어인지 확인하기 위해 XP가 설치된 VM에서 코드를 테스트 할 것입니다. –

답변

0

내 질문에 답변 해 드려 죄송합니다. 하드웨어 문제였습니다! 다른 누군가를 넣으면 건너편에 온다!

1

매우 유감 스럽지만 SQLite 자체는 높은 동시 환경에서 not recommended입니다. SQLite가 기본적으로 fooen의 대체품이기 때문에 최대 20 명의 클라이언트가 5 ~ 30 초간 지속되는 트랜잭션을 가지면 (기본적으로 SQLite에서 5 초) 시간 초과를 잡을 것입니다.

+0

답변을 주셔서 감사합니다. 그러나이 테스트는 특정 요구 사항을 처리하는 프로젝트의 일부입니다. 필자는이 문제에 대해 처음에 언급했지만 스펙에는 설치가 필요하지 않은 db를 사용해야한다고 나와 있습니다. 또한 트랜잭션이 5-30 초 동안 지속되지 않으며 클라이언트 당 5-30 초마다 데이터가 전송됩니다. 트랜잭션은 일반적으로 매우 빠르게 처리되지만 특정 머신에서 이것을 느리게하는 하드웨어 (제 생각에는)입니다 ... –

+0

@ james.ingham : 그러면 다시 한번 미안합니다. 그건 그렇고, 왜 당신이 MS SQL 콤팩트. NET 개발 (http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx)의 컨텍스트에서 사용하지 않은 궁금하다 – newtover

+0

나는 시도하지 않았다 그것은 그것을 설치해야 할 것 같은데? 데모 머신에 대한 관리자 권한이 없기 때문에 SQLite는 포함해야하는 dll 만 이상적이었습니다. –