Table of Contents
This chapter describes the new functions and the changes made to JEUS v7.0 Fix #4.
This section describes the new functions of JEUS.
Added function to first load the library that exists in an EAR application for application deployment.
In the previous versions, the library that exists in an EAR application was loaded lastly.
Set the <classloading><local-lib-first> tag of jeus-application-dd.xml of the EAR application to true.
Added function to include a parent directory to create an application name. This would help to escape duplicated application names.
From Java EE 6, an application file name is used by default if an application name is not specified in jeus-web-dd.xml. In this case, application names might be duplicated and they are allowed to be changed.
In previous versions, an error occurs if two or more same application names were used. JEUS Fix #4 has been modified to include the directory of an application in application names, which would avoid duplicate directory names. However, since only the names of the directories that go up one level from the path will be used ,duplicate application names might be generated if applications are included in the same directory.
Added function to show the status of servers on which each application runs by using the application-info command
Added function to display the status of server on which each application runs by adding the stateperserver(sps) option to the application-info command.
If the server status cannot be displayed with some reasons, the status will be displayed as NO_STATE.
Added function to send a backed up domain file to another node using the backup domain command
In previous versions, backed up domain files are only stored locally so they need to be moved to another node manually if necessary. In JEUS Fix #4, a nodename can be specified when executing the backup domain command in order to send a backed up file to a desired node.
Added function to set an option when executing the unpack-domain command.
Added the -dasurl, -nodename, and -nodeurl options of the unpack-domain command.
In the existing version, das listen address, node name, and node manager listen address must be entered in the command. The function that can execute those options at a time has been added.
All the options must be set in the command to execute them in one step successfully.
Added function to set -force option for the unpack-domain command via jeusadmin.
In previous versions, unpack-domain fails if a domain exists. In JEUS Fix #4, the -force option was added to execute unpack-domain even if a domain exists.
The existing domain directory will be removed if -force option is used.
Added log-home setting that applies all servers included in a domain
Added XA affinity for cluster data sources
Added function to select datasources from a single RAC instance when processing a global transaction. Performance is improved when data sources are not selected from physically distributed RAC instances.
When XA affinity is set, failover, failback, and load balancing methods are ignored, and datasources are selected from any of RAC instances bound within an XA transaction. If there is no datasource to select from the XA transaction range, data sources will be selected according to the existing mechanism.
Improved checking of JMS message type
Added function to check message type by adding a property. In previous versions, only instance is used to chek the type of JMS messages.
The property name used to check message type is JMS_JEUS_MESSAGE_TYPE. The message is returned as a string, which includes byte, map, object, stream, text, file, message group, and empty. Abnormal messages are displayed as unknown.
Added function to check for communication error between servers in a Windows environment
When a LAN cable is removed in a Windows environment, it may take long time to check whether servers communicate because IOException does not occur for a long time.
Added configuration to check whether MSs communicate by using ping in JMX.
-Djeus.jmx.ping.period, jeus.jmx.ping.timeout
Asynchronous logging that improves performance
Added asynchronous logging that uses a logger thread to process logs instead of a worker thread. This is to improve processing performance.
Added function to process an access logger even when the buffer is full. This function is only valid when asynchronous logging is used.
Only applicable for file handlers. Added jeus.logging.useAsync=true and jeus.access.logging.skip.when.busy=true options.
JEUS network library manual
Provides JEUS network library manuals in a javadoc.
Can be accessed from ${JEUS_HOME}/docs/api/jeus-network.
Added function to set a specific protocol for using SSL
Added function to set a protocol for using SSL.
Added function to use a specific protocol due to the security issue with the SSLv3 protocol.
The protocols to use can be separated using a commas(,) and registered in jeus.net.ssl.protocolVersions property.
Added function to use a properties file in an SSL client
Added function to use a properties file in an SSL client.
Configures a separate properties file to create an SSL context instead of using a system property. A path to the file is specified in the system property in order to retreive the configuration.
Added function to replicate node manager
Added function to start a backup node manager that will run on behalf of an abnormally terminated node manager.
In JEUS Fix #4, when a node manager is booted, a new thread is created, and a child node manager process is started as a standby, and a listener to communicate with the child process is created.
A node manager performs a heartbeat check for the standby node manager by communicating with the created listener. If this check fails, the standaby node manager plays the role of the existing node manager.
Added function to gracefully terminate a standby node manager when executing the stopNodeManager command.
If the stopNodeManager command is executed when a standby node manager is set, an active node manager will send the TERMINATE message to a standby node manager. Then, the standby node manager will close the connection with the active node manager and record the logs to terminate.
The active server terminates the standby server when two seconds have passed after transmission of the TERMINATE message.
Added functin to monitor and control RQS processes using a node manager
In previous versions, a node manager only monitors and manages JEUS server processes. In JEUS Fix #4, Tmax RQS processes can be also managed.
This function reads RQS related information files, executes RQS processes and manages those processes using monitoring threads. A node manager communicates with the server to check that an RQS process is running normally, and if connection is closed, it can restart the process.
Added a cloud license
Added a license suitable for the CLOUD platform in order to run JEUS in a CLOUD platform.
When a CLOUD license is used, host name, ip address, and ncpu validation are not checked but only logs are recorded at server startup.
Added function to patch a JEUS Launcher and a JEUS Node Manager separately from a JEUS server
Added function to patch a JEUS Launcher and a JEUS Node Manager separately from a JEUS server.
In previous versions, the patches of JEUS Launcher and JEUS Node manager cannot be distinguished from those of JEUS server.
To eliminate the inconvenience of directly setting a classpath to the file to be patched in the jeus.properties file, JEUS Launcher and JEUS Node Manager can be patched separately from JEUS server.
The prefix of a patch file used to patch JEUS Launcher is jlext, and the prefix of a patch file used to patch JEUS Node Manager is jnext. The patch file is stored in $JEUS_HOME/lib/system, $JEUS_HOME/lib/jnext, $JEUS_HOME/jlext
Added function to load uncompress a jar library into the autoExploaded directory
Added function to uncompress a jar library to the autoExploaded directory in order to load it.
An error such as 'class not found' occurs when a jar file that was loaded through Classloader is replaced with a new file during runtime. To avoid such problem, in JEUS Fix #4, a jar file is uncompressed into a temporary directory and then a class is loaded.
The following option sets a directory to store a jar file to be uncompressed.
-Djeus.classloader.append.dirs.autoexplode (Default value: /.workspace/autoExploded)
Added debug and verbose options into the stopServer script
The debug and verbose options were added to view the error messages and contents displayed when a server is shut down.
Added the cachelogin function to the stopServer, startDomainAdminServerNM script
Added function to read a username and password from cache in order to shut down DAS using NodeManager.
Added function to start a username and password from cache in order to start DAS (startDomainAdminServerNM) using NodeManager.
Added function to show session information based on idle time
Added the list-session command to show session information based on idle time.
Sessions are sorted based on the time that the server is last accessed. Distributed sessions are displayed along with the list of the passivated sessions.
Added function to remove the sessions that have expired
Added the remove-session(rmsession, rms) command to remove the sessions that expired after a particular time in minute.
Passviated sessions are also removed when this command is run.
Added function to change the login manager setting using jeusadmin
Added function to additionally change the login manager setting through jeusadmin.
Added the lmp and lms options to the modify-session-configuration command.
Added the maximum session count
Added function to apply the maximum session count to applications.
In previous versions, OOM may occur because there is no function to control and manage session creation.
In JEUS Fix #4, the number of maximum sessions maintained in applications is set to avoid OOM occurence. Sessions are no longer created if the maximum number of sesions is reached.
Added function not to perform migration while a session server maintains a session with another server.
This function prevents that a session is lost when the session is simultaneously requested for through iframe. However, this feature continues to update the current status, which have a negative impact on server performance.
Added function to show session cluster names using the appinfo -detail command
Session manager's failback function
Added option to recover a session from a backup server.
A session is not recovered from a backup by default. However, this option is supported to prevent the lost of a session for sequential patch operations. This option is set as shown below.
-Djeus.sessionmanager.failback.allow=true
Added the script mode in jeusadmin
Added the script mode that invokes a sequence of commands by reading a script file.
Python and ruby are supported script languages.
For more information, refer to JEUS Reference Book. "4.2.18. How to Use Script Mode and How to Write Scripts".
Added function to use argv for the jeusadmin -script option
Function to add argv in a script when it is enclosed by double quotes ("") along with the script file name.
For more information, refer to JEUS Reference Book. "4.2.18. How to Use Script Mode and How to Write Scripts".
Added function to record commands in jeusadmin
Added commands (start-record / stop-record) to store a command that was entered using jeusadmin in a script .
*.py and *.rb are supported extensions.
In JEUS Fix #4, the result of a script is displayed the same as console output.
Fore more information, refer to JEUS Reference Book. "4.2.18. How to Use Script Mode and How to Write Scripts"
Added function to modify domain.xml using jeusadmin
For more information, refer to JEUS Reference Book. "4.2.16. Configuration Editing Commands".
Added the set-servers-option and unset-servers-option commands using jeusadmin
This function is similar to set-server-option. Added function to set multiple targets of specific command.
Added function to filter thread status shown in the Monitoring/Thread page.
Added button to activate the all, active, idle, blocked, reconn filters at the right top of the screen. The activated option is maintained for the specified session scope.
A WebAdmin page is moved to the intial page after it is refreshed
Added function to place the current WebAdmin page when the Monitoring, Thread, or Backup pages are refreshed.
Added function to configure WebAdmin permissions using a console command
In previous versions, WebAdmin grants permission to access all functions of the user interface depending on the role.
However, it is not allowed to specify console-level configuration, which is deployment and undeployment of servers.
In JEUS Fix #4, users are granted a permission to deploy or undeploy servers using a console command.
-Djeus.tool.webadmin.use.console.permission=true
To use this function, permissions must be granted on every command available in the user interface.
Added function to set lifecycle invocation in domains and clusters
Lifecycle invocation is a function that specifies a method to run according to lifecycle of a server. In previous versions, this function can be only configured in servers. In fix 4, this function can be executed to start all servers that belong to a domain or cluster.
Added function to group servers as a node, group, or cluster in the Servers and Monitoring/Servers page
Server group types and server groups are specified in WebAdmin configuration page, and they can be changed using the no group, node, group, and cluster buttons.
Added option to set metadata-complete=true in web.xml to deploy a WebApp
All applications can use the metadata-complete = true setting in web.xml in order not to use the annotations defined in the JavaEE standards. In JEUS Fix #4, metadata-complete can be forced to enable regardless of the configuration.
-Djeus.servlet.useMetadataCompleteDeploy=true
Added exception package for webinf-first
Added function that does not apply webinf-first for specific packages by adding excluded-package in jeus-web-dd.xml.
This function prevents an error that may occur if a class of the WebApp library that will be used through webinf-first is already defined in the bootstrap classloader or its parent classloader.
Added the gzip compression function used for responding to WebEngine
WebEngine(http-listener, webtob-connector) provides the compression function of response messages.
For more information, refer to JEUS Web Engine Guide. "2.3. Configuring Web Connections".
Added function to set ports for each virtual host as well as hostnames
Added function to set ports for each vhost when vhosts have the same hostname and context path so that each vhost can service to different Apps.
Added function to use sendfile(FileChannel.transferTo) in ResourceServlet
Added function to efficiently handle GET requests. This is applicable only when use-nio=true is set and SSL is enabled. The <resource-servlet><sendfile-size-threshold> option is additionally set in jeus-web-dd.xml.
Added function to set URL encoding of request parameters
Added function to use the specified character encoding of a request parameter.
Added function to show the jeus-web-dd.xml configuration using the appinfo -detail command of jeusadmin
Added function to show the contents of jeus-web-dd.xml with the appinfo -detail command so that the settings of the jeus-web-dd.xml file of a packaged application can be easily viewed.
Added option to use message logging in client side
The following setting is required to use a system property.
-Djeus.webservices.jaxrpc.client.transport.http.soap.verbose=true
The following setting
jeus.webservices.jaxrpc.client.level=FINEST
or
jeus.webservices.jaxrpc.client.ClientTransportFactory.level=FINEST
is required to use a logging.properties file.
WebSocket 1.1 support
Added function to provide HttpServletRequest information that was not provided by javax.websocket.Session using a property starting with jeus.websocket
In previous versions, javax.websocket.Session provides HttpServletRequest information that includes request URI, query string, and user(security) through APIs. But, remoteXXX API that includes client information is not provided.
In JEUS Fix #4, remoteXXX API is supported through UserProperties Map(Session.getUserProperties()).
Added WebSocket extension negotiation
Added function to run javax.websocket.server.ServerEndpointConfig#getExtensions() and javax.websocket.server.ServerEndpointConfig.Configurator#getNegotiatedExtensions() APIs.
This section describes the changes made to JEUS by module.
Fixed: JavaSE ORB is automatically enabled when Interop setting exists
JEUS defines that it does not use RMI/IIOP when Interopt setting does not exist. In JEUS Fix 4#, JavaSE ORB is no longer automatically enabled in this condition.
The bug is fixed.
Fixed: Issue regarding unnecessary warning message that occurs if the last modification time is updated when a JEUS file is compressed or uncompressed by the pack/unpack-domain command.
In JEUS Fix #4, last modified time (LMT) is maintained to prevent such error.
Fixed: Targets of the uninstall-jeus command
In JEUS Fix #4, the uninstall-jeus command does not uninstall DAS nodes.
Fixed: Connection management policy at check-query period
If 'all connection mode' has a problem when checking connections using check-query period, the check-query will be executed for all idle connections contained in a pool. This will cause hang.
To avoid such problem in JEUS Fix #4, connections in a connection pool will be checked individually only if they have different generation values. The connections with the current generation value will be discarded only if they failed to be checked sequentially.
Fixed: Processing of the messages whose destinations do not exist
The messages which do not have a destination are moved to DLQ.
Fixed: JMS messages may be deleted by the deletion of a destination
Before deleting a destination, JEUS checks if remaining messages exist and if they exist, the messages are displayed.
If remining messages exist when deleting a destination, JEUS informs that the configuration changes must be left in a pending state and the messages must be handled properly before the server restarts.
Fixed: JMS engine service in DB error
If a DB connection has a problem when using persistence store, JMS engine is suspended. When the DB connection is recovered, JMS engine is resumed to provide the service.
Fixed: Patch support
In JEUS Fix #4, rolling patch and the patch directory newly added by the patch-info command are included.
jlex which is a JEUS Launcher patch and jnext folder which is a node manager patch are also supported besides jext folder, which is an existing patch.
Fixed: A server and a Node Manager use the security.key file of the same location
A server and a Node Manager use the security.key files that exist in different location. The security.key file is used to encrypt or decrypt a password.
The security.key file may be deleted when DAS and configuration file are synchronized.
The security. key file used by a node manager is created in $JEUS_HOME/nodemanager.
Fixed: A JEUS Node Manager is set in a property file
In JEUS Fix #4, JEUS Node Manager is set in $JEUS_HOME/nodemanager/jeusnm.properties of jeusnm.xml.
Fixed: A configuration file supported with the stopNodeManager command
stopNodeManager can use an xml or properties file using the -op option.
Fxied: Server startup status is displayed abnormally
In previous versions, when a MS is started using the startserver command, STANDBY is shown in serverinfo. This bug is fixed.
Fixed: Dump files that are recorded when using memorymonitor property
Heap dump is recorded according to the jeus.server.memorymonitor setting, and log files are also recorded in a log file along with a thread dump when an MS is forcibly restarted.
Fixed: GC log file name
If the -Xloggc option for Oracle and the-Xverbosegclog option for IBM are set to start JEUS, time stamp is automatically appended to the name of a newly created gclog file.
HP supports a function to append time stamp.
Fixed: When Java mail resource is set, the mail server to connect to is set using a property. In this case, a password needs to be passed in clide code because it is not defined in the standard property.
In JEUS Fix #4, a password can be set in a property.
Fixed: The file whose JVM log is less than 20KB is deleted and newly created.
Log rotation is performed when JEUS assumes that thread dump would exist if jvm.log file is greater than 20KB.
In JEUS Fix #4, jvm.log rotation is performed even if the file size is less than 20KB.
Fixed: Improvement of the jeusadmin cachelogin function
In previous versions, login information is stored in a file only when -u and -p options are set to use cachelogin. In JEUS Fix #4, login information can be stored in a file without those options.
Fixed: Patch information inquiry
Added function to show patch conntents in the patch information shown by the system-info command.
Added the -Djeus.tool.console.patchinfo=false option that can disable the patch information shown when executing jeusadmin.
The above option is set in a jeusadmin script.
Fixed: Sessions are removed when setMaxInactiveInterval() is set to 0
Sessions are not removed when setMaxInactiveInterval() is set to 0 to maintain compatibility.
The jeus.servlet.session.invalidateBySetMaxInactiveIntervalZero setting is provided for the compatibility with lower versions.
Fixed: WebAdmin performance
Greatly improved the time to delete multiple servers at a time.
Improved the time to display server information when multiple servers are registered.
In previous versions, the current status is copied every time servers are copied. In JEUS Fix # 4, the current status is only stored once to copy multiple servers.
Fixed: It is checked if there is any server that has the same name and port to copy a server.
In JEUS Fix #4, to copy a server, it is checked if there is any server that has the same name in the entire servers and if there is any server that has the same port among the servers within a node. If a server is copied to another node, the server is assigned with the port of the target node.
Fixed: Users are allowed to search a menu in WebAdmin page
Fixed: Added cache function for the search window of the WebAdmin page
Added the cache function for the search window of the WebAdmin page
The status and configuration changes made after the search function is enabled will not be applied. Those changes can be applied after the cache is initialized.
Fixed: A new request is made before the current request is completed
The entire WebAdmin screen is blocked to prevent a problem that occurs when a new request is made through the [OK] button before the current request is finished.
Fixed: WebAdmin operation is affected by a user's input during the initialization of a WebAdmin page
User's input is blocked while initializing a WebAdmin if it takes long time.
Fixed: Added function to delete multiple servers at a time
Fixed: Improved WebAdmin table sorting performance
Sorted data are sent by a server to display sorted tables in WebAdmin.
In the Servers screen, adminServer is displays regardless of the sorting order. However, users are no longer to use the function that lists items in ascending or descending order by clicking the first line of the table.
Fixed: The current display of a target server in the Deploy screen
The current status of a target server is also displayed in the Deploy screen.
The status of a server that belongs to a cluster is not displayed when the cluster is set as target.
Fixed: Encoding of a Java file created from a JSP file
The encoding of a Java file created from a JSP file is the same as that of the JSP file.
jsp-engine/compile-encoding value is no longer referenced.
Fixed: The use-nio option of tmax-connector
The threads that belong to tmax-connector plays a role of Tmax worker, and the I/O tasks are performed by Tmax. Therefore, the use-nio setting of JEUS is unnecessary and the related functions and options were deleted.
Fixed: The Set-Cookie format
A colon character (;) is followed by an SP when appending an attribute according to the RFC 6265 specification.
A colon character (;) is not followed by a space character if jeus.servlet.followRFC6265SetCookieFormat=false is set as a system property.
Fixed: Uppercase and lowercase letters in JavaBeans Property Accessor method
In previous versions, when JavaBeans properties with same name and different type are mapped to variables, a compilation error occurs because uppercase and lowercase letters are not distinguished. This bug is fixed.
Fixed: Xsd:anyType for JAX-RPC applications
JAX-RPC applications can use xsd:anyType to perform mappings of a jax-rpc input mapping file.
Fixed: Deployment fails due to duplicate tie and stub class names when the noDataBinding option is set
In previous versions, deployment fails because duplicate tie and sub class names are created if the same port type is used for WSDLs.
In JEUS Fix #4, a WSDL port name is used to create tie and stub class names instead of WSDL port type.
Fixed: NoDataBinding is not applied when noDataBiding is set for server-side applications
Data binding related files are not created. This bug is fixed.
Fixed: Registration of Metrics MBean fails if WebServiceProviders are not able to be distinguished without using WSDL
Registration of Metrics MBean fails if WebServiceProviders are not able to be distinguished without using WSDL.
In previous versions, when multiple WebServiceProviders are deployed without WSDL, WebServiceProviders cannot be distinguished beause WSDL ports are not found. In this case, the first WebServiceProvider operates normallly but the remaining WebServiceProvider genereate a javax.management.InstanceAlreadyExistsException, which causes Metrics Mebean fail to be registered. This bug is fixed.
This section describes bug patches by module.
Fixed: Deployment fails when the IP address and hostname of a base listener are interchanged.
When checking the locations of each machine to deploy applications, if the IP and Hostname of a machine's base listener are interchanged, the same machine is recognized as different ones.
This happens when the same machine is recognized as different ones due to the wrong address and therefore the same application is deployed again to the same machine.
Fixed: The undeploy-timeout option does not work when the non-graceful redeploy option is performed
In previous versions, the server needs to wait for a request to complete because undeploy-timeout does not work with the non-graceful redeploy command.
Fixed: An exploaded application can be deployed without permission to a directory
In previous versions, JEUS recognizes that an exploded application has been successfully deployed to a directory without permission. However, the deployed application cannot be invoked.
In JEUS Fix #4, permission on the directory is required to deploy archive form of applications. Deployment fails without a permission.
Fixed: Application redeployment in a Windows machine fails due to the failure of file deletion
Windows informs JEUS that a response failed even when the actual file is being deleted. In JEUS Fix #4, regardelss of the response from Windows, reployment is proceeded.
Fixed: Redeloyment fails in an MS for which virtual host is specified
Redeployment fails when two applications with the same context path are deployed to MSs for which different virtual hosts are configured. This bug is fixed.
Fixed: Redeployment is repeated when Auto Deploy is set for exploaded applications
Redeployment is repeated when Auto Deploy is set for exploded applications even if the DD files are not changed.
Fixed: An object that has no primary key is returned from entity bean
When relations are defined for two tables, an object with a table's primary key is stored in the other table because both tables are assumed to have the same data.
If a table does not have data corresponding to the primary key, null is returned instead of an object.
Fixed: DAS tries to make a JMX connection to MS using the existing address even after the MS address is changed
In previous versions, MEJB utility only uses server name as a key to cache JMX connections. If server1 is moved from machine A to machineB, it only makes a connection to machine A. This bug is fixed.
Fixed: OMM may occur when a server is used for a long time without rebooting
In previous versions, the subject delegation function caches AccessControlContext using its subject as key in order to reuse AccessControlContext. However, OMM occurs as cache entries increase. This bug is fixed.
Fixed: Unable to connect to a cos naming server for deployment when a real IP address is set for base listener
When a real IP is set for a base listener, cos naming server also listens using the real IP. If an IIOP-enabled EJB is deployed, a cos naming server cannot be connected via localhost:9740 to perform JNDI binding.
In JEUS Fix #4, a cos naming server is connected through a real IP.
Fixed: An error occurs when creating InitialContexts to another server at booting
When a user logs in to JEUS to perform deployment using a code subject, which is JEUS' system subject, an exception occurs while creating InitialContext to other servers.
This bug is fixed.
Fixed: CPU usage rate increases when reliable multicast is enabled
In previous versions, when reliable multicast is enabled, a sender thread polls the queue with a timeout to check if there is an available message. The timeout value dynamically changes according to the scheduled tasks so the value is always kept small. If a new task is scheduled, the sender thread creates a loop of shorter intervals and CPU usage rates rises upto 100%. This bug is fixed.
Fixed: Socket usage increases when an HTTP listener is used
Sockets increase unnecessarily when HTTP requests are made through an HTTP listener. They are not also closed normally. This bug is fixed.
Fixed: Issues regarding resources to terminate when shutting down the server through WebAdmin
In previous versions, a Node Manager can terminate resources when the server is shut down by receiving the STOP_SERVER message. However, a Node Manager does not terminate resources when the server is shut down through WebAdmin. This bug is fixed.
In previous versions, a Node Manager starts a server without applying previous configuration changes. This bug is fixed.
Fixed: System properties are not applied for the SSL options of the stopNodeManager command
System properties are applied for the SSL option of the stopNodeManager command.
SSL related settings are configured using the following methods.
Setting a property file by using the p option of stopNodeManage
Setting the t, ts, and tsp options of stopNodeManager
Setting system properties using the stopNodeManager script
Fixed: File transmission and deletion are suspended when an error occurs during the the operations by apply-patch and remove-patch
An error is generated after all tasks related to file transmission and deletion are completed
Fixed: Server restart is attempted even after the serveR has been restarted by serverRetryRestart
In previous versions, if a Node Manager fails to restart a server when serverRetryRestart is set to true, the Node Manager continues to restart the server until it succeeds.
Even after DAS has completed booting of a server that a Node Manager is trying to restart, the Node Manager continues to restart the server. This bug is fixed.
Fixed: JEUS performs j_security_check even if login-config is not set in web.xml
JEUS performs j_security_check even if login-config is not set in web.xml. This bug is fixed.
Fixed: A role is added multiple times when assign-role is executed multiple times
In previous versions, assign-role is executed multiple times through jeusadmin, a role is added to policy.xml only once but the same role is added to WebAdmin as many times as assign-role were executed.
Fixed: Abnormal timeout operation by Graceful Shutdown
Graceful Shutdown waits before forcing a shut down by stop-server. It waits for a timeout value even when the server is not processing any request. This bug is fixed.
Fixed: Backup file size increases when a backup domain is set
In previous versions, If -backupDir is set to a directory under a domain, the backup files are also compressed along with the domain. So the backup file size increases every time that backup is performed. In JEUS fix #4, a domain is compressed without its directories that are used as -backupDir.
Fixed: The timeout option is not applicable for suspend-server
The timeout option does not work this suspend-server in previous versions. This unnecessary option has been deleted.
Fixed: fd leaks occur when a channel remains open after a file is locked
When multiple MSs run on a machine, if server1acquired a lock on a file, server2 tries to acquire a lock for 120 seconds. In this case, the 'too many open files' error may when the channels used to acquire a lock remain open.
Fixed: A file is created in the default folder when log rotation is set in jvm.log
A file is created in the default log home even if they are set to be stored in the server log home. This bug is fixed.
Fixed: CPU are occupied by session backup threads
CPU utilization becomes excessively high while performing reallock to send large-size sessions to network. This bug is fixed.
Fixed: Session backup tables are configured differently for each machine
Backup tables are configured with a hostname and IP address. If they are configured different for each machine, the sessions backup tables are also differently created on each machine. This bug is fixed.
Fixed: WebAdmin connnection fails when lifecycle invocation is set
In previous versions, WebAdmin connection error occurs when lifecycle invocation is set in the state that auto-lock is configured.
This bug is fixed by changing the configuration sequence.
Fixed: Passwords are not encrypted normally if data-source is set in WebAdmin
A password is not encrypted when it is directly entered without using [Input] button in the datasource setting. This bug is fixed.
Fixed: NullPointerException may occur when a 404 error is written in 'access log' file
NPE may occur when a 404 error is logged in the state that the access log format is set to record cookies such as "%{XXX}c". This bug is fixed.
Fixed: Issues related to classpath sequence for JSP compilation
When the webinf-first function is used, the sequence of classpaths becomes different at JSP compilation and class loading. This bug is fixed.
Fixed: A parent directory is allowed to be accessed using a relative path when decodeRequestURI() is called
Important files in the server may be leaked by a URL that indicates the parent directory.
Fixed: ArrayIndexOutOfBoundsException occurs when processing chunked response
Offset calculation may be incorrect depending on the size of the contents to be buffered to process chunked responses. This bug is fixed.
Fixed: Only the first requested ServletContext is called by calling the servlets for which cross-context is dispatched
When Servlet A for Context A that was requested by a client forwards the request to Servlet B for Context B, if Servlet B calls request.startAsync(), AsyncContext of Context B needs to be created. However, Context B file fails to be found because AsyncContext of Context A has been created. This causes a 404 error.
Fixed: ServletRequestListene is not called by calling forwarding or including cross-context
In JEUS Fix #4, ServletRequestListeners are called when cross-contexts are dispatched and included, in order to inform ServletRequestListeners of a start and end of the request.
Fixed: NPE error occurs when deploying applications using JEUS Security Manager
In JEUS Fix #4, NPE error does not occur for deployment if -Djeus.security.enable.default.manager=true is set.
In JEUS Fix #4, a JeusWebDDJaxb object is set in a context object after classloading is performed. In previous versions, deployment fails because an object has not been set for classloading.
Fixed: Content-length is not set normally when using UnlimitedlyBufferedOutputAdaptor
Content-length defaults to 8194 if output-buffer-size=0 is set to use UnlimitedlyBufferedOutputAdaptor.
Fixed: Content-length is initialized when using UnlimitedlyBufferedOutputAdaptor
When output-buffer-size is set to 0 to use UnlimitedlyBufferedOutputAdaptor, the setting is initialized for calls that come next after the first call and chunked response is returned.
Fixed: Added option to determine whether deployment failed by the failure of ServletContextListener
In JEUS Fix #4, it is considered that deployment has failed if ServletException or RuntimeException occurs in Servlet.init() or Filter.init(), or RuntimeException occurs in javax.servlet.ServletContextListener#contextInitialized().
In JEUS Fix #4, deployment is considered to have completed successfully when an exception occurs in load-on-startup Serlvet, Filter, or ServletContextListener if the jeus.servlet.ignoreWebComponentFailureWhenDeploying option is set to true in jeus-web-dd.xml to support compatibility with previous versions.
Fixed: Range header is not applied when the value of If-Range set in the request header uses the http-date format
If-Range value in a request header can be set either in e-tag or http-date format for a resource servlet. JEUS cannot normally parse a If-Range header whose type is http-date. This bug is fixed.
Fixed: A cookie value is lost when an errorpage is forwarded by sendError()
Wen sendErr() is called, the internal buffer is deleted in Java EE 5 whereas cookie values are maintained in Tomcat 6 and Java EE 6. In JEUS Fix #4, cookie values can be maintained for SendErr() calls.
Fixed: Compilation keeps to take pace by JSP calls if jsp-work-dir setting is incorrect
Compilation continues to take place if JSP classfiles are not found when jsp-work-dir and compile-output-dir are different.
Fixed: A welcome file is not included
When a servlet executes RequestDispatcher.include, the servlet is forwarded to a welcome file without considering the situation in the servlet.
Fixed: The problems that occur when using WJPv2
In previous versions, header values and query strings that were sent to WebtoB by WJPv2 are created as a file.encoding object. This bug is fixed by creating header values and query strings as ISO-8859-1.
When a client sends a POST request, if context-type is x-www-from-urlencoded and chunked, the parameter is not processed normally.
An incorrect response message is created when WJPv2 calls response.sendError() for a HEAD request.
A client auth header is not entered for a context attribute to use WJP2.
An incorrect response message is created by response.sendError() if output-buffer-size=0 is set to use WJPv2.
Fixed: Jasper cannot find a jar or TLD file in the file:// format
In previous versions, included TLD files are set in an absolute path like file://. A 'FileNotFound' error occurs when trying to modify the files. This bug is fixed.
Fixed: Uppercase and lowercase letters of a child element name in ComplexType is not distinguished for creating an ObjectBuilder class
In previous versions, only uppercase letters are used to create an index, which is a child element name of an ObjectBuilder class set in ComplexType. In JEUS Fix4#, both uppercase and lowercase letters can be used to create an ObjectBuilder class.