배치 수정 수정 수정
늘 하듯 수정 수정 수정이다. 이번에 범위가 좀 많아. 전체적으로 배치를 돌리고 수정하고 에러를 잡는 등 일이 많았다.
nullPointException에러 해결. 일단 널포인트 에러 나면 매핑해서 가져온 값을 사용할때 null값이면 일단 에러가난다. 에러를 재현하려고 했지만, 현재 DB의 데이터로 같은 에러는 일어나지 않아. 의심이 가는 부분을 수정했다.
의심이 가는 부분은
이 부분이다. Empty조건을 넣을때 이미 null이기 때문에, 오류가 난다. 만약을 위해 바로위에 값에 null을 setting하여 nullPointException확인을 하였다. 해결방법은 간단하다.
해당값이 null이 아니고 && empty 판정을 하면된다. 주의할점은 null값 판정을 먼저 하여야한다. 만약 empty판정을 먼저 넣으면 똑같이 nullPointException이 일어난다.
sql오류. 어떠한 값 근처에 값이 잘못됐다고 나온다. 보통 이럴때는 insert시에 작은따움표가 포함되어 일어나는 경우가 많다. 바인드 변수로 하면 문제가 없지만, 값을 직접 넣는 리터럴변수 형태로 한다면, 이러한 오류가 일어나게 된다. 일단 원인이되는 데이터는 발견하였고, 작은따움표가 원인이였다. 처음에는 작은따움표 한개를 2개로 replace하는 처리를 하였는데, 생각해보니 어떠한 컬럼에 작은따움표가 들어올지 모르기 때문에, 아예 바인드변수로 다 바꾸었다.
outOfMemory에러시에 로그에 표시가 되도록 바꾼다. try catch시에 outOfMemoryerror라는 클레스가 있어. 추가하였다.
날짜를 업데이트하는 배치가 있는데, 영업날짜와 배치 실행시간 등을 고려해 날짜를 업데이트하는곳에 문제가 있어 새로 설계서를 받고 작성을 하였다!
전체적으로 batch 실행시키고 확인하느라 오늘은 8시가 넘어서 퇴근하였다.... 화이팅!