SpringBoot

SpringBoot

SpringBoot graceful shutdown

Graceful shutdown? kill -9를 통해 프로세스를 죽일 때와 달리kill -15 프로세스를 죽일 때에는 정상적으로 프로세스가 종료되어야한다. 때문에 모든 요청이 처리될 때까지 기다린 다음에 종료되어야한다. 때문에 이러한 옵션을 위해서는 application yaml 파일의 server.shutdown 옵션을 수정하면 된다. 위와 같이 기본 옵션인 immediate는 요청을 처리하다가도 정상 종료를 받으면 즉시 모든 요청까지 종료시킨다. 이는 오토스케일링되는 환경에서 파드의 변경 발생 시 요청이 중단되는 현상을 발생시킬 수 있으므로 활성화해도록 하자 server.shutdown = graceful 설정 시 앞으로 들어오는 요청을 중지시키고 남은 요청을 모두 처리한 후에 프로세스를 종료시킨다.

SpringBoot

kotlin 환경에서 redisHash entity id field val로 선언 시 발생하는 오류

Short description 아래의 간단한 API를 테스트하던 중, 갑작스러운 500 오류가 발생했습니다. override fun checkCode(email: String, code: String): Boolean { if (codeRepository.findByEmail(email).orElse(null)?.code == code) return true return false } framework.data.keyvalue.core.UncategorizedKeyValueException: No accessor to set property @org.springframework.data.annotation.Id()private final java.lang.String com.we.webackend.do..

SpringBoot

kotlin 환경에서 OpenFeign ErrorDecode 시 발생하는 역직렬화 작업 오류

문제 상황 기존 A서비스에서 B 서비스 호출 시 FeignException 핸들링은 작업해두었으나, 그로인해 오류가 발생하게되면 핸들링해놓은 응답만 반환될 뿐, 특정 상황에 커스텀된 오류 메시지가 A서비스를 호출한 클라이언트 측까지 전달되지 않았습니다. 고로 ErrorDecode를 통해 B의 오류 메시지를 클라이언트측까지 전달하려 했으나..... com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.info.info_v2_backend.common.exception.ErrorResponse` (no Creators, like default constructor, exist): canno..

SpringBoot

JPA-Native-Query에-파라미터로-Enum-값-받을-때-오류

JPA에서 nativeQuery 사용 시에 넣는 파라미터가 Enum으로 입력 시에 java.sql.SQLException: Incorrect string value: 에러 해결 https://herojoon-dev.tistory.com/12 해당 글에서 포스팅하고 있는 'utf8mb4' 관련 오류가 발생하는데 사실 enum값을 전달할 때 enum.name을 전달하는 것이 아니라 코드 자체를 인코딩해서 전달해서 발생하는 문제로 추정된다. 문제 발생 쿼리: 문제 해결 쿼리: 위와 같이 enum의 name을 String으로 받아서 파라미터로 입력하면 해결된다.

SpringBoot

JPA OrphanRemoval 사용 시 복합 키 엔터티 삭제 버그

문제 원인 @OneToMany(mappedBy = "recruitmentBusiness", orphanRemoval = true, cascade = [CascadeType.REMOVE]) var needCertificateList: MutableSet = HashSet() protected set @Entity @Table(name = "ceritifcate_usage") @IdClass(CertificateUsageIdClass::class) class CertificateUsage( certificate: Certificate, recruitmentBusiness: RecruitmentBusiness ):BaseTimeEntity(), Persistable, Serializable { @Id @Man..

SpringBoot

JPA Entity Id 타입을 UUID로 지정 시 업데이트 실패 오류

문제 원인 entity의 PK type을 kotlin 코드에서 UUID로 지정하고, jpa generate ddl 옵션을 허용하여 Spring Data JPA가 테이블을 생성하게 하였습니다. @Entity class Record( ): TimeEntity() { @Id @Column(name = "id", nullable = false) val id: UUID = UUID.randomUUID() ... } 하지만 이 때, 심각한 오류가 발생합니다. batch update returned unexpected row count from update 위 오류 메시지는 해당 Record Entity를 수정하고 transactional 어노테이션이 종료되었을 때 발생한 내용입니다. 정확한 발생 상황은 entity..

xlwdn98767
'SpringBoot' 카테고리의 글 목록