두개의 테이블에 각각 대량의 데이터를 인서트 하던중이었습니다.
두개다 데이터가 잘들어가다가 한군데에서는
SQLState:-803
SQLState:23505
SQLState:Error for batch element #2350: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=4;OPPRA.ID_MATCH_REAL, DRIVER=3.50.152
이런 에러메세지가 막 나기 시작하였고
SQLState:[jcc][t4][102][10040][3.50.152] 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. ERRORCODE=-4228, SQLSTATE=null
SQLState:-4228
SQLState:40001
SQLState:Error for batch element #1: DB2 SQL Error: SQLCODE=-911, SQLSTATE=40001, SQLERRMC=2, DRIVER=3.50.152
SQLState:-911
SQLState:null
SQLState:[jcc][103][10843][3.50.152] Non-recoverable chain-breaking exception occurred during batch processing. The batch is terminated non-atomically. ERRORCODE=-4225, SQLSTATE=null
SQLState:-4225
한테이블에서는이런메시지가 나왔습니다.
텍스트에서 읽어와서 데이터베이스로 넣고 있었고 커넥션을 맺을때 setAutoCommit(true)로 해주었고 그 후 5000건 만다 pStmtBatch.executeBatch() 해주었습니다. 몇만건 이상 들어간 후에 저런 에러 메시지가 나오더군요.
그후에 들어간 데이터들을 지우려고하면
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0964C The transaction log for the database is full. SQLSTATE=57011
로그 풀이라는 메세지가 뜨네요.
흠... setAutoCommit만으로 commit가 제대로 이루어지지 않는건가요??
급한데.. 이것참 큰일이네요.. ㅜㅜ
|