JEUS 9
This chapter briefly describes the new features added to JEUS 9.
1. New Features
JEUS 9 fully supports the essential features of Jakarta EE 9 to enhance the development productivity. JEUS 9 also uses various enhanced technologies of Jakarta EE 9 to provide a more reliable environment.
1.1. Server
-
Added option to terminate server when app deploy fails
-
Set jeus.server.boot.all-apps-running property to true.
-
-
Added option to specify a separate listener for the JNDI port
-
Set jeus.jndi.port to configure JNDI to run on a dedicated listener port.
-
1.2. Servlet
-
Added compression function
-
Introduced a minimum size option that determines whether to apply compression based on the Content-Length of the response.
-
-
Added %z option for compression ratio in ACCESS-LOG
-
Introduced the %z option to display the compression ratio when using the HTTP compression feature. The compression ratio is displayed as 'default'.
-
-
Added Partitioned cookie support
-
Introduced an option to add the Partitioned attribute to cookies when the Secure attribute is set, enabling support for partitioned cookies.
-
Set jeus.servlet.response.cookie.partitioned to true.
-
-
-
Added option to clear ThreadLocal for every request
-
Introduced a function to clear ThreadLocal data at the start of every request. This feature helps prevent issues caused by leftover data when using open-source libraries or storing data in ThreadLocal.
-
You can enable or disable this feature using the clear-thread-local command. (Default: false)
-
-
-
Added option to skip waiting for worker threads during local-shutdown in built-in WebtoB
-
In a managed server (MS) linked with the built-in WebtoB (web server), the -g and -to options can be used when executing 'local-shutdown' to enable immediate shutdown without waiting for worker threads to finish.
-
Set jeus.servlet.engine.waitForWorkerDestroy to true.
-
-
-
Added Service Timeout log
-
Introduced a log entry to monitor and identify when a service timeout occurs.
-
-
Added ability to import jeus-web-dd.xml and web.xml from external sources
-
Introduced the -jwdp and -wp options to the deploy command, enabling the import of jeus-web-dd.xml and web.xml files from external locations.
-
-
Added feature to prevent throwing error even if request uri contains user information
-
Introduced the jeus.servlet.ignoreUserInfoInRequestURI option for this functionality.
-
-
Modified to print the cause of JDK compiler failures in JEUS log
-
Added functionality to output JDK compiler failure logs, including errors JEUS cannot recognize, directly to the JEUS log.
-
-
Added option to skip auto-reload when hot swap fails
-
Introduced the jeus.servlet.loader.ignoreAutoReloadAfterHotSwapFailed and jeus.server.useHotSwapAgent options for this functionality.
-
1.3. EJB
-
Added Support for Java global naming in EJB 2.x
-
The java:global JNDI lookup, previously supported only in EJB 3.x, is now also supported in EJB 2.x.
-
1.4. Session Server
-
Added functionality to support JEUS internal central session server method
-
Introduced a centralized session server method so that you can choose between a distributed or centralized session server method when using the JEUS session manager.
-
Set as follows using the jeusadmin console tool.
Add the scope to apply the centralized session server methodadd-sessionstorage-scope [SCOPE_NAME] -target [TARGET_SESSION_STORAGE] -sessionType CENTRAL -clusters [CLUSTER_NAME]
Configure the primary and backup servers to use in the centralized session server environmentset-jeus-central-session-server -primary [PRIMARY_SERVER] -secondary [BACKUP_SERVER]
-
-
Added basic options for session storage
-
Introduced the following two options to prevent session loss during a reboot.
-
backup-queue-size=0
-
backup-flowcontrol-enabled = false
-
-
-
Added separate thread pool for processing session requests
-
Introduced a dedicated thread pool for session request processing, ensuring that delays caused by overloaded threads sending requests are mitigated.
-
1.5. IO
-
Added ability to set connection retry count
-
Introduced an option to specify the number of retry attempts to reestablish a failed connection with the cluster due to an exception.
-
Use jeus.cluster.retry to configure this setting.
-
-
Added ability to set the time interval between connection retries
-
Introduced the option to specify the amount of time to wait before reattempting a connection between different JEUS processes.
-
Use jeus.net.connect.interval to configure this setting.
-
2. Changed Features
2.1. Server
-
Modified sequence of JNS Port binding from during server startup to after server startup
-
When using an EJB client, EJBs were previously called on the base port, which opens before the server’s EJBs are deployed, resulting in specific logs being printed. This has been addressed by changing the JNS port binding to occur after the server startup completes.
-
2.2. Servlet
-
Renamed option for security logic against vulnerabilities related to Out-of-Memory (OOM) during WJP or HTTP parsing
-
The functionalities have been integrated into the jeus.servlet.http.maxTotalHeaderSize option.
-
-
Modified ACCESS-LOG schema
-
The <formatter-pattern>, <level>, and <filter-class> tags have been removed from the schema, as they were incorrectly grouped with the System-Log tags.
-
-
Mitigated service delay caused by lock during JSP reload through hash table bypass
-
Resolved the delay issue during JSP reload by using a JSP include.
-
-
Removed functionality to limit count using JspWrapperCount
-
The jeus.servlet.loader.jspcount option has been removed.
-
-
Deleted Max Instance Pool Size schema
-
This option, used to set the number of servlet instances with STM (software transactional memory), has been removed as STM was excluded from the specification.
-
2.3. JMS
-
Modified behavior to prevent the host name in the address exposed by ConnectionFactory from resolving to an IP address
-
Previously, the address was always resolved to an IP address, but in some environments, the resolved address may differ between the client and the server. To address this, the host name is now included instead of the resolved IP address.
-