2012-10-18 4 views
0

나는 플랫 파일 데이터베이스 (XML 파일)를 가지고있다. 이 데이터베이스를 읽고 편집하는 클라이언트가 있습니다. 많은 클라이언트가 연결하는 하나의 디렉토리에 xml 파일이 있습니다. 한 클라이언트가 편집을 수행하면 모든 클라이언트에서 업데이트해야합니다.파일의 동시 읽기/편집

내가 데이터베이스를 사용할 수 없습니다이 플랫 파일 구조를 사용합니다

클라이언트가 XP 및 .NET

을 실행하는 (즉, 나는 모든 시간을 실행하는 관리 서버 응용 프로그램을 사용할 수 없습니다) 이 문제에 대한 현대적인 해결책은 무엇입니까? 한동안 XP 또는 .NET 코딩을 한 적이 없으며 단순히 파일 잠금을 사용하는 것이 쉬울까요? XP에서 별도의 읽기/쓰기 잠금을 사용합니까?

편집

클라이언트는 별도의 시스템에 모두 데이터베이스는 네트워크 공유에 저장됩니다.

답변

0

System.Threading.Mutex을 사용하여이 파일에 대한 읽기/편집 액세스를 처리 할 수 ​​있습니다. 이 플랫 파일을 조작하거나 읽고있는 클래스에서는

yourMutex.WaitOne(); 
ReaderOrWrite(); 
yourMutex.ReleaseMutex(); 

가 더 뮤텍스가 생성되어 있지 않은 경우에 그것은 또한 상황을 처리하는 좋은 예제 코드 here을 찾을 수 있습니다 작성해야합니다.

뮤텍스는 중요한 영역에 대한 다중 액세스 (예 : xml 파일)를 처리하고 중요한 섹션의 동시 실행을 방지하는 솔루션을 제공하는 일종의 세마포어입니다.

+0

사과드립니다. 정보가 충분하지 않다고 생각합니다. OP 편집을 참조하십시오. 나는 뮤텍스가 하나의 머신에서만 지속되기 때문에 여기서 일한다고 생각하지 않는다. (그게 내 인상 어쨌든) – Cheetah

+0

내 마음을 십자가 그래서 하나의 쉬운 방법은 XML 파일을 호스팅하는 컴퓨터에서 웹 서비스를 작성 하고이 서비스는 뮤텍스 또는 편리한 방법을 사용하여 파일에 대한 액세스를 처리하자 너를 위해서. – manman

+0

그럴 수는 없습니다. 연중 무휴로 운영되는 컴퓨터에 액세스 할 수 없습니다. – Cheetah

관련 문제