본 부록에서는 JEUS 6.x 환경에서 JEUS 7 환경으로 업그레이드할 때 참고해야 할 주요 변경 사항에 대해서 설명한다. JEUS 7은 JEUS 6에 비해 매우 많은 부분이 변경되었기 때문에, 아래에서는 업그레이드 과정에서 일반적으로 고려해야할 부분에 대해서만 설명한다.
JEUS 7은 JEUS 6에 비해 매우 많은 부분이 새롭게 추가되고 변경되었다. 업그레이드를 진행하기 전에 "JEUS Releae Note"에서 JEUS 7의 각 Fix별 주요 변경 사항 및 신규 기능들을 확인해서 변경 사항 및 새로운 기능에 대해 미리 알아두는 것을 권장한다.
JEUS 7부터 도메인 구조가 새롭게 되입되어 최대 관리 단위가 노드에서 도메인으로 확장되었다. JEUS 7로 이전하기 위해서는 기존 JEUS 6 구성을 바탕으로 하여 새롭게 JEUS 7 도메인을 구성해야 한다.
JEUS 6 각 구성 요소에 대응하는 JEUS 7 구성 요소는 대략적으로 다음과 같다.
JEUS 6에서는 노드가 최상위 단계에 위치하지만, JEUS 7에서는 도메인이라는 새로운 최상위 단계가 도입되었다. JEUS 6에서 JEUS 7로 이전할 경우 원하는 노드들을 선택하여 새로운 JEUS 7 도메인을 구성해야 한다.
JEUS 6 Engine Container는 서블릿 엔진, EJB 엔진, JMS 서버 등을 포함하고 있으며, 애플리케이션이 배포되고 서비스되는 주체가 된다. JEUS 7에서는 Managed Server(MS)가 이에 대응되는 구성 요소이다.
이전을 통해 구성하는 JEUS 7 도메인을 관리하는 Domain Administration Server(DAS)를 새롭게 생성한다. JEUS 6 환경에서는 존재하지 않던 구성 요소이므로, 새롭게 구성하여야 한다.
JEUS 도메인에 관한 상세한 내용은 “JEUS Domain 안내서”의 “제1장 소개”를 참고한다.
JEUS 6에서 노드 클러스터링을 구성했을 경우 해당 노드 클러스터에 속한 각 엔진 컨테이너에 대응하는 Managed Server들을 묶어서 클러스터를 구성함으로서 유사한 환경을 구축할 수 있다.
JEUS 7에서는 클러스터에 속한 서버들에게 배포되는 애플리케이션들의 구성이 모두 동일해야 한다는 점에 유의해야 한다. 클러스터에 대한 자세한 내용은 “JEUS Domain 안내서”의 “제5장 JEUS 클러스터링”을 참고한다.
웹 컨테이너에 대한 주요한 변경 사항은 다음과 같다.
http-listener, tcp-listener, ajp13-listener가 서버 네트워크 리스너를 사용하도록 변경되었다.
서버에 리스너 설정을 하고, server-listener-ref 설정을 통해 서버에 설정한 네트워크 리스너 중 어떤 리스너를 사용할지를 알려주는 방식으로 설정해야 한다.
아래 예제를 참고한다.
[예 B.1] JEUS 6에서 http-listener를 설정한 예(WEBMain.xml)
. . . <context-group> . . . <webserver-connection> <http-listener> <listener-id>http1</listener-id> <port>8088</port> <thread-pool> <min>30</min> <max>30</max> <step>1</step> </thread-pool> </http-listener> . . . </webserver-connection> . . . </context-group> . . .
[예 B.2] JEUS 7에서 동일한 http-listener를 설정한 예(domain.xml)
. . . <server> . . . <listeners> . . . <listener> <name>http1</name> <listen-port>9099</listen-port> </listener> . . . </listeners> . . . <web-engine> . . . <web-connections> . . . <http-listener> <name>http1</name> <server-listener-ref>http1</server-listener-ref> <thread-pool> <min>30</min> <max>30</max> <step>1</step> </thread-pool> </http-listener> . . . </web-connections> . . . </web-engine> . . . </server> . . .
이미 디플로이한 웹 애플리케이션의 JSP 파일들을 미리 컴파일하는 기능을 jeusadmin의 precompile-jsp 명령으로 대체하였다. precompile-jsp 명령어 대한 자세한 사항은 “JEUS Reference Book”의 “4.2.8.21. precompile-jsp”를 참고한다.
JEUS 7 Fix#2부터는 request encoding의 forced 설정을 하였을 경우 Servlet API보다 우선적으로 적용한다. JEUS 6에서 request encoding의 forced 설정을 했을 경우 동일한 수준으로 적용하기 위해서는 client-override 설정을 사용해야 한다.
세션 서버 기능에 대한 주요한 변경 사항은 다음과 같다.
JEUS 7에서는 중앙식 세션 서버를 더 이상 제공하지 않는다. 분산식 세션 서버만 사용 가능하다.
분산식 세션 서버를 설정할 때 수동으로 백업 서버를 설정할 필요가 없다. JEUS SCF를 기반으로 하여 세션 서버가 백업을 자동으로 설정한다.
JEUS 6에서 JEUS 7으로 설정 변환하는 부분에 대한 상세한 설명은 “JEUS 세션 관리 안내서”의 “2.7. 세션 클러스터 설정”을 참고한다.
JMX에 대한 주요한 변경 사항은 다음과 같다.
JEUS 7에서 Manager와 Container 개념이 삭제됨에 따라 이를 관리하기 위한 MBean들이 삭제되었으며, 새롭게 도입된 도메인 구조에 맞는 MBean들이 추가되었으며, 많은 API가 변경되거나 추가, 삭제되었다.
MBean ObjectName 형식이 변경되었다. JEUS 6의 ObjectName에는 노드를 나타내는 JeusManager 키가 존재하였으나, JEUS 7에서는 해당 키가 삭제되고, 도메인을 나타내는 J2EEDomain 키가 새롭게 추가되었다.
위에서 언급한 이유로 인해 JEUS 6에서 작성하였던 JMX 클라이언트 애플리케이션을 JEUS 7에서 그대로 사용할 수 없다. 대부분 수정하거나 재작성해야 한다.