* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Linux 64bit |
|
CUBRID 2008 R4.1 (8.4.1.26001) |
|
- |
|
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요 XADatasource 사용 시 Rollback 이슈가 있어 문의드립니다 https://www.cubrid.com/qna/3830620 와 비슷한 문의인 것 같은데 XAConnection을 얻을 때 setAutoCommit(false)로 진행하여도 초기 수행 한번 이후에는 늘 auto commit으로 진행됩니다 로그는 하기와 같습니다
-- application 구동 후 최초 1회, exception 후 롤백 되는 케이스 (정상케이스) 03/16 11:44:48.237 (0) STATE idle 03/16 11:44:52.064 (0) CLIENT IP 00.00.00.00 03/16 11:44:52.072 (0) connect db AA user BB url xa session id 5820767 03/16 11:44:52.072 (0) DEFAULT isolation_level 3, lock_timeout 30 03/16 11:44:52.083 (1) prepare 0 SELECT /* selectA */ 03/16 11:44:52.096 (1) prepare srv_h_id 1 (PC) 03/16 11:44:52.121 (1) set query timeout to 0 (no limit) 03/16 11:44:52.121 (1) execute_all srv_h_id 1 SELECT /* selectA */ 03/16 11:44:52.121 (1) bind 1 : INT 1000 03/16 11:44:52.122 (1) execute_all 0 tuple 1 time 0.001 03/16 11:44:52.177 (0) close_req_handle srv_h_id 1 03/16 11:44:52.177 (2) prepare 0 UPDATE /* updateA */ 03/16 11:44:52.178 (2) prepare srv_h_id 1 (PC) 03/16 11:44:52.184 (2) set query timeout to 0 (no limit) 03/16 11:44:52.184 (2) execute_all srv_h_id 1 UPDATE /* updateA */ 03/16 11:44:52.184 (2) bind 1 : VARCHAR 03/16 11:44:52.184 (2) bind 2 : VARCHAR 03/16 11:44:52.184 (2) bind 3 : NULL 03/16 11:44:52.184 (2) bind 4 : NULL 03/16 11:44:52.184 (2) bind 5 : VARCHAR 03/16 11:44:52.184 (2) bind 6 : VARCHAR 03/16 11:44:52.184 (2) bind 7 : VARCHAR 03/16 11:44:52.184 (2) bind 8 : VARCHAR 03/16 11:44:52.184 (2) bind 9 : VARCHAR 03/16 11:44:52.184 (2) bind 10 : INT 1000 03/16 11:44:52.185 (2) execute_all 0 tuple 1 time 0.001 03/16 11:44:52.196 (0) close_req_handle srv_h_id 1 03/16 11:44:52.196 (3) prepare 0 SELECT /* selectB */ 03/16 11:44:52.197 (3) prepare srv_h_id 1 (PC) 03/16 11:44:52.202 (3) set query timeout to 0 (no limit) 03/16 11:44:52.202 (3) execute_all srv_h_id 1 SELECT /* selectB */ 03/16 11:44:52.202 (3) bind 1 : INT 1000 03/16 11:44:52.203 (3) execute_all 0 tuple 1 time 0.000 03/16 11:44:53.001 (0) end_tran ROLLBACK 03/16 11:44:53.001 (0) end_tran 0 time 0.000 03/16 11:44:53.001 (0) *** elapsed time 0.929 -- 이후 exception 이 발생해도 롤백 되지 않는 케이스 (비정상 케이스) > 매 statement마다 auto commit이 발생함 03/16 11:50:21.492 (0) STATE idle 03/16 11:50:30.316 (0) CLIENT IP 00.00.00.00 03/16 11:50:30.324 (0) connect db AA user BB url xa session id 5821512 03/16 11:50:30.324 (0) DEFAULT isolation_level 3, lock_timeout 30 03/16 11:50:30.334 (8) prepare 0 SELECT /* selectA */ 03/16 11:50:30.343 (8) prepare srv_h_id 1 (PC) 03/16 11:50:30.349 (8) set query timeout to 0 (no limit) 03/16 11:50:30.349 (8) execute_all srv_h_id 1 SELECT /* selectA */ 03/16 11:50:30.349 (8) bind 1 : INT 1000 03/16 11:50:30.350 (8) execute_all 0 tuple 1 time 0.001 03/16 11:50:30.350 (0) auto_commit 03/16 11:50:30.350 (0) auto_commit 0 03/16 11:50:30.350 (0) *** elapsed time 0.027 03/16 11:50:30.360 (0) close_req_handle srv_h_id 1 03/16 11:50:30.360 (9) prepare 0 UPDATE /* updateA */ 03/16 11:50:30.360 (9) prepare srv_h_id 1 (PC) 03/16 11:50:30.367 (9) set query timeout to 0 (no limit) 03/16 11:50:30.367 (9) execute_all srv_h_id 1 UPDATE /* updateA */ 03/16 11:50:30.367 (9) bind 1 : VARCHAR 03/16 11:50:30.367 (9) bind 2 : VARCHAR 03/16 11:50:30.367 (9) bind 3 : NULL 03/16 11:50:30.367 (9) bind 4 : NULL 03/16 11:50:30.367 (9) bind 5 : VARCHAR 03/16 11:50:30.367 (9) bind 6 : VARCHAR 03/16 11:50:30.367 (9) bind 7 : VARCHAR 03/16 11:50:30.367 (9) bind 8 : VARCHAR 03/16 11:50:30.367 (9) bind 9 : VARCHAR 03/16 11:50:30.367 (9) bind 10 : INT 1000 03/16 11:50:30.368 (9) execute_all 0 tuple 1 time 0.001 03/16 11:50:30.368 (0) auto_commit 03/16 11:50:30.368 (0) auto_commit 0 03/16 11:50:30.368 (0) *** elapsed time 0.009 03/16 11:50:30.375 (0) close_req_handle srv_h_id 1 03/16 11:50:30.375 (10) prepare 0 SELECT /* selectB */ 03/16 11:50:30.376 (10) prepare srv_h_id 1 (PC) 03/16 11:50:30.382 (10) set query timeout to 0 (no limit) 03/16 11:50:30.382 (10) execute_all srv_h_id 1 SELECT /* selectB */ 03/16 11:50:30.382 (10) bind 1 : INT 1000 03/16 11:50:30.382 (10) execute_all 0 tuple 1 time 0.001 03/16 11:50:30.382 (0) auto_commit 03/16 11:50:30.382 (0) auto_commit 0 03/16 11:50:30.382 (0) *** elapsed time 0.008 03/16 11:50:30.442 (0) check_cas 0 03/16 11:50:30.448 (0) con_close 03/16 11:50:30.448 (0) disconnect
혹시 JDBC 드라이버에 fix 된 내용이나, 추가 설정으로 XA시 auto commit을 막을 수 있는 방법이 있을까요? 현재 사용중인 JDBC 버전은 cubrid:cubrid-jdbc:10.2.7.8896 입니다