[Tomcat] Service Component


 [ Tomcat 공식문서 한글번역 링크 ]


[ 소개 ]

- Service 는 하나의 Engine 과 하나이상의 Connector 의 조합으로 Request 를 처리하는데 사용된다.
- Server 안에 하나이상의 Service 가 중첩될 수 있다.


[ 속성 ]

1. 공통 속성

- 모든 Service 의 구현체는 다음 속성을 지원한다.

속성설명
className(org.apache.catalina.Service 인터페이스를 구현한) 사용할 Java 클래스 이름 (기본값: 표준 구현체)
name
(필수)
Service 의 이름이며, 표준 Catalina 구성요소를 사용 시 로그 메시지에 해당 이름이 노출된다.
Server 와 연결된 각각의 Service 는 고유한 이름을 가져야 한다.


2. 표준 구현 속성

Service 의 표준 구현체는 org.apache.catalina.core.StandardService 이며, 위 공통 속성 외에도 다음과 같은 속성을 지원한다.

속성설명
gracefulStopAwaitMillisService 를 중지할 때 Service 와 연관된 모듈이 중지되기 전에 (Request)클라이언트의 연결이 처리를 완료하고 연결이 끊어지기 전까지 기다리는 밀리초 시간이며 값이 0 이하인경우 대기하지 않는다. (기본값: 0)

이 대기는 <Connector>bindOnInit 속성이 false 인 경우에 적용된다.(기본값: true)

[ 추가 설명 ]
Connector 의 bindOnInit 속성은 소켓이 언제 바인딩 되는지 제어하는 기능이다. (Request 소켓의 연결/해제)
Connector 가 시작될 때 소켓이 바인딩 되는건 동일하지만 true 일 때는 Connector 가 종료될 때 바인딩이 해제되며, false 일때는 Connector 가 중지될 때 바인딩이 해제된다.
아마 bindOnInit 속성이 false 일때만 동작하는 이유는 Connector 가 중지될 때 플래그를 걸어 중지 프로세스를 해당 시간만큼 중지하지 못하도록 대기 시켜두는게 아닐까 싶다.

1004lucifer


[ 중첩 구성 요소 ]

- Service 내에 포함 가능한 요소
 1) Connector - 하나 이상 추가 가능
 2) Engine - 하나만 추가 가능



[ 특수 기능 ]

- Service 와 관련된 특수 기능은 없음.


참고
 - https://tomcat.apache.org/tomcat-11.0-doc/config/service.html



[ 실습 ]

1. name 속성 변경
 
- Service 요소를 여러개 사용하는게 아니라면 굳이 바꿔야 할 필요를 모르겠음.


댓글