main

카드서버 리뉴얼 - 3

홍호나 2022. 10. 4. 07:54

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());