본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)

Tomcat LifecycleMBeanBase Failed to unregister MBean with name(흔치 않는 톰캣 오류)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2020. 7. 8.

아파치 톰캣을 구동하다 보면 만날수 있는 흔치않는 오류 입니다.

오류메시지도 다양하게 아래 형식을 맞추어서 나오게 됩니다.

org.apache.catalina.util.LifecycleMBeanBase.unregister Failed to unregister MBean with name [Catalina:type=여러형태의 값] during component destruction
javax.management.InstanceNotFoundException: Catalina:type=여러형태의 값

 

위 메시지에서 "여러형태의 값" 에 대한 내용을 대충 적어보았습니다.

물론 해당 메시지 말고도 좀 더 있습니다.

Catalina:type=Mapper
Catalina:type=Realm,realmPath=/realm0
Catalina:type=Valve,name=StandardEngineValve
Catalina:type=Valve,host=localhost,name=AccessLogValve
Catalina:type=Valve,host=localhost,name=ErrorReportValve
Catalina:type=Loader,host=localhost,context=/
...

 

여기서 일단 우리가 확인해야 되는 것은 Lifecycle과 관련된 오류이므로 동작하는 app의 문제 뿐만 아니라 tomcat에서의 구동을 할 때의 설정 과 환경의 문제도 같이 확인을 해 보아야 합니다.

이러한 원인은 아래의 상황을 통해 유추해볼 수 있습니다.

 

1. 앱에서 같은 이름을 가진 서비스의 형태(ex : 데이터베이스 datasource를 2개이상 사용시 객체이름이 동일 한 경우)

 

2. Tomcat에서 같은 이름을 가진 Service 또는 Engine 이름

 - 1개의 톰캣에서 여러개의 서비스를 동작시키는 경우 입니다.

 - Service의 name(이름)이 같거나 Engine에서의  name(이름)이 같은 경우 입니다.

 

3. 같은 운영체제에서 여러개의 톰캣이 같은 포트를 사용하는 경우

 - 사실 이러한 경우에는 "포트를 사용중입니다." 라는 오류와 함께 서버가 구동자체가 되지 않습니다.

 

저 같은 경우에는 2번과 같은 상황이였습니다.

1개의 톰캣에서 80포트(http)에도 개방해야 되고, 의 443포트(https)에도 개방되는 경우였는데 같은 서비스를 복사하여 붙여넣기 하다가 Engine이름을 동일하게 준 것이 해당 오류의 원인이였습니다.

오류메시지의 실제 모습입니다. 로그기록 일자는 제가 변경했습니다. ^^;

 

톰캣에서 Lifecycle과 관련된 오류를 만나게 된다면 반드시 환경과 설정에서의 문제를 먼저 찾아보시는 것을 추천드립니다.

기타 궁금한점이나 의문나는 점에 대해서는 언제든지 연락주세요! ^^

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글