제2장 JEUS 21

내용 목차

2.1. 신규 기능
2.1.1. SuperFrame Master
2.1.2. Topology
2.1.3. Session Server
2.1.4. Deployment
2.1.5. JBatch
2.1.6. JDBC
2.1.7. JMS
2.1.8. Logging
2.1.9. Network
2.1.10. SCF
2.1.11. Security
2.1.12. Server
2.1.13. Servlet
2.1.14. Transaction
2.2. 변경 기능
2.2.1. HostManager
2.2.2. Deployment
2.2.3. EJB
2.2.4. JDBC
2.2.5. SCF
2.2.6. Security
2.2.7. Server
2.2.8. Servlet
2.2.9. Transaction

본 장에서는 JEUS 21 릴리즈에서 추가된 새로운 기능에 대해 간략히 설명한다.

JEUS 21에서는 Jakarta EE 8의 주요 기능을 완벽히 지원함으로써, 개발 생산성을 획기적으로 향상 시켰다. 또한 Jakarta EE 8에서 향상된 여러 기술을 사용하여 보다 안정적인 환경을 제공한다.

  • 세션 스토리지로 Redis, Hazelcast 사용 기능 추가

    • 기본 제공 세션 스토리지가 아닌 Redis 및 Hazelcast 를 사용할 수 있는 기능 제공

  • Sticky encoding의 encoding rule 기능 개선

    • session의 encoding-rule을 padding이 출력되지 않도록 value값 BASE64_WITHOUT_PADDING과 RAW를 추가하게 되었다.

  • Session Server의 backup table을 jeusadmin tool을 이용해서도 볼 수 있는 기능 추가

    • server의 로그에서 뿐 아니라 jeusadmin을 통해서 session server의 backup table을 조회할 수 있다.

  • list-session command의 기능 추가

    • timeout이 지난 session을 -inactive 옵션으로 조회할 수 있다.

    • 특정 session만을 session id로 -i 옵션을 통해 검색하여 조회할 수 있다.

  • Session Cluster설정을 Session Storage 설정으로 확장

    • session을 관리하는 session manager와 실제 session을 보관하는 session storage를 분리하게 되었다.

    • session storage로 JEUS, REDIS, RUNTIME 과 같은 Provider를 설정하여 사용할 수 있다.

    • session storage 설정을 위한 jeusadmin command를 제공 한다.

  • Application 과 Cluster에 session scope를 추가/제거 할 수 있는 기능 추가

    • 기존에는 session-cluster 하위에 specific session scope를 만들고 application의 jeus-web-dd.xml에 scope를 설정 하지만 JUES21에서는 scope에 Application과 Cluster를 직접 설정할 수 있다.

  • 분산식 환경에서 full-search 옵션 기능 추가

    • session을 전체 서버에서 찾는 기능의 사용 여부를 판단하는 옵션이 필요하여 0과 음수는 사용하지 않는다는 의미로 사용되고 0보다 큰 수는 실제 timeout값으로 사용한다.

  • connection validation시 별도의 스레드를 생성하여 check-query를 수행하고 스레드에 timeout을 주도록 기능 추가

    • 데이터소스의 connection pool 설정에서 "Connection Validation" 하위의 "Check Query Class"를 "jeus.jdbc.connectionpool.TimeLimitedConnectionChecker"로 설정하여 스레드에 timeout을 주도록 추가하였다.

  • 데이터소스 계정 관리 기능 확장

    • 계정 관리 기능을 유연성있게 확장하기 위해 JEUS JDBC 엔진과 DB 접속 계정 정보를 관리하는 시스템 사이에 적절한 인터페이스, api 를 추가하였다.

      클래스설명
      jeus.jdbc.helper.DataSourceAccountProvider내부적으로 DB에 접속하기 위한 "User"와 "Password"를 얻어올 수 있는 API를 정의하고 있다.
      jeus.jdbc.helper.DefaultDataSourceAccountProvider위의 인터페이스에 대해 JEUS에서 기본적으로 제공하는 구현체이다.
      jeus.jdbc.datasource.DataSourceAccountProviderException위의 인터페이스 구현체가 DB에 대한 "User"와 "Password" 값을 평문으로 얻는데 실패했을 경우 JEUS JDBC 엔진에게 던지는 에러를 정의한다.
  • 데이터소스 connection pool 초기화 중 JDBC connection 생성 단계에서 에러가 발생해도 connection pool 초기화 작업을 완료하는 옵션 기능 제공

    • connection pool 초기화 중 에러 발생해도 connection pool 초기화 작업 완료할 수 있도록 하는 jeus.jdbc.connection-pool.keep-initialization-on-connection-error 옵션을 제공한다.

  • 서버 기동시 JDBC connection pool 초기화를 수행하는 옵션 기능을 추가

    • 서버 기동시 connection pool 초기화를 할 수 있도록 하는 jeus.jdbc.connection-pool.initialization-on-boot 옵션을 제공한다.

  • jeusadmin에서 add-data-source command 옵션으로 algorithm을 추가

    • add-data-source 명령어에 algorithm을 추가하였다.

  • Servlet 4.0 스펙 지원

    • Servlet 4.0 스펙의 기능을 지원한다.

  • Websocket client 지원 기능 추가

    • client authentication 기능을 제공한다.

  • JEUS valve 기능 추가

    • tomcat valve 기능으로 서버와 가상호스트 단위로 filter를 적용하는 기능을 제공한다.

    • URL rewrite 기능 옵션을 제공한다.

      • jeus.servlet.valve.rewrite.RewriteValve

  • 모든 http 응답을 chunked로 나가게 하는 옵션 추가

    • weblogic 윈백 및 JEUS 7 fix 3 이하 버전에서 업그레이드 하는 경우를 고려한 옵션을 제공한다.

      • jeus.servlet.response.forceChunkedResponse 프로퍼티를 true로 설정한다.

  • jeusadmin AccessLog 명령어에 permission 옵션 추가

    • jeusadmin access-log 하위의 file-handler에서 log 파일의 접근 권한을 설정할 수 있는 permission 옵션을 추가한다.

  • WJP websocket 지원

    • 이전 버전(JEUS 8 fix # 1)까지 reverse proxy를 통한 연결 방식에서 WebtoB - JEUS 간 reverse connection을 통한 websocket 통신을 지원한다.

  • http method 제한 옵션 추가

    • http method를 서버 단위에서 제한할 수 있도록 옵션을 추가한다.

      Valve Class namekeyvalue
      jeus.servlet.valve.MethodConstraintValvedeny or allowGET, POST 등
  • Set-cookie 헤더에 SameSite 속성 추가

    • Set-cookie 헤더에 SameSite 속성을 추가한다.

  • JSP Compiler에 Eclipse Compiler 추가

    • JSP Compiler에 동시성 버그가 없는 Eclipse Compiler를 추가한다.

  • user agent에 따라 Cookie의 SamsSite 속성을 삭제할 수 있는 필터 추가

    • 특정 user agent에서 Cookie의 SameSite 속성을 삭제할 수 있는 필터를 추가한다.

본 절에서는 JEUS의 모듈별 설정의 변경 사항을 정리한다.