TOOL/DATABASE 2018. 12. 3. 19:53

Java - 자바

MySQL - 마이에스큐엘

테스트에 별 불편함 없이 써왔었느데.. 자세히보니... 트랜젝션이 안되는 것을 발견했다...

허걱..ㅋㅋ 

처음에는 나의 로직에 문제가 있구나 생각하고 고군분투하였는데, 도무지 rollback이 안되는 원인을 알 수 없었다.

검색하여 몇가지 정보를 얻었고, 5.5 이하 버전에서는 안된단다...

트랜젝션(Transaction)이 없는 데이터베이스라니.. 예전 버전에는 그랬었구나..

Problem - 문제

mysql-connector-java-5.1.35.jar을 이용하여 JDBC작업을 하고 있는데, 이상하게 rollback()이 되지 않았다.

오래전에 호스팅했던 cafe24에서 주는 MySQL을 쓰고 있는데 버전이 5.5 아래인 것 같다.

Why - 원인

MySQL 5.5 버전 이하는 MyISAM 이라는 엔진을 사용하였는데, 트랜젝션이 없다는 것이 가장 큰 단점이었다고 한다.

Solved - 해결

5.5 버전 이하에서는 트랜젝션이 안 된다. 5.5 이후 부터는 보완이 되었다고 하니, 버전을 올리던지, 다른 데이터베이스를 쓰던지, 포기하던지 하면 된다.

Reference - 참조