|
하안인 님이 쓰신 글 :
: c/s 프로그램에서 여러사용자가 동일한 레코드에 접근하여 데이타를
: 수정할 경우의 처리방안입니다.
:
: 테스트 프로그램을 짜서 테스트한 결과 한 사람이 저장한뒤 이전 데이타를
: 가지고 수정한 후 저장하려고 하면 에러가 발생됩니다.
:
: 그렇다면 다른 사용자가 수정하려고 할 당시에 수정할수 없다는
: 메시지를 뿌려 주고 싶은데 어떻게 해야 하나요.
:
: trnasaction이나 database에서 도움말을 찾아 봐도 아직 찾지 못해
: 염치 불구 하고 메일을 올립니다.
:
: 이에 관한 자료(책)나 처리방안을 알고 계시면 알려주시면 감사하겠습니다.
: 몇일째 아직 해결방안을 못 찾아서요.
:
: 그럼 비오는데 몸 조심하십시오.
안녕하세요 만해입니다.
데이타 공유에서 발생하는 데이타 일관성 문제 같은데요
제가 아는 방법은
DataBase에서 자료를 받아 와서
하나의 카피본을 만들고요
원본을 A , 카피본을 B라고 했을때
사용자가 A에서 자료에 대한 수정을 하는 명령이 입력 되면
프로그램에서 수정하고자 하는 원래의 데이타 즉 B의 데이타와
DataBase에서 지금 보관하고 있는 데이타를 비교
그 데이타가 동일하면 수정하고자 하는 작업을 수행 하고요
그렇지 않다면
누군가에 의해 그 자료가 수정되었다는 메세지와 새로운 값을 가져오면 되겠죠
아니면 뮤텍스를 이용해서
한 프로세서가 DataBase의 Table을 차지 할때마다
Lock을 걸고
Lock이 걸려 있으면 다른 프로세서에서는 그 Table에 접근 못하게 막고
Lock이 풀려야지만 다른 프로세서에서 접근 가능 하도록 하는 방법도 있습니다 .
이걸 경우에는 DeadLock을 조심 하시면 됩니다.
뮤텍스는 프로그래밍 언어론이나 운영체재에 나옵니다.
참고 하세요
|