Could not commit with auto-commit set on 라는 에러가 출력되네요 ㅠㅠ 0 5 4,481

by ssyy [2015.03.19 10:07:03]


Could not commit with auto-commit set on
oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4439)
oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4486)

오라클 환경이 다른 곳에서 이런 오류가 출력 되는데 해결 방법이 있을 까요. ? ㅠ_ㅠ

by 비주류 [2015.03.19 11:00:14]

Connection이 auto-commit 모드인 것 같습니다. (DML 자동 commit)
conn.getAutoCommit() == true 인지 확인해보세요.
에러만 문제라면 필요시 conn.setAutoCommit(false); 하시면 되지만,
공통 모듈인 경우 다른 부분에 영향을 줄수도 있으니 검토가 필요하겠네요.

 


by ssyy [2015.03.19 11:50:00]

소스상에 해당 코드는 추가 되어 있어서, 

혹시 관리자 측에서 저 옵션을 수행하지 못하도록 하는 설정도 있나요. ? 


by 비주류 [2015.03.19 14:40:03]

오라클 환경 차이가 있다고 하시니, 가능하다면 ojdbc jar 버전을 잘되는 곳과 동일하게 맞춰보세요. (jvm 버전과도 맞춰야 합니다.)


by ssyy [2015.03.19 16:02:56]

오라클 버전과 jvm 버전을 맞춰서 했는데도 해당 오류가 떨어집니다.ㅠㅠ

다른거라곤 비트차이 뿐인데 64bit, 32bit 비트 차이로도 에러가 날수 있는지.;;

그리고 Create Insert 문은 이상 없는 Delete 와 Update 문에서 발생합니다.;


by 비주류 [2015.03.19 16:32:35]
WAS jvm 옵션에 -Doracle.jdbc.autoCommitSpecCompliant=false 를 넣어보라는 이야기도 있습니다만, 
해보질 않아서 더이상은 잘 모르겠습니다. ^^;
https://docs.oracle.com/database/121/JAJDB/oracle/jdbc/OracleConnection.html#CONNECTION_PROPERTY_AUTO_COMMIT_SPEC_COMPLIANT

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입