JAVA PreparedStatement addBatch,executeBatch 사용 중 에러처리 (BatchUpdateException)

2020. 11. 10. 16:47·공부/JAVA

쿼리속도를 올리기 위해 preparedStatement 클래스의 addBatch,executeBatch 매서드를 이용하는 경우가 있다.

나도 대용량의 엑셀데이터를 DB에 넣기 위해 위 메서드를 이용했는데,  데이터를 인서트하다가 오류가 나는 경우가 있었는데, 문제는 배치를 사용했을 때 오류가 어디서 발생했는지 에러코드를 트래킹할 수가 없다는 점이다.

executeBatch() 실행 중 에러발생 시 대략 이런식으로 나온다.

com.ibm.db2.jcc.am.BatchUpdateException: [jcc][t4][102][10040][3.65.77] Batch failure.  The batch was submitted, but at least one exception occurred on an individual member of the batch.

또는

Non-atomic batch failure. The batch was submitted, but at least one exception occurred on an individual member of the batch.
Use getNextException() to retrieve the exceptions for specific batched elements.


비atomic 일괄처리에 실패했습니다. 일괄처리가 제출되었지만 각 일괄처리 구성원에서 최소 한 개의 예외가 발생했습니다.
 
getNextException()을 사용하여 특정 일괄처리 요소에 대한 예외를 검색하십시오.

executeBatch 메서드 사용 시 어느쿼리에서 오류가 발생했는지 확인하기 위해서는 SQLException 객체의 getNextException()매서드를 이용하면 된다. 이 메서드를 사용해서 에러를 전부 찍어주는 방법이다.
사용법은 아래와 같다.

try{
    preparedstatement.executeBatch();
}catch(SQLException e){
    while(e!=null){
        e.printStackTrace();
        e=e.getNextException();
    }
}

해당 소스를 적용하고 오류메시지를 확인해보니 8544번째 데이터가 중복되어 문제가 됐었던 것이다.!

com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: Error for batch element #8544: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=1;IBEINST.TBPAYFARERULECHA, DRIVER=3.65.77

마무리를 어떻게하지.. 그럼 이만 !

반응형
저작자표시 (새창열림)
'공부/JAVA' 카테고리의 다른 글
  • 트러블 슈팅을 위한 JVM 공부 (1일차)
  • JNDI셋팅(tomcat,mysql) 중 발생한 에러 및 처리
  • JSMOOTH로 JAVA파일을 EXE파일로 배포하기 !
  • 자바 Exception printStackTrace를 String 객체에 담기
JangGiraffe
JangGiraffe
안녕하세요~ 반갑습니다! 머무시면서 즐거운 시간 보내시길 바랍니다. 오픈카톡 : https://open.kakao.com/o/sYEBs0uh
  • JangGiraffe
    giraffe1010
    JangGiraffe
  • 전체
    오늘
    어제
    • 분류 전체보기 (390) N
      • 공부 (155) N
        • AI (3)
        • Spring (10)
        • JAVA (31)
        • python (6)
        • 기타 (12) N
        • 메세지 (3)
        • Jsp,Servlet (4)
        • HTML (12)
        • Javascript (6)
        • C#,ASP.NET (2)
        • WEB (2)
        • DB (11)
        • Android (18)
        • [BaaS]Parse.com (4)
        • 졸업프로젝트 (4)
        • AWS,네이버클라우드플랫폼 (2)
        • Ubuntu (6)
        • maven (1)
        • 자료구조 (15)
        • 서버 (3)
      • 게임 (0)
      • 관심 (22)
        • 사진 (1)
        • 패스오브엑자일(POE) (1)
        • 월드오브워크래프트 (4)
        • 블로그 (7)
        • 이슈 (1)
        • IT (5)
        • 기타 게임 (3)
      • 자료 (2)
        • 면접 (2)
      • 먹거리 (103)
        • 음식리뷰 (99)
        • 카페리뷰 (4)
      • 여행 (35)
        • 국내여행 (23)
        • 해외여행 (12)
      • 생활정보 (68)
        • 생활정보 (33)
        • 상품리뷰 (34)
        • 세미나후기 (1)
      • 끄적끄적 (5)
        • 영화후기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 문의(카톡)
    • 방명록
  • 링크

    • 2zino
    • wildbluffer
  • 공지사항

  • 인기 글

  • 태그

    발산맛집
    시즈오카
    자취
    가양맛집
    강서구맛집
    마곡맛집
    김포맛집
    왕십리맛집
    발산 회식
    돈벌기
    와우
    양양 가볼만한 곳
    떡볶이
    ChatGPT
    제주도맛집
    맛집
    오징어난전
    홍대맛집
    강원도여행
    월드오브워크래프트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JangGiraffe
JAVA PreparedStatement addBatch,executeBatch 사용 중 에러처리 (BatchUpdateException)
상단으로

티스토리툴바