카드서버 리뉴얼 - 3
4/26 onlinecard test
- transaction queue 테스트
a카드 10초 슬립 걸어놓고 b,c,d 카드로 요청했을 때 b,c,d는 정상적으로 진행된다.
if(!Standard.isEmpty(request.getTestParam())) {
try {
logger.warn("10초 슬립 시작! cardno - {}", request.getCardNo());
Thread.sleep(10000); //10초
logger.warn("10초 슬립 끝! cardno - {}", request.getCardNo());
} catch (Exception e) {
logger.warn("sleep error");
throw new CustomException(CustomError.SERVER_INTERNAL_ERROR);
}
}
- select한 값이 lock이 걸리는지 확인 ⇒ 걸리는듯?? select 먼저 찍히고 그 다음에 update 로그 찍힘 한 100번 정도 쐈을 때..
try {
logger.info("before select, cardNo:{}",request.getCardNo());
try {
mapper.getTestBalance(request.getCardNo());
} catch (Exception e) {
logger.warn("error : {}", e);
throw new OnlinecardException(OnlinecardError.INVALID_DATA_ERROR);
}
logger.info("after select, cardNo:{}",request.getCardNo());
logger.info("before update, cardNo:{}",request.getCardNo());
try {
mapper.updateTestBalance(100);
} catch (Exception e) {
logger.warn("error2 : {}", e);
throw new CustomException(CustomError.INVALID_DATA_ERROR);
}
logger.info("after update, cardNo:{}",request.getCardNo());