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 51
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
994 testdb_t숫자, testdb_x숫자 형식으로 있는 파일 삭제 해도 되나요? 3 coolkkm 2017.11.30 267
993 데이터조회가 안되는 현상 3 연습용 2021.10.13 267
992 Error : [-596] The 1953 pages of total temporary space allowed have been exceeded. 2 리들러 2022.12.10 267
991 혼합형 데이터 정렬 방법 1 큐키 2021.06.14 265
990 큐브리드 마이그레이션툴 사용시 질문입니다. 5 bjosbkjx 2019.01.28 265
989 auto_increment 추가 방법 문의 1 부패방지운영팀 2023.04.14 265
988 이중화 씨 락상태가 30분 정도 걸려있다가 재기동 하면 바로 안올라오나요? 3 coolkkm 2017.12.14 264
987 ERWIN에서 Reverse Engineer 사용중에 에러 발생 3 연습용 2021.09.15 264
986 버전 문의드립니다 1 ka 2018.10.11 263
985 SELECT 전체 갯수에 대해 질문 드리겠습니다. 1 훈입니다. 2020.04.17 263
984 데이터 복구 1 file 연습만이살길 2022.03.25 263
983 큐브리드 매니저에서 질의 실행계획 질문하겠습니다. 3 file 연습용 2021.10.01 262
982 파라미터 바인드 문제.. 2 오션나인 2021.06.04 262
981 Locale 확인방법 문의 2 bchlim 2020.07.20 262
980 PHP PDO Driver 설치가 안됩니다. 웨버 2020.08.27 261
979 JOIN (+)과 함수 에러 3 wewek3jk3 2019.07.24 260
978 실행계획 읽는 법 문의 드립니다. 1 file kikiki767 2022.07.01 260
977 큐브리드 마이그레이션중 에러 7 밍아 2022.03.03 260
976 아카이브 삭제 명령어 문의 드립니다. 1 Philip Park 2021.04.06 260
975 파이썬에서 튜토리얼대로 했는데 안됩니다. 2 이방원 2020.08.02 258
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