Q&A

  • 고수님의 도움이 절대 필요합니다!!!!!!!!!!(어찌 하오리까?)
도저히 이해가 안가는 부분이 있어 이렇게 게시판에 올립니다.

델파이4.0으로 만든 프로그램이고 DB는 MS-SQL7.0을 사용중입니다.

기존에 다른분이 만든 프로그램에 추가로 어느 한 DB에 칼럼을 하나

추가하여 데이타도 저장하고 그 데이타로 보고서도 뽑는 프로그램 입니다.

현재 7대의 pc에서 각각 데이타를 입력하면 실시간으로

MS-SQL이 깔려있는 서버에 데이타가 저장되는 시스템입니다.

그런데 문제는 제가 수정한 프로그램을 설치하니까 PC가 계속 다운(?)이 되는

겁니다. 한가지 알아낸 사실은 프로그램을 설치한후 데이타를 입력하면

일정한 데이타 입력후 PC가 다운(?)되고 프로그램을 다시 실행시키거나 PC를 재부팅하고

프로그램 실행하면 다시 일정 데이타 입력후 PC가 다운(?)되는 현상이 반복됩니다.

어떤 특정 PC만 그런건 아닙니다.

한 PC가 다운된후 빨리 그PC를 재부팅안하면 연쇄적으로 나머지 PC도 다운됩니다.

(여기서 다운은 모래시계 표시에 밑에 SQL이라고 나오는것입니다.)

이와 같은 현상이 계속 반복됩니다.

참고로 이 데이타베이스는 하루에 약 1500건이 입력됩니다.

프로그램 수정전에는 이러한 현상이 없었는데 수정후 이러니 미치겠습니다.

이게 프로그램 문제인지 서버쪽의 문제인지 아니면 제3의 문제인지

도대체 전 감을 못잡겠습니다.

회사에서 테트스하면 아무 이상 없는데 사용자 싸이트에 설치하면 이러니

정말 죽겠습니다.

어느 고마우신 분이 트랜젝션 또는 롤백,커미트 부분을 한번 보라고 하셨는데

델파이 소스 코드에는 그런 설정이 없거든요?

그런데 서버에서 엔터프라이즈 메니저를 실행시키면 MANAGEMENT 아래 Current Activity

아래 Process Info와 Lock/Process ID부분(이 부분은 사용자 싸이트의 서버에 훨씬 많은 뭔가가 있습니다.) 또 Lock/Object부분이 회사에 있는 서버와 사용자 싸이트에 있는 부분이 다릅니다. 특히 Lock/Object 부분이 회사에 있는 서버에는 칼럼을 추가한 데이타베이스 이름이 없는데 사용자 싸이트에는 그 데이타베이스가

추가로 존재합니다. 혹시 데이타베이스를 수정하면 위와 같은 현상이 나도록 잠금장치를 해놓은 건가요?(추측입니다.) 만약 그렇다면 어떻게 해제를 하는 것인가요?

확실한게 없어서 이렇게 고수님들의 도움을 요청합니다.

부디 사부님들 알려주시기 바랍니다.

Please.......

3  COMMENTS
  • Profile
    hugehead 2000.08.09 22:33
    Lock 관련되서 에러가 발생한다고 생각하거나, 또는 여러대의 PC가 동시에 작업할 때 문제가 되는 것 같다면 DB Lock 관리에 문제가 있거나 Contention이 생기는 경우입니다.



    테스트 해야 할 것:

    1) 사용자 사이트에서 하나의 PC만 가지고 계속 작업을 했을 때 "다운" 여부를 확인 해야 합니다.

    2) 개발 서버에서 여러 대의 PC를 놓고 계속 사용 해 봐야 합니다.





    그리고, 무슨 방식으로 프로그램을 짜셨는지요?



    혹시 프로그램이 복잡한 Database작업을 합니까? 다시 말해서, 하나의 작업 (루틴)에서 여러개의 테이블 및 쿼리를 실행하시는지요. 그럴 경우는 Transaction 처리가 필수입니다.

    그냥 BDE를 이용해서 작업했다면,

    프로그램의 TDatabase 컴포넌트에서 Transaction 처리 (commit,rollback 등)

    가 가능합니다. TQuery나 TTable을 열기 전에 TDatabase 컴포넌트에서 StartTransaction 메소드를 호출하고, 그후 진행여부에 따라 Commit 또는 Rollback을 이용한 후 EndTransaction을 콜하시면 프로그램이 안정적으로 작동하지 않을까 생각되는 군요.



    한영수 wrote:

    > 도저히 이해가 안가는 부분이 있어 이렇게 게시판에 올립니다.

    > 델파이4.0으로 만든 프로그램이고 DB는 MS-SQL7.0을 사용중입니다.

    > 기존에 다른분이 만든 프로그램에 추가로 어느 한 DB에 칼럼을 하나

    > 추가하여 데이타도 저장하고 그 데이타로 보고서도 뽑는 프로그램 입니다.

    > 현재 7대의 pc에서 각각 데이타를 입력하면 실시간으로

    > MS-SQL이 깔려있는 서버에 데이타가 저장되는 시스템입니다.

    > 그런데 문제는 제가 수정한 프로그램을 설치하니까 PC가 계속 다운(?)이 되는

    > 겁니다. 한가지 알아낸 사실은 프로그램을 설치한후 데이타를 입력하면

    > 일정한 데이타 입력후 PC가 다운(?)되고 프로그램을 다시 실행시키거나 PC를 재부팅하고

    > 프로그램 실행하면 다시 일정 데이타 입력후 PC가 다운(?)되는 현상이 반복됩니다.

    > 어떤 특정 PC만 그런건 아닙니다.

    > 한 PC가 다운된후 빨리 그PC를 재부팅안하면 연쇄적으로 나머지 PC도 다운됩니다.

    > (여기서 다운은 모래시계 표시에 밑에 SQL이라고 나오는것입니다.)

    > 이와 같은 현상이 계속 반복됩니다.

    > 참고로 이 데이타베이스는 하루에 약 1500건이 입력됩니다.

    > 프로그램 수정전에는 이러한 현상이 없었는데 수정후 이러니 미치겠습니다.

    > 이게 프로그램 문제인지 서버쪽의 문제인지 아니면 제3의 문제인지

    > 도대체 전 감을 못잡겠습니다.

    > 회사에서 테트스하면 아무 이상 없는데 사용자 싸이트에 설치하면 이러니

    > 정말 죽겠습니다.

    > 어느 고마우신 분이 트랜젝션 또는 롤백,커미트 부분을 한번 보라고 하셨는데

    > 델파이 소스 코드에는 그런 설정이 없거든요?

    > 그런데 서버에서 엔터프라이즈 메니저를 실행시키면 MANAGEMENT 아래 Current Activity

    > 아래 Process Info와 Lock/Process ID부분(이 부분은 사용자 싸이트의 서버에 훨씬 많은 뭔가가 있습니다.) 또 Lock/Object부분이 회사에 있는 서버와 사용자 싸이트에 있는 부분이 다릅니다. 특히 Lock/Object 부분이 회사에 있는 서버에는 칼럼을 추가한 데이타베이스 이름이 없는데 사용자 싸이트에는 그 데이타베이스가

    > 추가로 존재합니다. 혹시 데이타베이스를 수정하면 위와 같은 현상이 나도록 잠금장치를 해놓은 건가요?(추측입니다.) 만약 그렇다면 어떻게 해제를 하는 것인가요?

    > 확실한게 없어서 이렇게 고수님들의 도움을 요청합니다.

    > 부디 사부님들 알려주시기 바랍니다.

    > Please.......

  • Profile
    한영수 2000.08.10 03:08
    hugehead wrote:

    정말 고맙습니다. 답변해주셔서. 근데 한가지만 더 여쭙겠습니다.

    테스트 해보라는 걸 테스트 해봤는데

    1)사용자 사이트에서 하나의 PC만 가지고 계속 작업을 했을 때도 "다운" 됩니다.

    2)개발 서버에서 여러 대의 PC를 놓고 계속 사용해봤는데 이상이 없습니다.

    그리고 그와 같은 현상이 발생치 않은 기존 프로그램의 소스코드에 Commit나 Rollback문이 없는데 새로 추가를 해야하나요? 바쁘실텐데 이렇게 불편을 드려 죄송하며 아시는 범

    위내라면 답변 부탁드립니다.



    > Lock 관련되서 에러가 발생한다고 생각하거나, 또는 여러대의 PC가 동시에 작업할 때 문제가 되는 것 같다면 DB Lock 관리에 문제가 있거나 Contention이 생기는 경우입니다.

    >

    > 테스트 해야 할 것:

    > 1) 사용자 사이트에서 하나의 PC만 가지고 계속 작업을 했을 때 "다운" 여부를 확인 해야 합니다.

    > 2) 개발 서버에서 여러 대의 PC를 놓고 계속 사용 해 봐야 합니다.

    >

    >

    > 그리고, 무슨 방식으로 프로그램을 짜셨는지요?

    >

    > 혹시 프로그램이 복잡한 Database작업을 합니까? 다시 말해서, 하나의 작업 (루틴)에서 여러개의 테이블 및 쿼리를 실행하시는지요. 그럴 경우는 Transaction 처리가 필수입니다.

    > 그냥 BDE를 이용해서 작업했다면,

    > 프로그램의 TDatabase 컴포넌트에서 Transaction 처리 (commit,rollback 등)

    > 가 가능합니다. TQuery나 TTable을 열기 전에 TDatabase 컴포넌트에서 StartTransaction 메소드를 호출하고, 그후 진행여부에 따라 Commit 또는 Rollback을 이용한 후 EndTransaction을 콜하시면 프로그램이 안정적으로 작동하지 않을까 생각되는 군요.

    >

    > 한영수 wrote:

    > > 도저히 이해가 안가는 부분이 있어 이렇게 게시판에 올립니다.

    > > 델파이4.0으로 만든 프로그램이고 DB는 MS-SQL7.0을 사용중입니다.

    > > 기존에 다른분이 만든 프로그램에 추가로 어느 한 DB에 칼럼을 하나

    > > 추가하여 데이타도 저장하고 그 데이타로 보고서도 뽑는 프로그램 입니다.

    > > 현재 7대의 pc에서 각각 데이타를 입력하면 실시간으로

    > > MS-SQL이 깔려있는 서버에 데이타가 저장되는 시스템입니다.

    > > 그런데 문제는 제가 수정한 프로그램을 설치하니까 PC가 계속 다운(?)이 되는

    > > 겁니다. 한가지 알아낸 사실은 프로그램을 설치한후 데이타를 입력하면

    > > 일정한 데이타 입력후 PC가 다운(?)되고 프로그램을 다시 실행시키거나 PC를 재부팅하고

    > > 프로그램 실행하면 다시 일정 데이타 입력후 PC가 다운(?)되는 현상이 반복됩니다.

    > > 어떤 특정 PC만 그런건 아닙니다.

    > > 한 PC가 다운된후 빨리 그PC를 재부팅안하면 연쇄적으로 나머지 PC도 다운됩니다.

    > > (여기서 다운은 모래시계 표시에 밑에 SQL이라고 나오는것입니다.)

    > > 이와 같은 현상이 계속 반복됩니다.

    > > 참고로 이 데이타베이스는 하루에 약 1500건이 입력됩니다.

    > > 프로그램 수정전에는 이러한 현상이 없었는데 수정후 이러니 미치겠습니다.

    > > 이게 프로그램 문제인지 서버쪽의 문제인지 아니면 제3의 문제인지

    > > 도대체 전 감을 못잡겠습니다.

    > > 회사에서 테트스하면 아무 이상 없는데 사용자 싸이트에 설치하면 이러니

    > > 정말 죽겠습니다.

    > > 어느 고마우신 분이 트랜젝션 또는 롤백,커미트 부분을 한번 보라고 하셨는데

    > > 델파이 소스 코드에는 그런 설정이 없거든요?

    > > 그런데 서버에서 엔터프라이즈 메니저를 실행시키면 MANAGEMENT 아래 Current Activity

    > > 아래 Process Info와 Lock/Process ID부분(이 부분은 사용자 싸이트의 서버에 훨씬 많은 뭔가가 있습니다.) 또 Lock/Object부분이 회사에 있는 서버와 사용자 싸이트에 있는 부분이 다릅니다. 특히 Lock/Object 부분이 회사에 있는 서버에는 칼럼을 추가한 데이타베이스 이름이 없는데 사용자 싸이트에는 그 데이타베이스가

    > > 추가로 존재합니다. 혹시 데이타베이스를 수정하면 위와 같은 현상이 나도록 잠금장치를 해놓은 건가요?(추측입니다.) 만약 그렇다면 어떻게 해제를 하는 것인가요?

    > > 확실한게 없어서 이렇게 고수님들의 도움을 요청합니다.

    > > 부디 사부님들 알려주시기 바랍니다.

    > > Please.......

  • Profile
    hugehead 2000.08.10 04:39
    쿼리문을 올려주시지요.. 소스를 올리시던지..

    그냥 설명으로는 더이상 모르겠네요.

    Commit 나 Rollback은 복잡하고 여러개의 쿼리를 날릴 때에는 거의 필수라 해도 과언이 아닙니다.



    한영수 wrote:

    > hugehead wrote:

    > 정말 고맙습니다. 답변해주셔서. 근데 한가지만 더 여쭙겠습니다.

    > 테스트 해보라는 걸 테스트 해봤는데

    > 1)사용자 사이트에서 하나의 PC만 가지고 계속 작업을 했을 때도 "다운" 됩니다.

    > 2)개발 서버에서 여러 대의 PC를 놓고 계속 사용해봤는데 이상이 없습니다.

    > 그리고 그와 같은 현상이 발생치 않은 기존 프로그램의 소스코드에 Commit나 Rollback문이 없는데 새로 추가를 해야하나요? 바쁘실텐데 이렇게 불편을 드려 죄송하며 아시는 범

    > 위내라면 답변 부탁드립니다.

    >

    > > Lock 관련되서 에러가 발생한다고 생각하거나, 또는 여러대의 PC가 동시에 작업할 때 문제가 되는 것 같다면 DB Lock 관리에 문제가 있거나 Contention이 생기는 경우입니다.

    > >

    > > 테스트 해야 할 것:

    > > 1) 사용자 사이트에서 하나의 PC만 가지고 계속 작업을 했을 때 "다운" 여부를 확인 해야 합니다.

    > > 2) 개발 서버에서 여러 대의 PC를 놓고 계속 사용 해 봐야 합니다.

    > >

    > >

    > > 그리고, 무슨 방식으로 프로그램을 짜셨는지요?

    > >

    > > 혹시 프로그램이 복잡한 Database작업을 합니까? 다시 말해서, 하나의 작업 (루틴)에서 여러개의 테이블 및 쿼리를 실행하시는지요. 그럴 경우는 Transaction 처리가 필수입니다.

    > > 그냥 BDE를 이용해서 작업했다면,

    > > 프로그램의 TDatabase 컴포넌트에서 Transaction 처리 (commit,rollback 등)

    > > 가 가능합니다. TQuery나 TTable을 열기 전에 TDatabase 컴포넌트에서 StartTransaction 메소드를 호출하고, 그후 진행여부에 따라 Commit 또는 Rollback을 이용한 후 EndTransaction을 콜하시면 프로그램이 안정적으로 작동하지 않을까 생각되는 군요.

    > >

    > > 한영수 wrote:

    > > > 도저히 이해가 안가는 부분이 있어 이렇게 게시판에 올립니다.

    > > > 델파이4.0으로 만든 프로그램이고 DB는 MS-SQL7.0을 사용중입니다.

    > > > 기존에 다른분이 만든 프로그램에 추가로 어느 한 DB에 칼럼을 하나

    > > > 추가하여 데이타도 저장하고 그 데이타로 보고서도 뽑는 프로그램 입니다.

    > > > 현재 7대의 pc에서 각각 데이타를 입력하면 실시간으로

    > > > MS-SQL이 깔려있는 서버에 데이타가 저장되는 시스템입니다.

    > > > 그런데 문제는 제가 수정한 프로그램을 설치하니까 PC가 계속 다운(?)이 되는

    > > > 겁니다. 한가지 알아낸 사실은 프로그램을 설치한후 데이타를 입력하면

    > > > 일정한 데이타 입력후 PC가 다운(?)되고 프로그램을 다시 실행시키거나 PC를 재부팅하고

    > > > 프로그램 실행하면 다시 일정 데이타 입력후 PC가 다운(?)되는 현상이 반복됩니다.

    > > > 어떤 특정 PC만 그런건 아닙니다.

    > > > 한 PC가 다운된후 빨리 그PC를 재부팅안하면 연쇄적으로 나머지 PC도 다운됩니다.

    > > > (여기서 다운은 모래시계 표시에 밑에 SQL이라고 나오는것입니다.)

    > > > 이와 같은 현상이 계속 반복됩니다.

    > > > 참고로 이 데이타베이스는 하루에 약 1500건이 입력됩니다.

    > > > 프로그램 수정전에는 이러한 현상이 없었는데 수정후 이러니 미치겠습니다.

    > > > 이게 프로그램 문제인지 서버쪽의 문제인지 아니면 제3의 문제인지

    > > > 도대체 전 감을 못잡겠습니다.

    > > > 회사에서 테트스하면 아무 이상 없는데 사용자 싸이트에 설치하면 이러니

    > > > 정말 죽겠습니다.

    > > > 어느 고마우신 분이 트랜젝션 또는 롤백,커미트 부분을 한번 보라고 하셨는데

    > > > 델파이 소스 코드에는 그런 설정이 없거든요?

    > > > 그런데 서버에서 엔터프라이즈 메니저를 실행시키면 MANAGEMENT 아래 Current Activity

    > > > 아래 Process Info와 Lock/Process ID부분(이 부분은 사용자 싸이트의 서버에 훨씬 많은 뭔가가 있습니다.) 또 Lock/Object부분이 회사에 있는 서버와 사용자 싸이트에 있는 부분이 다릅니다. 특히 Lock/Object 부분이 회사에 있는 서버에는 칼럼을 추가한 데이타베이스 이름이 없는데 사용자 싸이트에는 그 데이타베이스가

    > > > 추가로 존재합니다. 혹시 데이타베이스를 수정하면 위와 같은 현상이 나도록 잠금장치를 해놓은 건가요?(추측입니다.) 만약 그렇다면 어떻게 해제를 하는 것인가요?

    > > > 확실한게 없어서 이렇게 고수님들의 도움을 요청합니다.

    > > > 부디 사부님들 알려주시기 바랍니다.

    > > > Please.......