한국축구 파이팅!!
여러분 모두들 열심히 응원하고 계시죠!!
..음 축구는 축구고 일은 일인지라 프로그램 진행중 막히는 부분이 있어서
또이렇게 염치 불구하고 질문을 올립니다..
..
프로그램을 하나 만들어서 사용하고자 하는데 실행파일을 CLIENT측 PC에 전부 카피해서 심어주고 프로그램을 실행시키고 있습니다..
프로그램의 작업성격은 조회 및 입력작업이고 DB는 SQL DB입니다.
DB접속형태는 ODBC와 BDE을 사용하고 있구요,
문제는 한두명이 작업시에는 문제가 없을 것 같은데...만약 여러명이 동시에
입력작업을 할때는 DB에 데이타 INSERT시 문제가 생기지 않을까 하는데
여기에 대한 해결책이 있을까요!!
가령 각각의 클라이언트에서 입력작업요청이 들어온다고 했을때 지금 하나의
작업이 DB에 입력되고 있다면 다음 클라이언트의 입력요청작업을 대기시킨다던지 ,순차적으로 작업이 이루어 지도록 한다던지,등등
여러고수님들의 고견 부탁드립니다!!
좋은 하루되시고 ,한국축구 파이팅!!
입력 작업 이 문제가 되는 것 같습니다. 어떤 DBMS 도 다중 사용자 용으로 제작 된 것이기 때문에 문제는 없습니다만.. 가능하도록 프로그램을 짜야 겠지요.
그냥 바로 DB에 저장을 하는 식으로 코딩을 하면 테이블 락이 걸릴 수 있습니다. 이른바 다운 되는 듯한 현상을 겪게 됩니다.
결론적으로 트랜잭션 처리를 하면 됩니다. 한 사람의 입력 작업을 하나의 단위로 처리하는 것이지요. 트랜잭션 단위로 데이터를 DBMS에 보내면 지가 알아서 큐에 저장하고 순차적으로 처리 하므로 다중 사용자 환경에 전혀 문제가 없습니다. 처리해야 될 상황은 키 중복 입니다. 여러명이 같은 데이터를 입력할 경우 처음 데이터를 입력한 사람 말고는 입력할 수가 없겠지요? 이 경우는 오라클이 BDE를 거쳐 에러 메세지를 뿌립니다. 적절한 예외처리 코딩으로 해결할 수 있을 것 같습니다.
저의 경우는 쿼리 컴포넌트를 사용하는 2 Tier DB 프로그램을 작성하는데 Cached Updates 와 RequestLive 속성을 True로 넣고 저장 버튼 클릭시.. 캐쉬에 모여진 수정, 입력 데이터를 한번에 DB내 보냅니다. (Applyupdates) 이렇게 하면 다중 사용자 환경에도 전혀 문제가 없네요. 10 명 까지는 테스트 해봤습니다.^^
만약 입력하는 데이터가 무조건 입력이 되어야 하는 상황, 게시판 같은 경우는 키에 게시판 번호를 설정하고 오라클의 경우 Sequence 기능을 사용하면 전혀 문제가 없습니다. 그럼 이만 ^^