1. 서론
로그, 타임라인 서비스 추가 후 서버가 계속 터짐...
2. 원인 파악
1) Jmeter 테스트
Jmeter로 300명의 사용자 테스트

[에러 메시지]
{"errorCode":400,"exceptionName":"CannotCreateTransactionException","errorMessage":"Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection"}
-> JDBC 커넥션이 없다.
원인 파악
application.properties 설정 후 로그 확인
logging.level.org.springframework.transaction.interceptor=trace
logging.level.org.springframework.orm.jpa=DEBUG
AI(Grok)를 이용한 분석

-> 이미 있는 로그를 삭제하는 트랜잭션이 오래걸린다.
deleteLogs 메소드 확인
@Override
public void deleteLogsByLogs(Logs logEntity) {
factory.delete(logs)
.where(logs.memberId.eq(logEntity.getMemberId())
.and(logs.characterId.eq(logEntity.getCharacterId()))
.and(logs.localDate.eq(logEntity.getLocalDate()))
.and(logs.logType.eq(logEntity.getLogType()))
.and(logs.logContent.eq(logEntity.getLogContent()))
.and(logs.name.eq(logEntity.getName()))
)
.execute();
}
-> 바보같이 코드짬...
2) deleteLogsByLogs 수정
@Override
public void deleteLogsByLogs(Logs logEntity) {
factory.delete(logs)
.where(logs.id.eq(logEntity.getId()))
.execute();
}
그 후 다시한번 Jmeter 테스트

-> Error가 0%로 기능적으로는 문제 없으나,
평균 응답 시간(1.86초)과 최대 응답 시간(3.88초)이 다소 느림. 응답 시간의 변동성(표준편차 851.87ms)도 큼.