トランザクションの処理を作成する上での注意

try{
 Database.commit();
}catch(Exception ex){
 logger.error("", ex);
 return false;
}

となっていると、エラーが起きた際にエラーログは出されるが、Database.commit();が実行されたままになってしまうので、

try{
 Database.commit();
}catch(Exception ex){
 Database.rollback();
 logger.error("", ex);
 return false;
}

として、エラーが起きた際にDBをDatabase.commit();が行われる前に戻すロールバック処理をcatch句以下に加える必要がある。