본 장에서는 JEUS 21 Fix#1 릴리즈에서 추가된 새로운 기능에 대해 간략히 설명한다.
WebtoB Connector 추가 시 Use NIO 설정을 할 수 있도록 추가
wjp 관련 설정들이 변경 되면서 Use NIO 옵션을 설정 할 수 있도록 추가하였다.
cluster 설정에서도 virtual host 설정할 수 있도록 추가
로그인 시 사용하는 계정에 대해 5회 이상 실패 시, 30초간 로그인을 제한하는 기능이 추가
서버 로그 홈 경로를 지정할 수 있도록 옵션 추가
jeus.log.home 프로퍼티로 서버 로그 홈 경로를 지정할 수 있도록 옵션을 추가하였다.
jeusadmin [Configuration Editing] 기능 추가
SFM에서 Lock & Edit 기능을 대응하여 jeusadmin [Configuration Editing] 기능을 추가하였다.
wjp 파싱 시, OOM 발생될 수 있는 취약점 방어 로직 옵션 추가
webtob를 통해 악의적인 공격에 대해 JEUS 내부적으로 방어 로직 옵션이 추가되었다.
jeus.servlet.io.util.defaultMaxHTTPHeaderSizeInWJP 프로퍼티를 설정하며, 미 적용 시 기본값 32k가 적용이 된다. 해당 값 보다 큰 headerSize가 요청될 경우 400 response로 처리되도록 하였다.
XA Transaction 환경에서 하나의 Transaction의 시작과 종료 사이에 존재하는 EJB 호출은 모두 동일한 서버를 타겟팅할 수 있도록 옵션을 추가
XA Transaction 환경에서 클러스터링된 EJB 호출시, 하나의 Transaction의 시작과 종료 사이에 존재하는 EJB 호출은 모두 동일한 서버를 타겟팅 할 수 있는 기능을 추가하였다.
jeus.jndi.clusterlink.selection-policy=xid-hashing 프로퍼티를 설정한다.
암호화된 서버 기동 기능 추가
hostmanager.yml 내 additionalArgs 환경 변수를 이용하여 암호화된 서버 기동 가능하도록 기능을 추가하였다.
start-server 명령 기능 추가
hostmanager를 통해 jeusadmin start-server command로 서버 기동 가능하도록 기능을 추가하였다.
IIOP 통신에서 클라이언트의 ORB port를 지정하는 옵션 추가
IIOP 통신에서 클라이언트의 ORB port를 지정하는 옵션을 추가하였다.
jeus.corba.clientORBPort(단위 int, default 0, default인 경우 랜덤 포트 적용) 프로퍼티를 설정한다.
IIOP 통신중 FVD가 필요한 상황에도 meta operation을 skip 할 수 있는 옵션 추가
IIOP 통신중 FVD가 필요한 상황에도 meta operation을 skip 할 수 있는 옵션을 추가하였다.
jeus.corba.useMetaOperation 프로퍼티를 설정한다.
lookup을 요청시 NameNotFoundException이 발생할 경우, 옵션으로 명시된 다른 서버로 다시 요청을 보내는 lookup redirection 기능을 추가
lookup을 요청시 NameNotFoundException이 발생할 경우, 옵션으로 명시된 다른 서버로 다시 요청을 보내는 lookup redirection 기능을 추가하였다.
요청을 보내는 서버의 시스템 프로퍼티 jeus.jndi.redirectLookup=[서버 주소 or jeus://클러스터이름 or 서버주소,서버주소](String)를 설정한다.
thread pool 관련 부분 변경
Web Engine → Basic 에 thread pool 설정이 삭제되었으며 각 Listener, Connector에서 설정할 수 있도록 변경하였다.
서버명 정책을 다음과 같이 변경
1~128자의 영문 대/소문자, 특수문자 3종류 (- _ .) 만 허용되도록 변경하였다.
특수문자 " - " 로 시작하는 id 명은 추가할 수 없도록 변경하였다.
list-session command 의 -inactivate 옵션 기능을 삭제
session timeout 되는 순간 local 에 저장된 session을 바로 지우도록 수정되어 inactive 옵션이 불필요하므로 삭제하였다.
custom password validator command 에서 class 옵션이 없으면 command가 적용되지 않으므로 해당 옵션을 선택 옵션에서 필수 옵션으로 변경
SingleThreadModel 제거하여 일반 서블릿과 동일하게 여러 스레드에서 처리할 수 있도록 변경
JEUS에서도 옳지 않은 가상 호스트에 요청이 오면 403 응답하도록 하는 옵션을 추가
옵션 설정시 JEUS에서도 옳지 않은 가상 호스트에 요청이 오면 webtob와 동일하게 403 응답이 오도록 하였다.
jeus.servlet.common.forbidNotMatchedVirtualHost 프로퍼티를 설정한다.
wjp 관련 설정을 다음과 같이 변경
wjp는 <use-nio>true, false 값으로 요청을 blocking 또는 non-blocking으로 처리할 것인지 정할 수 있다.
기본 값은 true인데, true일 경우 connection과 thread pool 사이에 아무런 관계가 없어짐으로 <connection-count>와 thread 의 <min> <max> 값이 달라도 된다.
NonBlocking은 context 레벨의 스레드 풀과 virtualhost 레벨의 스레드풀을 사용할 수 있다. (http, ajp, tcp 처럼)
blocking은 이전 webtob처럼 스레드풀의 min, max와 connection-count 수가 같아야 한다. context 레벨의 스레드 풀과 virtualhost 레벨의 스레드풀을 사용할 수 없다.
domain socket은 blocking만 사용할 수 있고, network는 둘 다 사용할 수 있다.
listener별로 thread pool을 관리하도록 변경
webtob connector Hostname으로 설정시 에러 발생하는 버그를 수정
webtob connector 설정시 ip가 아닌 hostname으로 설정하면 에러가 발생하는 버그를 수정하였다.
애플리케이션 배포 시 스레드 로컬로 인해 클래스 로더 누수가 발생할 수 있는 문제를 수정
오픈 소스 라이브러리를 사용하거나, 사용자 코드를 실행해야 하는 경우 스레드 로컬에 저장되어 있는 값으로 인하여 OOM이 발생할 수 있는 문제를 수정하였다.
JDBC 데이터소스 설정에 Property로 User, Password를 올바르게 주었더라도 데이터소스 test 또는 실제 DB connection을 얻고자 할 때 적용이 안되는 버그를 수정
JDBC 데이터소스 설정에 Property key 값을 대소문자 정확하게 "User", "Password"로 주지 않으면 안되는 버그를 수정하였다.
JDBC 데이터소스 설정에 Property로 준 User, Password 값이 DB getConnection에 적용되지 않는 버그를 수정하였다.
cluster 환경에서 Durable Subscription 사용시 Connection Close가 동작하지 않는 버그를 수정
cluster환경에서 Message Receive할 경우 Durable Subscription 사용시 Connection Close가 정상적으로 이루어지도록 수정하였다.
cluster 환경에서 Durable Subscription 사용시 Delivered Message 수가 실제 수보다 더 많이 표기되는 버그를 수정
cluster환경에서 Durable Subscription 사용시 Delivered Message 수가 상이하게 표기되는 버그를 수정하였다.
cluster 환경에서 Destination의 Remaining Message 증가/감소가 두 번씩 수행되는 버그를 수정
cluster환경에서 Destination의 Remaining Message 증가/감소가 한 번씩 수행되도록 버그를 수정하였다.
패스워드 암호문으로 서버 기동 및 jeusadmin 로그인 가능한 버그 수정
암호화된 패스워드 문구로 Master, Managed Server 기동 및 jeusadmin 로그인이 가능했던 버그를 수정하였다.
하위 버전으로 jndi lookup 불가한 버그 수정
JEUS21 하위 버전으로 jndi lookup 요청 시 OP_LOGIN 로그가 출력되며 lookup에 실패하는 버그를 수정하였다.
modify-role, modify-resource command 버그 수정
modify-role, modify-resource command로 role, resource 수정 시 jeus.security.base.SecurityException 발생하며 수정 실패하는 버그를 수정하였다.
local-shutdown 명령으로 서버 종료 후, 서버 기동되지 않는 버그 수정
local-shutdown 명령으로 서버 종료 후, 해당 서버 재기동되지 않는 버그를 수정하였다.
OSGI-framework를 추가 및 수정 시 존재하지 않는 서버도 입력되는 버그 수정
add-osgi-framework, modify-osgi-framework 명령으로 존재하지 않는 서버 목록도 추가되는 버그를 수정하였다.
OSGI-framework 설정 시 대상 서버로 지정하지 않은 서버가 기동되지 않는 버그 수정
대상서버로 설정되어 있지 않은 경우도 고려하여 수정하였다.
서버 종료시 graceful옵션을 사용할 경우 서버가 종료되지 않는 버그 수정
서버 종료시 graceful옵션을 사용할 경우 서버가 종료되지 않는 버그를 수정하였다.
webtob 연동하고 graceful옵션으로 종료시 대기 후 종료되는 버그 수정
webtob 연동하고 stop-server SERVERNAME -g 명령어로 종료시 요청 처리 후에도 대기 후 종료되는 버그를 수정하였다.
selector스레드에서 문제가 발생했을 경우 정상적으로 에러 메시지 보내도록 수정
selector스레드에서 문제가 발생했을 경우 모든 protocol이 정상적으로 에러 메시지를 보내도록 수정하였다.
<web-engine> 하위에 <default-error-page>와 <attach-stacktrace-on-error>가 정상 동작하지 않았던 버그 수정
<web-engine> 하위에 <default-error-page>와 <attach-stacktrace-on-error>가 동작하지 않았던 버그를 수정하였다.
hth 복수 설정한 webtob 연동시 에러 발생하는 버그 수정
webtob 연동 hth 갯수를 여러개로 설정하고 app deploy된 상태에서 ms 기동시 javax.management.InstanceAlreadyExistsException에러 발생하는 버그를 수정하였다.
ms 재기동 시, 지정한 vhost가 아닌, default virtual host에 app deploy를 하는 버그 수정
ms 재기동 시, app deploy를 지정한 vhost가 아닌, default virtual host에 하는 버그를 수정하였다.
domain socket webtob 연동되지 않는 버그 수정
webtob를 domain socket 로 연동시 정상동작하지 않는 버그를 수정하였다.
wjp v1 연결시 wsadmin에서 id가 null로 출력되는 버그 수정
wjp v1 연결시 wsadmin에서 id가 null로 출력되는 버그를 수정하였다.
wjp 연결 후 재기동 시 NPE 가 발생하는 버그 수정
wjp 연결 후 재기동 시 NPE 가 발생하는 버그를 수정하였다.
서버 생성 시 등록되는 SERVER-HTTP 리스너가 삭제되지 않는 버그 수정
SERVER-HTTP 리스너가 삭제 가능하도록 버그를 수정하였다.