Background Image

FORUM

조회 수 14738 추천 수 0 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

다름아니라 BeginTrans 상태에서 해당테이블이 검색이 안되는 증상을 발견했습니다.

 

VB6으로 Microsoft ActiveX Data Object 2.8 Library를 참조해서 CUBRID를 검색하는 실행파일(Serch.exe)과,

 

등록하는 실행파일(Insert.exe)을 만들었습니다.

 

등록화면에 BeginTrans  걸어놓고 1초마다 하나의 데이터를 등록하게 해 놓고 총 100개의 데이터를 입력한뒤 CommitTrans 하게 코딩했습니다.

 

문제는 BeginTrans 중에는 검색이 안됩니다. (응답없음)

 

CommitTrans 한 후에는 검색이 됩니다.

 

하지만 CUBRID Manager 에서는 트렌젝션 걸려있는 상태에서 검색이 되요~

 

혹시 몰라 CUBRID말고도 다른 것도 그런가 하고 Access MDB파일로도 실험을 해본결과 정상작동합니다.

 

왠지 락걸린거같아요!

 

이 문제좀 살펴주세요.

 

업체에 나간 프로그램은 파일 전송이 완료되면 Commit 하게 되있거든요.

등록하는 도중에 검색하면 프로그램이 다운된다고 합니다.

 

  • ?
    남재우 2011.04.27 23:11

    안녕하세요. 답변이 늦어서 죄송합니다.

    데이터 입력 상황에 대하여 락 문제로 생각됩니다만, 정확한 내용은 몇가지 로그를 확인해봐야 할 것 같습니다.

    일단 CUBRID home 디렉토리 아래 log/broker/sql_log 아래의 내용을 모두 다른 디렉토리로 잠시 옮겨놓은 후,

    상황을 발생시키고 cubrid lockdb -o lockdb.log <DB명> 을 수행하여 lockdb.log 화일을 올려주시고요, 또한 위 sql_log 디렉토리에 생성된 *.sql.log 화일을 같이 올려주시면 원인을 파악해 보도록 하겠습니다.

    비밀글로 올려주셔도 됩니다.

  • ?
    ggamangy 2011.04.28 00:50 SECRET

    "비밀글입니다."

  • ?
    남재우 2011.04.28 19:52

    ma_usrm 테이블에 대한 update 작업으로 인하여 write lock 이 선점되어 검색시 대기하는 상황입니다. 지금 보니 락레벨을 올리셔서 발생하는 문제이고 기본 레벨로 하시면 해당 문제는 발생하지 않습니다.

  • ?
    ggamangy 2011.04.29 19:16 Files첨부 (1)

    락레벨은 어디에서 설정하나요?

    isolation_level="TRAN_REP_CLASS_UNCOMMIT_INSTANCE" 으로 하면 되는건지요

     

    <제가 참고하고 있는 메뉴얼 항목>

    http://cubrid.org/manual/ko/8.4.4/admin/config.html#lock-parameters

     

    위 항목의 기본값으로 했음에도 안됨니다.

    PC1

    PC2

    AdeConn.BeginTrans

    검색가능

    SQL = UPDATE 및 INSERT 쿼리

    AdeConn.Excute SQL

    검색안됨

    AdeConn.CommitTrans

    검색가능

  • ?
    남재우 2011.04.30 06:42

    lockdb 결과를 보면 lockdb level 이 올라가 있습니다. 응용프로그램에서 관련 api 를 통해 lock level 이 설정되는 것으로 보입니다.

    소스상에서 트랜잭션 처리시 lock level 설정 관련 조정이 되는지 확인해 보시는 것이 좋겠습니다.

  • ?

    별도로 Lock관련해서 넣은건 없습니다.

    아래는 제가 테스트해본 VB6 소스입니다.

     

    '[검색단 ]

    Option Explicit
    Private AdoSevCon                As ADODB.Connection         'AdoConnection 서버

     

    Private Sub Command1_Click()
    Dim sSql As String
    Dim rs As ADODB.Recordset

    sSql = " select * from history "
    Set rs = New ADODB.Recordset
    rs.Open sSql, AdoSevCon, adOpenKeyset, adLockReadOnly   '// 응답없음

    MsgBox rs.RecordCount

    End Sub

     

    Private Sub Form_Load()
    On Error Resume Next
    Const sDB_DATA As String = "demodb"
    Const sDB_IP As String = "LocalHost"
    Const sDB_ID As String = "dba"
    Const sDB_PW As String = ""
    Const sDB_PORT As String = "33000"

    Dim sCon As String
    sCon = "Provider = CUBRIDProvider;" & _
           "Data Source =" & sDB_DATA & ";" & _
           "Location =" & sDB_IP & ";" & _
           "User ID =" & sDB_ID & ";" & _
           "Password =" & sDB_PW & ";" & _
           "Port =" & sDB_PORT & ";" & _
           "Fetch Size =100;"
          
    Set AdoSevCon = New ADODB.Connection
    AdoSevCon.Open (sCon)


    If AdoSevCon.State <> adStateOpen Then
        Set AdoSevCon = Nothing
        MsgBox "DB 연결 실패", vbOKOnly, "프로그램 종료함"
        End
    End If
    End Sub

     

    Private Sub Form_Unload(Cancel As Integer)
    If Not (AdoSevCon Is Nothing) Then
        AdoSevCon.Close
        Set AdoSevCon = Nothing
    End If
    End Sub


     

    '[수정 및 입력단 ]

    Option Explicit
    Private AdoSevCon                As ADODB.Connection         'AdoConnection 서버

     

    Private Sub Command1_Click()
    Dim sSql As String

                 sSql = " Update history "
    sSql = sSql & " Set unit = 'time' "
    sSql = sSql & " Where event_code = 20263 "
    sSql = sSql & " And athlete = 'Phelps Michael' "

    '// 트랜잭션 시작

    AdoSevCon.BeginTrans
    AdoSevCon.Execute sSql
    Debug.print "이부분에 디버그를 걸어놓고 검색을 시도함"

    AdoSevCon.CommitTrans

    End Sub

     

    Private Sub Form_Load()
    On Error Resume Next
    Const sDB_DATA As String = "demodb"
    Const sDB_IP As String = "LocalHost"
    Const sDB_ID As String = "dba"
    Const sDB_PW As String = ""
    Const sDB_PORT As String = "33000"

    Dim sCon As String
    sCon = "Provider = CUBRIDProvider;" & _
           "Data Source =" & sDB_DATA & ";" & _
           "Location =" & sDB_IP & ";" & _
           "User ID =" & sDB_ID & ";" & _
           "Password =" & sDB_PW & ";" & _
           "Port =" & sDB_PORT & ";" & _
           "Fetch Size =100;"
          
    Set AdoSevCon = New ADODB.Connection
    AdoSevCon.Open (sCon)


    If AdoSevCon.State <> adStateOpen Then
        Set AdoSevCon = Nothing
        MsgBox "DB 연결 실패", vbOKOnly, "프로그램 종료함"
        End
    End If
    End Sub

     

    Private Sub Form_Unload(Cancel As Integer)
    If Not (AdoSevCon Is Nothing) Then
        AdoSevCon.Close
        Set AdoSevCon = Nothing
    End If
    End Sub

  • ?
    까망이 2011.05.09 20:01

    이거 해결할 수 없나요?


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 43
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
994 아카이브 로그 정리 관련 6 기마누엘 2019.06.20 460
993 json 데이터타입 insert/update 1 임소현 2019.06.24 1417
992 DBA 권한 부여 방법 설명해주세요. 1 JIRAN 2019.07.01 1290
991 COMMMENT 추가 방법 좀 알려주십시오. 3 허접 2019.07.01 1213
990 Audit 테이블 따로 존재하나요? 3 JIRAN 2019.07.01 242
989 날짜 데이터 변환 1 옐인 2019.07.03 547
988 cannot fetch serial object 2 file happyday0393 2019.07.04 196
987 큐브리드 서비스 멈춘 뒤 DB 덮어씌기 후 서비스 재시작이 안되는 경우 1 민수킴 2019.07.08 167
986 큐브리드 매니저가 다운되지 않습니다. 1 퓨전남 2019.07.08 141
985 테이블명 대문자 문의드립니다. 1 jechoi 2019.07.09 621
984 cannot fetch serial object 두번째 문의 3 happyday0393 2019.07.09 216
983 DB table 별 용량 확인방법 문의합니다. 3 톨톨 2019.07.10 1475
982 프로시저와 함수 관련 질문이 있습니다... 1 bjosbkjx 2019.07.11 239
981 Mac mojave 버전 큐브리드 설치 문제 1 norman 2019.07.18 303
980 시점복구 왜 안될까요?? 1 kubrid 2019.07.20 256
979 예약어 관련하여 문의드립니다. 1 jechoi 2019.07.23 151
978 select문 실행시 칼럼명 구분콤마( , )가 없을때, 앞 칼럼의 데이터가 뒤 칼럼명의 데이터로 나오는 현상 2 유진욱 2019.07.23 429
977 JOIN (+)과 함수 에러 3 wewek3jk3 2019.07.24 260
976 큐브리드 매니저 툴(Mac Mojave) 편집 화면에서 쿼리 작성 시 키 타이핑 속도 못따라갈정도로 느린 이슈 2 norman 2019.07.24 388
975 큐브리드 매니저 가져오기 기능 오류 1 file 장두 2019.07.25 316
Board Pagination Prev 1 ... 146 147 148 149 150 151 152 153 154 155 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales