Table of Contents
This chapter briefly describes the functions added in JEUS v7.0 Fix#1.
This section describes the new functions of JEUS.
Added a function that allows applications to be installed/deployed/undeployed/started/stopped simultaneously.
A list can be used to install applications (the ID cannot be given).
Various application files be can selected and installed in WebAdmin.
A list can be used to deploy applications.
Various installed applications can be selected and deployed in WebAdmin (The deploy option of selected applications are uniformly applied).
Although installation is not supported in list form in jeusadmin, installation is possible in the list form by checking the checkbox when installing from WebAdmin.
Supports a deployment plan function of EJB, Web, and EAR.
Inside the application package, regardless of the JEUS DD file, the function that deploys applications located outside of the package as an arbitrary plan is supported.
In WebAdmin, a deployment plan management function and a plan option to deploy/distribute/redeploy are provided.
When using the deployment plan function, DD can be replaced with "Plan".
In jeusadmin, by merging the existing domain.xml with the configuration plan, a command that creates a new domain.xml is provided.
Added a function that compresses and transfers exploded applications.
Added a staging option that can compress and transfer exploded applications.
The function can compress an exploded application that is then transferred to a server and deployed. The function works inside the DAS and by Remote MS, and the exploded application is matched according to its type.
Does not take responsibility of the synchronization of an application's original file. Therefore, when modifying an application, redeploy must be performed explicitly.
Added a function that concurrently executes JEUS boot time deploy by group units.
The function can deploy applications when Boot Time and Runtime are deployed.
For EAR, internal modules can now be concurrently deployed.
Added a function that can configure the period required until the messages that can do transaction rollback or recovery can be serviced again.
The existing redelivery function reprocessed immediately when required. However, the modified function can modify the interval and delay reprocessing.
Redelivery can be delayed for a period equal to the configured interval (Unit: ms).
Provides a function that can forcibly override some of the attributes required by the client program in the server configuration.
Time-to-live (expiration-time), time-to-deliver (schedule), priority, delivery-mode, redelivery-limit, etc are overridden.
Added a function that manages messages that exist in JMS servers.
Added a function that suspends/resumes the queue or the topic's produce/consume.
Added a function that moves the import/export function of "view message"/"delete message"/"about the message" and the message in the queue or the Durable Subscriber into another queue or Durable Subscriber.
Handling of the timeout message has been improved for when the expiration time is configured.
In previous versions, messages that timed out were unconditionally deleted. However, messages can now be deleted or redirected to the “Dead Letter Destination”.
Added a function that can configure "Dead Letter Destination" by destination.
Introduction to the node manager, which controls and monitors the JEUS server.
The node manager was added to support the management of the server process, which operates in each detached node; start/shut-down of the local/remote server; and restarting of a failed server.
The node manager is configured in $JEUS_HOME/nodemanager/jeusnm.properties and can access nodes in nodes.xml.
For DAS to be managed by the node manager, it must be connected to the node manager and implement a server in the node manager. By connecting to the node manager and giving the DAS start command, the startDomainAdminServerNM script was added so that the node manager can simultaneously execute two commands that start DAS.
The important functions are server boot/down, server monitoring, and patch delivery.
The Java node configuration function for the node manager was added to WebAdmin.
Added the rolling patch function, which rolls back the configuration backup.
Through the node manager, the function can apply/delete a patch to/from the doman and check the patch information.
When applying/removing a patch, if the -rolling option is given, a redundant service can be done without error.
When an error occurs during a rolling patch, three options (continue, rollback, and stop) are supported.
A screen for the rolling patch has been added to WebAdmin.
From the backup configuration list, a backup can be selected and used to roll back the configuration.
(The rollback must be performed with the WebAdmin lock. The configuration rolled back must be activated to be applied.)
Commands related to the rolling patch have been added to jeusadmin.
Added a function that boots a server to standby status.
When a server newly added during operation is booted to running status, errors can occur if the server immediately receives a request from a client. To prevent these errors, the function that boots the server only to the standby status (-standby option) has been added.
If a newly added server is added to the target of the application through the add-Application-target command, and the server is then started, the application request can be processed without failure.
Added a function that creates HeapDump for when JEUS memory usage exceeds the ratio in the memory monitoring service.
Executes the jmap command in JEUS and uses the HeapDump creation command to leave the file name as HeapDump_yearmonthdaytime.bin and the log file as $SERVER_HOME/logs.
Because IBM JDK does not have the jmap command, the jvm-option must be configured with the same properties as -Xdump:heap:file to create HeapDump.
Added the WebAdmin background deploy function.
The function deploys a fake WebAdmin during boot time to improve speed and starts the real WebAdmin through a graceful redeployment in the background.
Added a function that allows an administrator to control access to WebAdmin without shutting down a server.
The function can dynamically apply the command when the disable-WebAdmin/enable-WebAdmin command is performed in jeusadmin.
Added the CPU Monitoring Service and the Process CPU Monitoring Service for a server.
Added a function that monitors the CPU utilization of a server's CPU and process.
Uses the "jeus.server.cpumonitor.enabled=false" flag to configure the availability of the server's CPU monitoring cycle, and sets jeus.server.cpumonitor.interval=60000.
The jeus.server.process.cpumonitor.enabled determines if monitoring of the current process' CPU utilization is monitored, and jeus.server.process.cpumonitor.interval configures the monitoring cycle.
It is recommended that this function be used only in Sun JDK.
Added a function that can insert an option before the Java command that starts a MS during MS start-up.
When configuring domain/servers/server/user-interceptor/preceding-command of the domain.xml file, and the MS is started, the option is added to the front of the foremost JAVA command.
When XXX is added to preceding-command, the command is configured in the "XXX java ~~~" format.
Added the sys-info command to provide additional system information through JVMMBean.
The process, CPU, memory, and the JVM information can be viewed in sys-info. The command also provides additional information by utilizing the SIGAR library, which is open source.
Added the production mode configuration function
Added a function that can separate the development mode and the production mode by classifying functions that can affect development productivity, performance, and memory leak.
Added commands that modify the server address and the port number in the jeusadmin (modify-webtob-connector and modify-tmax-connector).
Added a function that displays the statistics and status of the thread pool (async background thread pool, async dispatch thread pool) for asynchronous processing, which carries the application if a web application name with the thread-info command is added.
Added a function that blocks memory leaks and OOME when using the threadlocal variable in an application.
A memory leak increases the possibility of an OOME (especially in situations where ContextLoader or WEBAPP instance are held in ThreadLocal, when undeploy/deploy/reload are performed, memory leak can occur). A memory leak can occur when the ThreadLocal variable is used in applications.
In the web engine property (<web-engine>/<properties>), the key (jeus.servlet.prevent-forcibly-threadlocal-memoryleak) is specified by a boolean value (true/false).
Added a function in jeusadmin that allows the entire stack trace of a specific web listener thread pool to be checked.
Added a function in jeusadmin that allows the entire stack trace of a specific web listener thread pool to be checked.
The following is how the function call.
strace -server [ServerName] -li [Listener-Name]
Added the interrupt function for the entire web listener thread pool.
The function can interrupt the entire web listener thread by providing the -li option to the interrupt-thread.
Added a function that provides the SSL client certificate information received from WebtoB.
Through the function added in WebtoB 4.1.5.2, when WebtoB sends SSL information as an HTTP header named "WJP-SSL-SESSION-ID WJP-SSL-CIPHER WJP-SSL-CIPHER-USEKEYSIZE WJP-SSL-client-CERT" to JEUS, JEUS read this and supports it through HttpServletRequest#getAttribute().
Added a function that records the thread stack trace in a log when an interrupt to active threads, which passed max-thread-active-time, occurs.
Added a function that creates a new server by copying the configuration of an existing server.
The server name, node-name, and listen-address listen-port use the existing configuration if there is no new input. Errors can occur when booting, and if a name is not specified, an arbitrary name is automatically inputted.
Added add/modify/delete commands to the web engine configuration.
Commands related to the following were added.
add/modify/remove commands: encoding, properties, response-header, and cookie-policy.
modify command: jsp-engine.
modify-web-engine-configuration option: default-error-page, attach-stacktrace-on-error, and async-timeout-min-thread.
Added the Ant Task function
The function uses an Ant Task to start/shut down DAS/MS when using the node manager.
Added deployment related tasks (install, deploy, start, stop, undeploy, redeploy, uninstall, addtarget, removetarget).
Added jeusadmin commands
Added commands that can add/modify/delete JVM options in a MS.
The commands can add/delete/modify the option configured in server/jvm-config/jvm-option. However, if the existing configuration information does not completely match the jvm-option tag unit of domain.xml, the specified command is not executed.
Added a command that decides whether to turn on/off the usage of JEUS Logger.
Added a function that checks the appinfo in an independent MS.
Added a function that allows appinfo to be checked through application-info in MS (same as DAS) when the MS is in INDEPENDENT mode.
Added an option that allows just EJB or the web to be selected when precompiling EAR in appcompiler.
Added an option that allows just EJB or the web to be selected when precompiling EAR in appcompiler.
EJC and the web module can be selected with the -ejbonly and -webonly options, respectively.
Added a function that allows the use of multiple threads for compilation when JSP is compiled using appcompiler.
By using appcompiler, the number of the threads used to compile JSP files can be adjusted by the –j option. (Default value: 1)
Added a monitoring page for the system-info command.
Monitors CPU/Process/JEUS Memory/JEUS JVM information.
Automatically refreshes at 10sec/30sec/1min intervals.
Added a function that inputs comments about modified information when activating domain configuration changes. (<domain>/<description>)
Added the environment file export/import function.
Added the export function, which can download the domain.xml currently viewed by the user in WebAdmin as XML, and the import function, which applies the domain.xml modified by the user. However, the import function can only be used in the lock & edit mode.
Added the file navigation tag
Added a function that can select the system file of the server that WebAdmin is deployed in.
Added the JMS message view function
Added the message view function, which enhances the JSM monitoring function.
Provides the view, edit, import, remove, move, and export functions for messages in the JMS monitoring screen of WebAdmin.
Provides the view, edit, import, remove, move, and export functions for "destination" and the suspend and resume functions for produce/consume.
Provides additional view, remove, move, export, and cluster functions.
When editing, the JMS message view function is only enabled when messageType is "text".
Added the WebAdmin UI access control function, which requires proper authority.
Added a function that restricts access to the WebAdmin UI function by using the role permission configuration.
The URL, main menu, and sitemap are in the access control list. Depending on the permission type, a part of the main menu can be omitted when logging in.
Added Async Thread Monitoring.
Added the async thread monitoring function to WebAdmin.
Added the JAX-RS related function
Added a function that can expose EJB, which uses local interfaces by using JAX-RS, as RESTful View.
Added a function that can expose no-interface EJB as RESTful view by using JAX-RS.
Added a function that can use @javax.ejb.EJB injection in JAX-RS Resource.
Added the Maven plugin support function
Added a function that can execute the wsimport and wsgen commands, which are JAX-WS tools, by using the Maven plugin.
Added the Asychronous Web Services support function, which is based on Servlet 3.0 Asynchronous Servlet.
This section describes the module-specific changes of JEUS.
Supports EJB and EAR graceful redeployment
Bind/lookup of global ENV and Bean by application type are possible.
For a client that has a stub for the old EJB, after redeployment is completed, the client carries a stub for the new EJB and operates it.
The default undeploy method is now graceful undeploy.
Modified the backup file management policy of domain.xml.
The backup file created in the same location as domain.xml was modified to be written under the ".history" directory.
The backup file name was changed from "domain_yyyymmdd.xml" to "domain_yyyymmdd_HHMMSS.xml".
Added a function that can limit the number of backup files.
The function is only configured in DAS. It is configured as a system property like "jeus.server.configfile.backup.size=50".
Improved the application resynchronization function
Added a function that redeploys a deployed application modified after deployment. (This function operates when the mode of MS changes from INDEPENDENT to DEPENDENT.)
When resynchronizing applications, the files of failed applications, applications whose state is changed, and previously deployed applications are resynchronized.
Added a function that can insert the -vcompat option when executing IIOP rmic.
When "-Djeus.ejb.compiler.rmic.vcompat=true", the -vcompat option is added when compiled.
Added TIBERO to the DB vendor type.
Added the TIBERO jeus-ejb-dd vendor type.
Only datasources registered in a cluster can be used when a server belongs to the cluster.
Modified so that when a server is belongs in a cluster, the datasource configuration is ignored and only configured datasources are used in the cluster to which the server belongs.
When leaving a cluster, the datasource configuration in the cluster is ignored. Only the datasource configuration in the server is used.
Modified the default binding configuration for when datasources are configured.
The default binding configuration was changed from Remote Bind to Local Bind in the target server.
When "System Property jeus.jdbc.data-source-local-binding=false" is configured, the datasource can be remote bound by default.
JDBC/JCA connection pools are internally managed in group units.
Modified so that JDBC connection pools in the same server are managed by a group containing different IDs and passwords.
Added a function that efficiently adjusts/manages the connection pool count according to the connection usage by groups.
Modified the selector AOI of the cluster datasource and operation method.
Used an interface to newly define the DataSource Selector API.
If DataSourceSelector is used and during failover, JEUS does not select the datasource itself but instead uses the datasource selected in the DataSourceSelector.
Improved the JMS failover function.
JMS Failover is improved to "n by m Active-Standby Failover".
Dedicated Active-Standby Failover method is improved to "n by m" form.
Active-Active failover is performed when m=0.
Improved the ClusterManager lock
When creating a connection to and operating JNDI, the server connecting to JNDI must be checked whether it failed. At this time, Synchronized is configured for all methods that are in use, which locks all servers. This bug is fixed.
Added a logic that verifies the key size when SSL Handshake is executed for AES_128_CBC and AES_256_CBC cipher suite.
start-domain, start-cluster, stop-domain, and stop-cluster commands can operate concurrently.
Only the modified application can receive file transfers during boot-time deployment.
Modifed the tx-log-dir default path
The lowest level path of the <tm-config>/<tx-log-dir> configuration has been changed from txlog to tmlog (from ${SERVER_HOME}/.workspace/txlog to ${SERVER_HOME}/.workspace/tmlog.)
${SERVER_HOME}/.workspace/tmlog is a string, not an environment variable. Therefore, it is a reserved word, not an actual path.
To record tmlog in a user-specified directory, the directory must be specified using a full path (e.g., /home/jeus/tmlog).
ResourceServlet can be used in Spring mvc:default-servlet-handler.
jeus.serblet.servlets.ResourceServlet (default servlet that replaced WorkerServlet) can be configured to default-servlet-name in Spring mvc:default-servlet-handler.
Changed the default value of Servlet Async Processing Timeout to 30 seconds.
Async processing is the period for which AsyncServlet runs. If AsyncServlet is not terminated within this time, the thread is terminated.
Added the options (dsocket, wbhome, ipcport) related to the Doman Socket to the add-webtob-connector commands.
The <scheme> tag, which was unnecessarily configured in the Web Listener configuration, is removed.
Improved the processing method of the request processing queue for HTTP, TCP, and AJP listeners when NIO is used.
When NIO (use-nio=true) is used, if the request processing queue is full in HTTP, TCP, and AJP listeners, the connection is closed and WARNING level messages are recorded in the server log.
Removed the keep-alive configuration for HTTP Listener.
The keep-alive configuration of the HTTP Listener was replaced with the connection-type configuration.
Added the period setting function, which checks stuck threads.
Added the period setting function, which checks stuck threads. The function is configured under <server>/<system-thread-pool>, and the default value is 5 minutes.
Removed the "max-wait-queue" and "step" configurations, which depend on the thread pool implementations used in the web container.
Added a configuration that allows dynamic changes in the web engine.
Items can be dynamically added and deleted in a virtual host.
The host name of the virtual host can be dynamically added and deleted (displays a warning message that states that 404 error can occur when deleted).
Extended the web-connections dynamic configuration changes (for tcp and tmax, dynamic changes are only possible when dispatch-config-class can be loaded).
For web-engine configurations, the number of configurations that can be dynamically changed is increased.
New web connections (excluding TCP listener and the Tmax connector).
Modified the minimum and maximum number of the threads in the thread pool of the web listener.
Modified the monitoring cycle of the web engine.
Changed the accesslog on/off and the log format of the web engine.
Supports the AJP13 SSL attribute.
If the export configuration of the client certificate, such as Apache and modjk, is configured, information, such as the client certificate and SSL Cipher, can be received through JEUS.
Deleted the use-pipe configuration from webtob-connector configurations.
The use-pipe configuration, a webtob-connector configuration, was deleted. (If the domain-socket-address configuration exists, PIPE is used.)
JSP files can be compiled in memory (in-memory jsp compilation).
Modified so that when a JSP must be compiled, ".java" and ".class" files are not created in the service thread, instead, JSP files are created as a class in memory.
".java" and ".class" files are written in the file system by using the background thread. However, when ".java" fails to compile a JSP file, the .java file is written on the file system by using the service thread.
Added a function that adds "connection: keep-alive" to the header when responding to a specific error status
If a status code is added to the <keep-alive-error-response-codes> tag of jeus-web-dd.xml by separating it with a comma, it responds to the configured status code with "connection:keep-alive".
long type content-length is used to support data transfers of over 2GB.
Content length of the int type is supported in the servlet standard. When the content-length header is set in the servlet, data of over 2GB in size cannot be configured.
The content-length configuration was modified to allow data of over 2GB in size to be transmitted.
Command option errors are recorded to logs.
When invalid option values are inputted in session-related commands, the commands are regarded as command exceptions and the exception is recorded to a log to indicate that the input value was ignored.
The delay from when the session manager fails to when the backup table is reconstructed can be configured.
After the session manager fails, by setting the delay time for re-creating the backup table, the time required to restart the server is minimized.
failover-delay and restart-delay in the cluster are configured in seconds.
The server control command is performed as a server list.
Server management control commands, such as start-server and stop-server, are performed on a large number of servers in a server list format.
The start/stop/dump/gc/meminfo/resume/suspend commands are performed concurrently on the MSs in a list format.
Improved the jeusadmin one-step command.
When the jeusadmin one-step command is used, a multiple commands can be executed at once.
A list of commands can be executed at once by listing each command and separating each with a semi-colon (;), and then wrapping all the commands with (" ") quotation marks. The commands must be listed after the login information of jeusadmin.
(E.g., jeusadmin -u jeus -p jeus "serverinfo;help deploy-Application" )
Modified the timeout processing method when propagating OTS transactions.
If -Djeus.tm.propagation.recalculated-timeout=true is configured when an OTS transaction is propagated, the active-timeout period is reduced the period spent on propagating the transaction, and then propagated.
For backward compatibility, the default value is false.
java:comp/UserTransaction can be called by a different name (java:/UserTransaction), like WAS (Web Application Servers), and allows the existing name to be called in the client.
Multiple applications can use application managment functions.
Multiple applications can use the application management functions.
start/stop/deploy/undeploy/install/uninstall are the commands that can be applied to multiple applications. In the INSTALLED state, other applications in the INSTALLED state can be simultaneously selected, but applications in a different state cannot.
Improved UI usability when configuring data sources
When configuring a datasource in WebAdmin, options are specified instead of directly inputting various information.
The following section describes the bug fixes in each module.
Fixed: When rolling back to an old application after Graceful Redeployment, the application path is not changed. When the server reboots, that path still points to the application before the rollback.
The application path is restored when rolling back after Graceful Redeployment.
When Graceful Redeploy is performed, the application path to the application information of domain.xml is changed to the new application, and the path is modified to point to the old path so the old application can be executed.
Fixed: Web application statistics cannot be checked after Graceful Redeploy.
When undeploying an old application after Graceful Redeployment, even when checking through the st-r command in jeusadmin, application information is not displayed. This bug is fixed.
Fixed: During EJB deployment, some of the classes required in the jar file for view are not included.
During EJB deployment, some of the classes (especially IIOP-related classes) required in the jar file for view are not included. This bug is fixed.
If the EJB 2.x based deployment is successful, only home, remote interface, and RMI stubs are generated. However _IIOP Class and Tie Class for IIOP communication are required (in JEUS 5, these classes were properly included).
When "System Property jeus.ejb.compiler.rmic.enable=true", rmic is runs like previously, and sub related classes are generated.
Fixed: The dynamic configuration changes of the web engine are not updated in the runtime configuration information of the server.
The dynamic configuration changes (thread min, max, etc.) of the web enginer were not updated in the runtime information. This bug is fixed.
Context path properties sent with requests from WebtoB are ignored.
Sending context path properties with requests from WebtoB to JEUS create problems when pages are called. The context path properties sent requests from WebtoB are now ignored (modified to operate in the same away as JEUS 6.0).
Fixed: In the default servlet (ResourceServlet), file names with whitespace cannot be serviced.
Fixed: When an application status is STOP, an error page is not displayed and NPE occurs.
When an application status is STOP, if there is a configured error page, the error page must be displayed. If no error page is configured, the 503 error page must be displayed. However, the error page was not displayed and NPE occurred. This bug is fixed.
Fixed: read-timeout of the server listener in the web listener is not correctly applied.
When the postdata-read-timout value is configured, the existing read-timeout value is modified to the configured postdata-read-timeout value. After the requests ends, read-timeout value was supposed to be restored to its original value, but was not. This bug is fixed.
Fixed: ServletResponse.getCharacterEncoding() is not returned to ISO-8859-1 by default.
When the character encoding is not configured, ServletResponse.getCharacterEncoding() not returns ISO-8859-1.
Fixed: postdata-read-timeout of the http-listener is not applied.
Fixed: ServletRequest.getRemotePort() implementation bug of AJP13 and WebtoB.
A regular remote port now returns the value ServletRequest.getRemotePort() previously returned (-1).
Fixed: Servlet Event Listener XXXDestroyed event bug
Destroy Event of ServletContextListener, ServletRequestListener, and HttpSessionListener now occur in reverse order to match the specification.
Supplements the max-keep-alive-request support in the HTTP Listener
When the HTTP listener is using blocking I/O, a client monopolizes the HTTP thread, which prevents requests from being processed. The maximum request count is restricted to prevent this bug.
Fixed: The active timeout of the configuration value is not applied when TX is propagated to the OTS resource.
When the OTS transaction is propagated, instead of the active-timeout value configured in domain.xml, the default value (10 min) is applied.
Fixed: The jaxrpc-mapping file is not generated in the java2wsdl tool.
The axrpc-mapping file (mapping.xml) is not generated when running java2wsdl using Ant in the Linux environment. This bug is fixed.
Fixed: Message serialization is corrupted because it is performed a second time.
The client handler does not operate normally after message serialization becomes corrupted when WebService log is set to FINEST.
Fixed: Service Endpoint Address bug in EJB-based JAX-WS.
The context of the service endpoint address is not modified through the jeus-webservices-dd.xml configuration. This bug is fixed.
Fixed: CDI-managed bean instances are disabled in the web module.
CDI-managed bean instances (annotation), such as @Inject, are disabled in the web module. This bug is fixed.
Prevents duplicate annotation search in Runtime.
When annotation processing is required in Runtime, duplicate annotation search is not executed.