none
무선네트워크 환경에서 트랜잭션 오류 발생시 어떻게 처리 되나요? RRS feed

  • 질문

  • 안녕하세요 ^^;

     답답하고 이해가 되지 않는 증상이 나타나고 있어 이렇게 문의 드립니다...

    Wifi환경에서 갤럭시탭 으로  MSSQL DB에 데이터를 Insert합니다.

    그런데 1~10개의 데이터를 처리하면 간혹 1개의 데이터가 롤백되어 있습니다.

    처리 후 즉시 롤백 되는거면 장애원인을 확인하기 쉬운데, 1시간 ~ 2시간 이렇게 시간이 흐른 후에 롤백되니

    장애원인을 확인할 수 없습니다.

    이 증상에 대해 제가 장애 원인이라고 생각하는 부분은
    WIfi상태에서 [등록]버튼을 눌러 트랜잭션이 설정된 Insert문 이나 Update문을 DB로전송하고

    LTE로 네트워크를 변경하여 다시 [등록]버튼을 누르면 이전에 Wifi에서 전송 되었던 쿼리문(트랜잭션)문이 어떻게 처리가 되는지를 알고 싶습니다.

    똑같은 유니크한 값의 데이터를 등록하기 떄문에 에러가 발생하고 롤백이 될것 같은데 그럴 경우 LTE에서 전송된 데이터도 롤백이 되는지...

    아니면 DB에 전혀 영향을 주지 않는지 알고 싶습니다
    • 편집됨 이팜 2015년 11월 11일 수요일 오전 11:32
    2015년 11월 11일 수요일 오전 11:31

모든 응답

  • 트랜젝션이 1~2시간이 걸린다는 이야기는 매우 트랜젝션이 길다는 의미인데,

    이것을 줄이는게 가장 급선무죠 

    그리고 아래와 같이 에러코드의 형태로 받아서 트랜젝션의 에러를 읽는 것도 하나의 방법입니다.

    DECLARE @ErrorVar INT;

    DECLARE @RowCountVar INT;


    insert into tblseq(nameT, dateT)

    select '1111111111111111111111111111111111111111111111111111111ZC',getdate()

    -- Save @@ERROR and @@ROWCOUNT while they are both

    -- still valid.

    SELECT @ErrorVar = @@ERROR,

        @RowCountVar = @@ROWCOUNT;

    IF (@ErrorVar <> 0)

       Print ('Fail')

    GO

    • 답변으로 제안됨 Boram Yi 2015년 11월 19일 목요일 오전 12:33
    2015년 11월 16일 월요일 오전 1:21