Chapter 2. JEUS 8 Fix#1

Table of Contents

2.1. New Features
2.1.1. CDI
2.1.2. Cloud
2.1.3. Deployment
2.1.4. Installer
2.1.5. IO
2.1.6. JDBC
2.1.7. JMS
2.1.8. Node Manager
2.1.9. SCF
2.1.10. Security
2.1.11. Server
2.1.12. Servlet
2.1.13. Session Server
2.1.14. Tool
2.1.15. Transaction
2.1.16. Webadmin
2.2. Changed Features
2.2.1. Cloud
2.2.2. Deployment
2.2.3. Installer
2.2.4. IO
2.2.5. JBatch
2.2.6. JDBC
2.2.7. JNDI
2.2.8. Node Manager
2.2.9. Security
2.2.10. Server
2.2.11. Servlet
2.2.12. Session Server
2.2.13. Tool
2.2.14. WebAdmin
2.3. Bug Fixes
2.3.1. CDI
2.3.2. Deployment
2.3.3. EJB
2.3.4. IO
2.3.5. JDBC
2.3.6. JMS
2.3.7. Node Manager
2.3.8. Security
2.3.9. Server
2.3.10. Servlet
2.3.11. Session Server
2.3.12. Tool
2.3.13. Transaction
2.3.14. WebAdmin

This chapter briefly describes the new features added to JEUS 8 Fix#1.

2.1. New Features

This chapter describes the new features of JEUS 8 Fix#1.

2.1.1. CDI

  • Support for disabling the scanning of implicit bean archives

    • CDI spec specifies that CDI 1.1 must provide a function to disable the scanning of implicit bean archives for compatibility with CDI 1.0.

    • jeus.cdi.enable-implicit-bean-archive can be configured with system properties. (Default: true)

2.1.2. Cloud

  • Option to view associated cloud servers

    • An option to view associated cloud servers.

    • list-corelated-servers is available in jeusadmin.

  • Introduction of Cloud Support SPI

    • Service Provider Interface(SPI) provided to use Virtual Multicast in a cloud environment.

    • The followings are supported providers.

      • Kubernetes

      • AWS

      • Vcloud

  • Option to implement session server's backup-tables in another node in a cloud environment (Kubernetes)

    • To perform session backups more reliably in a cloud environment, backup tables need to be managed in another node (machine). Kubernetes offers the APIs to view the node that pods run on.

  • Support of cloud server mode

    • Option to enable the cloud server mode in a cloud environment. A cloud license is required to run cloud servers.

  • Cloud licensing for use of cloud functions

    • The features of cloud server only take effect with a cloud license.

2.1.3. Deployment

  • Function to deploy applications to all servers other than DAS

    • When deploying applications, the target can be server list, cluster list, or all servers.

    • DAS is excluded from application deployment service. A function is added to exclude DAS from application deployment by using the system property 'jeus.deploy.exclude.das'. (Default : false)

  • Use of the -upgrade option with deployment commands

    • When upgrading applications by using install-application, deploy-application, or redeploy-application command, the short option name '-u' can be entered instead of -upgrade option.

2.1.4. Installer

  • Support of silent mode installation

    • Function to install a server as silent mode. (only applicable to Linux)

  • function to enter administrator ID, DAS Name, and DAS port

    • Function to enter administrator ID, DAS Name, and DAS port

2.1.5. IO

  • Function to configure SSL for listeners

    • The config-listener-ssl command is added to configure SSL for listeners in jeusadmin.

2.1.6. JDBC

  • Function to issue an email to the administrator in case of JDBC connection leakage

    • Function to receive a notification for JDBC connection leakage if Action On Resource Leak is set to Warning or AutoClose.

  • Function to remove backup component data sources after the primary server is failed back to service

    • In JEUS 6 Fix#8 and earlier versions, backup component data sources are maintained after the primary server is failed back to service. In this release, a function has been added to remove the backup component data sources that remain idle.

  • Function to forcibly close a connection to a data source and return it

    • Function to forcibly close and return a connection in case of DB connection leakage.

  • Function to view the number of active connections with the connection-pool-info command

    • Active Average and Active Max available with connection-pool-info through jeusadmin.

      ItemDescription
      Active AverageAverage number of active connections
      Active MaxMaximum number of concurrent active connections
  • function to log getConnection attempts from an altered DB user

    • When a DB user account is changed while using a connection pool, the server closes the current DB connection to reconnect.

      When this situation often occurs, a user should increase the size of the connection pool and distribute idle connections across DB accounts. However, in previous versions, users cannot figure out the situation because getConnection attempts of an altered DB user were not recorded as logs.

      In this release, logs are displayed as shown below to understand the situation.

      [CPOOL-0025] There is no idle connection for user [user1] in the connection pool [tibero_pool1].
       A new connection was made for user [user1] whereas a single connection for user [user2] has been destroyed." 

  • Use of the -algorithm option with the modify-data-source command

    • -algorithm available with modify-data-source in jeusadmin.

      The following algorithms are applicable.

      • base64

      • DES

      • DESede

      • AES

      • SEED

      • Blowfish

  • Function to return or close a connection in case of DB connection leakage

    • Function to forcibly disconnect or return a connection when DB connection leakage occurs.

      • Return a connection: return-connection

      • Forcibly disconnect : destroy-connection

    • A user must specify the name of the server using a connection. Use -cid(connection id) or -cpid(connection pool id) to specify a connection or connection pool to return or destroy.

  • Function to execute the test-data-source-config command in jeusadmin of MS

    • In previous versions, test-data-source-confi is only available in jeusadmin of DAS. In this release, test-data-source-confi can be executed on MSs. This function makes it possible to connect to a data source when DAS has been shut down.

  • Use of the -all option with the test-data-source-config command

    • Added command to verify whether the data sources in each server are available to connect.

    • Use of - all option to verify whether the data sources in all servers are available to connect.

2.1.7. JMS

  • Support of Topic Message Multicast

    • function to publish topic messages by using UDP multicast.

2.1.8. Node Manager

  • Function to change the max value of the pool size for requests

    • When there is a request from DAS such as start of multiple MSs, the read timeout may occur from DAS such as insufficient thread pools. maxPoolSize has been added to prevent this problem.

    • Specify the system property 'jeus.nm.listener.maxPoolSize' for the startup script of startNodeManager.

  • Function to display running Java processes and its PIDs

    • Function to display running Java processes and its PIDs

    • Set jeus.nodemanager.log.level to 'FINEST' in the startNodeManager script.

  • Use of the -graceful option and the -shutdownTimeout option for shutting down a server with jant

    • Function to use -graceful and -shutdownTimeout to shut down a server with jant.

    • Add the following configuration in build.xml.

      <property name="shutdownTmeout" value="3"/>
      <property name="graceful" value="true"/> 
      <down 
          domainName="${domain.name}"
          serverName="${server.name}"
          host="${host}"
          port="${port}"
          username="${username}"
          password="${password}"
          shutdownTimeout="${shutdownTimeout}"
          graceful="${graceful}"
      />

2.1.9. SCF

  • Command to edit 'System Clustering Framework'

    • Config-system-clustering-framework and show-system-clustering-framework have been added to edit 'System Clustering Framework'.

2.1.10. Security

  • Use of the file path or the -nm option with encryption command

    • Option to specify security.key for the encryption command. Security.key can be specified by using a node manager (-nm) instead of a domain or directly entering security.key file path.

  • Function to view encryption algorithms with encryption command

    • The -algolist option is used with encryption command to view available encryption algorithms.

  • Function to configure login timeout

    • Expire-user and unexpire-user are available in jeusadmin.

      CommandDescription
      expire-userTime period to expire a user.
      unexpire-userDisable the timeout set on a user.
  • Function to display encrypted passwords only

    • - s option is added to display encrypted passwords only.

  • Function to lock an account for consecutive failed login attempts

    • Function to lock an account after consecutive failed login attempts.

      On the Subject Validation page of WebAdmin, set 'Default Subject Validation Service' to true or add jeus.security.subject.validation.maxattempts to jeus.properteis.

    • Not applicable for the accounts that belong to the group of administrators.

  • Inclusion of SHA-256 and SHA-512 in encryption algorithms

    • SHA-256 and SHA-512 have been added to encryption algorithms.

  • Function to change an encryption algorithm

    • In previous versions, a user can only change the password for his/her own account in jeusadmin. In this release, an encryption algorithm can also be changed along with the password.

      set-password user1 {password} -algorithm {algorithm}

2.1.11. Server

  • Function to configure a permission on a log file

    • Function has been added to configure a permission on a log file by using a file handler.

  • Use of the -node option with the pack-domain command

    • Function has been added to back up a domain in a desired node by using -node with pack-domain.

  • Use of the -cachelogin option with the stopServer command

    • Function has been added to enable caching for logins by using -cachelogin when shutting down a server by stopSerer

  • Function to retry deployment when a server has been started in Standby state

    • In previous versions, if an application is not deployed successfully to the server that has been started in Standby state, the state has to be changed to Running with start-server.

    • Function has been added to restart a server to allow deployment if the server has been started in Standby state.

      PropertyDescription
      jeus.server.standby.retrycountRetry times. (Default: 0)
      jeus.server.standby.retryintervalRetry time interval. (Default: 60000(ms))
  • Function to suspend the start of a server for overlapping classes in the patch file

    • Function has been added to suspend the start of a server when overlapping occurs in the patch file.

      PropertyDescription
      jeus.boot.ignorepatchoverlapIgnore overlapping occurrence in a patch file to start the server.
  • Function to wait for certain amount of time after having failed to acquire a lock for configuration

    • Function has been added to wait for certain amount of time instead of immediately throwing an exception after having failed locking on data for dynamic configuration changes.

      PropertyDescription
      jeus.config.lock.timeoutWait timeout (Default: 60000(ms))
      jeus.jmx.worker.maxThread pool for JMX (Default: 20)
  • Function to select the state of a server at its startup in case of life cycle invocation error

    • Option has been added to determine whether to keep a server in Running state at its startup in case that an error occurs while invoking lifecycle.

    • Configure the jeus.server.invocation.keepBootOnError property.

      PropertyDescription
      trueStart in Running state.
      falseStart in Standby state. (Default)
  • Use of the -graceful option and the -shutdownTimout option for server shutdown

    • Function has been added to use -graceful and -shutdownTimout when executing stopServer in jeusadmin or Node Manager to shut down a server.

2.1.12. Servlet

  • Added support for managing Spring as a shared library

    • The spring-support library has been added to JEUS_HOME/lib/shared/spring-support.

  • Use of the -ver, -wbhome, and -ipcport options with the modify-webtob-connector command

    • Function has been added to configure -ver, -wbhome, and -ipcport with modify-webtob-onnector .

    • wjp-version has been added to show-web-engine-configuration.

  • Provision of WebSocket upgrade handler for Spring

    • Websocket upgrade handler is provided as a shared library in lib/shared/spring-support/.

      Register handshakeHandler in the Spring configuration file as shown below.

      <websocket:handlers>
      <websocket:handshake-handler ref="handshakeHandler"/>
      </websocket:handlers><bean id="handshakeHandler" class="jeus.spring.websocket.JeusHandshakeHandler"/>
    • Spring 4.0.0 supporting library has been added.

  • Function to write ServletOutputStream dump to the WebtoB connector response

    • Function has been added to write ServletOutputStream dump to the responses of WebtoB connector.

    • jeus.servlet.engine.response logs are set to be FINEST.

2.1.13. Session Server

  • Function to process a backup session as active session

    • With scale-in processing of virtual servers in a cloud computing environment, upgrade function has been added to reliably manage sessions on server shutdown. This function move a backup session to the primary node to maintain the connection.

    • Add jeus.sessionmanager.cluster.failover.strategy=upgrade as a session property.

  • Function to configure session manager providers at server level

    • In JEUS 8, an option was added to configure session manager providers in domain scope that had been configured at JVM level in earlier versions. However, InfiniCache and various other systems still require JVM settings to use different providers for each JVM. In this release, the jvm-option has been added to avoid this issue.

    • Configure jeus.servlet.sessionmanager.provider property.

2.1.14. Tool

  • Function to configure the -f option in offline jeusadmin to use environment variables

    • Function has been added to configure -f option in offline jeusadmin to use environment variables.

      offline>connect -u administrator -p 1111111 -cachelogin -f $JEUS_HOME/bin -domain jeus8
  • Function to use asterisk(*) in the listener ID for the thread info command

    • A listener ID is specified with -li option to view the ti information in jeusadmin. A function has been added to use asterisk(*) in the listener ID to display the listeners matching the specified character.

      ti -li webtob*

2.1.15. Transaction

  • Support of dirty select

    • A dirty select is available on applications that use IIOP.

    • In previous versions, an application cannot select the data inserted by another application if it has not been committed. A dirty select allows to view the data even if it has not yet been committed.

2.1.16. Webadmin

  • function to use the pack-domain command in WebAdmin

    • Pack-domain is available in WebAdmin.

  • Function to select all data sources specified in the 'Component Data Sources' item of the Cluster DS page

    • Function has been added to select all the data sources of 'Component Data Sources' in the Cluster DS page at once. In previous versions, only one data source is selected at a time.

  • Function to select all data sources specified in the 'Data Source' item

    • Function has been added to select all the data sources of 'Data Source' in [Basic Info] at once. In previous versions, only one data source is selected at a time.

  • License information display at the top of the page in WebAdmin

    • License information is displayed at the top of the page in WebAdmin.

2.2. Changed Features

This section describes changed features by module.

2.2.1. Cloud

  • Removal of commands not available on a cloud server from jeusadmin

    • The following commands are no longer available from jeusadmin if a cloud server is running.

      add-application-target
      add-cluster
      add-custom-resource-to-clusters
      add-data-sources-to-cluster
      add-dynamic-servers
      add-external-resource-to-clusters
      add-server
      add-servers-to-cluster
      add-server-template
      disable-to-resynchronize-applications
      enable-to-resynchronize-applications
      list-clusters
      modify-cluster
      modify-dynamic-servers
      remove-application-target
      remove-cluster
      remove-custom-resource-from-clusters
      remove-data-sources-from-cluster
      remove-external-resource-from-clusters 
      remove-server
      remove-servers-to-cluster
      show-dynamic-servers
      show-server-template
      start-cluster
      start-domain
      start-server
      stop-cluster
      stop-domain
      stop-server
      
  • Removal of the options not available on a cloud server from jeusadmin

    • -cluster and -clusters have been removed from jeusadmin as they are not available on a cloud server.

  • Removal of the options not available on a cloud server from WebAdmin

    • In this release, users are not allowed access any option that is not available on a cloud server if a cloud server is running.

2.2.2. Deployment

  • Restricted file extension types to install an application

    • Only specified file extensions can be used to install an application with install-application through jeusadmin. The applicable extensions are WAR, JAR, EAR and RAR.

  • Modified range to scan modules for EAR deployment

    • JAR files and classes are scanned for deploying EAR files. A function has been added to only scan the modules specified in applicaton.xml if the file exists.

2.2.3. Installer

  • Changed version of embedded WebtoB

    • The version of the embedded WebtoB has been changed to WebtoB 5 SP0 Fix#2.

  • Changed password validity check and encryption method

    • Encryption method has been changed from BASE64 to ASE to enhance the security.

    • The following criteria are used for the validity.

      • Length : 8 characters or more

      • String : Uppercase and lowercase characters, digits, special characters

      • Sequential identical characters : Disallow three or more sequential identical characters

      • Disallow space

      • UserName: User name is not allowed in the password

  • Changed file permissions after installation

    • File and directory permissions have been changed to 700 when installing on Unix systems.

2.2.4. IO

  • Changed port binding time

    • Changed time for the port binding of the listeners other than base listener. In this release, to make engines get ready to service at the same time as port binding occurs, port binding is enabled only after the start of all engines.

2.2.5. JBatch

  • Improved JBatch checking logic

    • Before a user deploys an application, the application is checked to see whether it contains batch jobs. If the application contains many archive files, which can be time consuming, the following files are checked to use batch jobs.

      META-INF/batch.xml
      WEB-INF/classes/META-INF/batch.xml
      META-INF/batch-jobs/*.xml
      WEB-INF/classes/META-INF/batch-jobs/*.xml

2.2.6. JDBC

  • Improved function to check whether it failed to use a connection pool from XA DataSource on clustered servers

    • This function is only supported in Connection Pool DataSource in previous versions, and is now available in XA DataSource.

  • Function to dynamically change user and password in data source configuration

    • In previous versions, it is inconvenient to change database account information because MS has to be restarted. Associated connection pools are refreshed after the changes are made on the data source configuration.

2.2.7. JNDI

  • Removal of a server from the failed server list when it is removed from the cluster

    • Failed server list contains a list of failed servers. A server is removed from the failed server list when it is removed from the cluster.

2.2.8. Node Manager

  • Changed default value in the Node Manager configuration file

    • Default configuration values in jeusnm.xml has been changed.

      • A node manager may fail to connect to DAS if DAS resides in a remote node. To prevent this problem, the default value of listen host is changed from localhost to 0.0.0.0.

      • logFileName has been added to configure a log file path.

2.2.9. Security

  • Changed cache login usage and configuration

    • .jeuspasswd file for cache logins has been changed as follows.

      domain_name:ID encode(ID:PW)
    • Usage

      • Previous Versions

        ./jeusadmin -domain domain1 -cachelogin
      • Current Version

         ./jeusadmin -domain domain1 -u jeus -cachelogin
    • The location of the security.key file used for cache logins has been changed to JEUS_HOME/bin.

2.2.10. Server

  • Consistent cache login usage

    • The usage of the -cachelogin option becomes consistent across startup/shutdown commands.

      1. Enables cachelogin with -cachelogin

      2. Updates cachelog files with -u and -p options

  • Changed shutdown process of a cluster that contains DAS

    • When shutting down a cluster that contains DAS, DAS is excluded from the shutdown process and remain in Running state.

  • Changed use of the delete-domain command for the server being connected

    • In this release, a user cannot delete the domain of a server by using delete-domain if the server is currently being connected.

  • Changed default path to domain backup files

    • Backup files are created for a domain by using set-domain-backup or pack-domain. The default path to the backup files has been changed from JEUS_HOME/bin to ${JEUS_HOME}/backups.

  • Setting a default value of the host option for the stopServer command

    • Default value '127.0.0.1:9736' has been added for the host option to execute 'stopServer'. This function allows to execute 'stopServer' without specifying the host option.

2.2.11. Servlet

  • Removal of the max-keep-alive-request setting for http-listener

    • The use-nio setting was removed from JEUS 8, and is fixed to operate as true.

    • The max-keep-alive-request setting has been removed as it is only applicable when the use-nio setting is set to false.

  • Changed max-post-size operation

    • The max-post-size setting issues "413 Request Entity Too Large response" if the request body size exceeds its maximum size limit.

    • In this release, the response body is read in chunks. If the content length is known, then a body size of specified size is used to read the response body, issuing the 413 error.

  • Changed page error code in case that there is no included JSP file

    • When there is no included JSP file, a 500 error code will occur instead of 404. All page errors are considered as a code error.

2.2.12. Session Server

  • Changed session backup policy

    • In previous versions, backups are performed regardless of the backup level, which could degrade performance during the backup. This function has been changed to back up to the server specified in the backup level. Therefore, a backup can be performed based on the user-specified values.

  • Improved session search

    • Session searches have been changed into asynchronous operating mode.

    • In a distributed session servers environment, it is necessary to search for a session from all servers. In previous versions, session searches are performed in a synchronously way by connecting to all the servers sequentially. This may cause a severe performance degradation in an environment in which multiple MSs exist. Therefore, session search operation has been changed from synchronous mode to the asynchronous mode to send a query to the servers at once.

2.2.13. Tool

  • Use of localhost as a default value for using the connect command in jeusadmin

    • Localhost is used as a default value for using the connect command in jeusadmin. A user don't need to specify a host.

  • Removal of patch information shown by executing a tool including jeusadmin

    • Patch information is not displayed when executing a tool such as jeusadmin.

    • To display the patch information, edit the 'jeus.properties' file to set the 'jeus.tool.console.patchinfo' system property value in TOOL_OPTION to true.

  • Changed option for the pack-domain command

    • In previous versions, the -f option is used to set dir-path. However, in general, '-f ' means 'force'. This option has been replaced by the -p option.

2.2.14. WebAdmin

  • Validation of file extensions to filter uploads in WebAdmin

    • Function to filter uploading of a file with disallowed extensions in WebAdmin.

  • Menu items set invisible to users with the Monitoring role only

    • In previous versions, users of the Monitoring role cannot access the [Start], [Stop], [Resume], [Suspend], and [GC] buttons of the [Servers] page without the Config role.

    • For users with the Monitoring role only, the Resource Manager, Basic Domain Information, Web Console, and Monitoring menus will become invisible if they don't have a permission.

2.3. Bug Fixes

This chapter briefly describes the bug fixes in JEUS 8 Fix#1.

2.3.1. CDI

  • Redeloyment failure in Windows

    • Redeployment failed if an application using CDI in a Windows environment contained a JAR file in WEB-INF/lib. This bug has been fixed.

  • Changed resources scanning for Web applications deployment

    • The CDI specification defines that it is required to scan only empty archives under the application class path.

      In this release, the changed operation only scans the libraries under WEB-INF/classes and WEB-INF/lib, and those being referenced in other ways.

    • It does not implement unnecessary scans of the files or resources that reside outside WEB-INF, in particular the classes or libraries not being reference.

2.3.2. Deployment

  • JEUS version in the DD file not changed when using the upgrade option

    • Fixed a bug where JEUS version in an application DD file would not change when using the upgrade option with install-application, deploy-application, or redeploy-application command.

  • File path not displayed when an error occurred in an XML file during deployment

    • RuntimeException while attempting to read an XML file for deployment. Fixed a bug where the path information would not be provided.

  • Deployed library not added to the class path for JSP compilation

    • Fixed a bug where a library deployed to JEUS server through Library Deployment would fail to be added to the class path for JSP compilation.

  • Application deployment in directories proceeded without a file permission

    • When an application is deployed a directory, the deployment is succeeded without having a permission on the directory.

      At the first deployment attempt, the user is ensured to have a permission on the directory. However, the following application deployments are proceeded without checking the required permissions on the directory.

      A permission is checked for the first deployment attempt. However, after the deployment succeeds, the permission is not checked for the following deployment attempts even if the permission is changed even

  • Changes on archive modules within the directory of EAR not detected

    • Unable to update an application with the changes to archive modules (JAR, WAR, and so on) in the directory of EAR after the server's reboot. This bug has been fixed.

2.3.3. EJB

  • DLR not updated when deleting a failed node during EJB clustering

    • Fixed a bug where EJB clustering would be performed with a node that was shut down abnormally. This problem occurred because that failed node remained until the entire cluster was rebooted.

  • Failover issue for UnknownHostException occurring during an EJB call

    • After a user removes the information of a node that has been removed from the cluster during EJB clustering, UnknownHostException may occur if the node information still remains in the DLR link. A failover operation did not implement for UnknownHostException. This bug has been fixed.

  • Dynamically deleted node remains in EJB clustering

    • Fixed a bug where EJB clustering would be performed with a node that was shut down abnormally. This problem occurred because that failed node remained until the entire cluster was rebooted.

    • During a dynamic configuration change, DLR dynamically checks its links and removes any server are not currently present in the cluster.

  • Network event processing error on Glassfish Corba Library

    • Fixed to register events in Selector even after an exception occurs on the selector thread.

  • Unclear error message that appears after failing to deploy EJB with 'enable-interop' set to false

    • Fixed an unclear error message when deploying an EJBs that use IIOP and enable-interop element set to false.

  • EJB call failure because there is no serialversionUID to use in other versions of JEUS

    • serialversionUID has been defined in the classes relating to getEJBMetaData, getHomeHandle, and getHandle API, subject to RMI/IOP rules.

  • EJB ActiveManagement operation

    • Fixed a bug where sender id, sender password, and property could not be specified in the Email Notify configuration.

    • Unable to restart an EJB engine properly when the number of blocked threads exceed the value specified in the schema. For this reason, a restart warning message has been added.

    • Fixed wrong statistical values for block threads.

  • Beans not removed with the stateful-timeout element set to 0

    • Fixed a bug in which beans are not removed immediately from the EJB cache if the stateful-timeout and @StatefulTimeout annotation elements are set to 0 in ejb-jar.xml as defined in EJB 3.x specification.

    • The same changes are applied to the disconnect-timeout value in jeus-ejb-dd.xml, which functions the same as stateful-timeout.

2.3.4. IO

  • SSLContext not initialized when there are two or more Key Aliases in the KeyStore

    • Unable to initialize SSLConext when there are more than one Key Alias in the KeyStore. This bug has been fixed.

  • Automated Transaction Recovery not performed

    • Fixed a bug where Automated Transaction Recovery didn't perform well.

    • Fixed a bug where listener would not be released after changing the setting to false.

2.3.5. JDBC

  • Connections unavailable in an RAC environment

    • Unused connections were created in a data source after failback in an RAC environment. This bug has been fixed.

  • Cluster DataSource settings not dynamically changed

    • When a user changed cluster data source setting dynamically in the state that connection pool is unavailable, 'Need to Restart' in serer-info was set to true and a message requiring to restart the server was displayed. This bug has been fixed.

  • Invalid failback operation

    • Fixed a bug where a failback operation would perform even if 'Use Failback' in Cluster DataSource was set to false.

  • Physical connection lost under overloaded state

    • If a logical connection is lost from the server in the overloaded state, the server will check the status of the connection. Fixed a bug where the physical connection would be lost due to timing problems with status check.

  • getConnection failed even if there were idle connections under overloads

    • WaitTimeoutException occurred after a getConnection failure even if there as an idle connection under overloads. This bug has been fixed.

    • Ensures the synchronization by checking whether a thread is eligible to get a connection.

2.3.6. JMS

  • Transaction rollback sent to DLQ

    • Fixed a bug in which a transaction rollback would be sent to DLQ.

  • Unable to get Max Chunk Size due to the changed implementation of Tibero JDBC driver

    • Tibero 5 and later versions implement the changed way of getting Max Chunk Size from JDBC driver. This has been applied to JEUS.

  • Messages from topics not consumed in topic clustering

    • Unable to consume messages from topics during Topic clustering. This bug has been fixed.

  • Message not sent to the temporary destination specified when creating a producer

    • Unable to send messages to the temporary destination specified when creating a producer. A message was successfully routed to the client in the temporary destination, but failed to return due to incorrect connection id set in the destination's routing information. This bug has been fixed.

  • NPE error for the Message Bridge settings

    • Fixed a bug where NPE(NullPointerException) would occur when an invalid value was set for Message Bridge.

  • The amount of messages not reduced even after onMessage closes the consumer

    • Even after OnMessage closed the consumer, the amount of messages were left the same due to the recovered messages. This bug has been fixed.

  • Messages not received when Durable Subscription Message Type was set to JDBC

    • Fixed a bug where messages would not be received if Durable Subscription Message Store was set to JDBC.

  • Only one client ID shown for durable subscription

    • Fixed a bug where only one client ID would be displayed when monitoring the client IDs with the same durable subscriber name.

    • Now, durable subscriptions are now ordered by DurableName. Client ID is used to identify the durable subscriptions with the same DurableName.

  • Message not processed according to Global Order Message

    • The servers in a cluster send and receive messages based on Global Order Message. This information could be lost during message transmission.

      Now, messages are distributed to all servers in a cluster first, and then sequentially processed according to specified Global Order Message.

  • Client limit applied incorrectly

    • Fixed a bug where one more client was connected than the specified client limit.

  • JMS transaction message processing failure

    • Fixed a bug where the server would fail to process an XA transaction message if the message was prepared or committed without an XA end request.

  • XA mode of MessageBridge not operated

    • Fixed a bug where ClassNotFoundException would occur if failing to find the classes of the ClassNotFoundException package when XA mode was enabled.

  • A previously failed server not performed recovery when it has failed again

    • The information of server's failover is shared across other live servers. Due to this information, a previously failed server skipped the recovery operation when it has failed again. This bug has been fixed.

  • Topic not dynamically added to or deleted from dynamic clusters

    • Unable to operate topic with dynamic clusters. This bug has been fixed.

  • NullPointerException occurred when the server was restarted with IP and port settings for the virtual listener

    • Fixed a bug where NullPointerException would occur when a server was restarted by setting up a virtual listener for the service group.

  • Server not asynchronously consumed the messages from clustered queue after it was restarted

    • Unable to asynchronously consume the messages produced from clustered queue after it is restarted. Fixed a bug where onMessage() was not called after the recovery.

  • Network system property relating to the ping command not applied

    • Unable to perform failover, switchover and recovery operations successfully when the server is shut down abnormally. Fixed a bug where jeus.net.ping.enable, jeus.net.ping.period, and jeus.net.ping.timeout settings were not applied in the JMS engine in order to resolve this problem.

2.3.7. Node Manager

  • Patch files located to the wrong directory with the apply-patch command

    • Fixed a bug where all patches would be located in the jext directory when executing the apply-patch command. The jext/jnext/jlext patches must be generated to the relevant directories.

  • Nodas option not operated properly with the apply-patch or remove-patch command

    • Fixed a bug where the nodas option would not work properly by executing apply-patch or remove-patch.

  • Startup of Node Manager failed if the password was encrypted with AES

    • Unable to start up NodeManager as a server if the ID and password of the server are encrypted with AES. This bug has been fixed.

  • Domain-level backup not performed correctly across different operating systems

    • Saved the backup data in the wrong directory when performing a domain-level backup because the various file delimiters are used across the various operating systems. This bug has been fixed.

2.3.8. Security

  • Long deployment time for large amounts of EJBs

    • Fixed a bug where permissions would take a long time when deploying an application that includes a large volume of EJBs.

  • New algorithm not added but overwritten to the security.key file

    • When adding a new algorithm to the security.key file, it was overwritten rather than being added. This bug has been fixed.

  • JEUS not implemented the specification of javax.security.auth.login.Configuration.getAppConfigurationEntry()

    • javax.security.auth.login.Configuration.getAppConfigurationEntry() is called with the name information as a parameter. Fixed a bug where an exception would be thrown instead of null if name was not given in LoginModule information.

2.3.9. Server

  • 'Need to Restart' changed to true when adding a server to a cluster on WebAdmin

    • Fixed a bug where the 'Need to Restart' status would be changed to true when adding a server to a cluster on WebAdmin.

  • Object name displayed in the properties value of external and custom resource

    • An object name was displayed for properties of the add-external-resource, add-custom-resource, modify-external-resource, and modify-custom-resource commands. Now, properties value is displayed.

  • The connect -cachelogin command not operated

    • Fixed a bug where cachelogin would not operate properly when executing connect -cachelogin on jeusadmin in offline.

  • SMTP handler issue

    • Fixed a bug where wrong error message would be received due to incorrect SMTP handler configuration.

    • Unable to specify a subject properly in thread state notify when sending email with SMTP handler. This bug has been fixed.

    • Fixed a bug where a server would not start up when a password in SMTP handler was encrypted.

    • Fixed a bug where a handler would not be added to the logger if 'Send for All Messages' configuration was not set.

  • Domain and file options not enabled in stopServer

    • Unable to use the f option and domain option to run cachelogin with the stopServer command. This bug has been fixed.

  • FileHandler's rotation error

    • Fixed a bug where an incorrect file would be created when RotationDir was set to absolute-path.

    • Fixed a bug where existing file would be overwritten if Log Rotation failed.

  • Custom resource removal failure

    • Fixed a bug where an NPE(NullPointerException) would occur when the remove custom resource was executed.

  • jarscan.properties file not removed when communication happened across Windows and Unix

    • Fixed a bug where jarscan.properties file would not be removed when DAS/MS used different file separators to communicate across Windows/ and Unix.

  • Launcher logs not saved when DAS was started without an option

    • Fixed a bug where launcher logs would not be saved when DAS was started without domain and server options.

  • Lifecycle-invocation item not dynamically configured for Clustering settings

    • Unable to dynamically specify lifecycle-invocation in Cluster settings. This bug has been fixed.

  • LD_LIBRARY_PATH not applicable in a Unix environment

    • Fixed a bug where an SO file would not be applied due to LD_LIBRARY_PATH setting.

  • Special characters used in the create-domain or delete-domain command

    • When creating a domain with create-domain and delete-domain, special characters were used to set the name of the domain. Now a domain name cannot include special characters.

  • SecurityException occurred after logManager.reset() or readConfiguration()

    • When a SecurityException occurred after calling LogManager.reset(), the call was intercepted through JeusLogManager.reset(). This bug has been fixed.

  • Graceful and shutdowntimeout not worked when shutting down a server from jeusadmin or a node manager

    • Fixed a bug where graceful and shutdowntimeout would not work when shutting down a server from jeusadmin or a node manager.

  • OverlappingFileLockException occurred when multiple servers were started

    • Fixed a bug where OverlappingFileLockException occurred while multiple MSs attempting to get a lock on domain.xml files sent from DAS.

  • Formatter-class settings not operated

    • Fixed a bug where the formatter-class settings would not operate when it was set to jeus.util.logging.SimpleMillisFormatter.

  • Thread hang occurred during log rotation

    • Fixed a bug where a thread hang occurred during the log rotation of FileHandler.

  • NoSuchMethodException occurred when changing the smtp-handler setting

    • Fixed a bug where NoSuchMethodException would occur when the smtp-handler setting was dynamically changed.

  • Patch file transmission failure when apply-patch was executed without a file name

    • Fixed a bug where a patch file would not be sent if the file name was not set when executing the apply-patch command.

2.3.10. Servlet

  • Deploying an EJB in the WAR

    • When deploying a Web module, Annotation(@) scanning is performed to check whether an EJB exists.

  • Reverse proxy errors

    • Fixed a bug where certain functions of a reverse proxy would still work even after undeploying applications configured with reverse proxy.

    • Fixed a bug where error-page didn't work after configuring a reverse proxy.

    • Fixed a bug where reverse proxy-enabled cluster didn't work.

    • Fixed a bug where a Korean character was broken in the reverse proxy configuration.

    • Fixed a bug where a request for HTTPS was redirected to HTTP.

    • Fixed a bug where a file was not downloaded from a reverse proxy.

  • Web.xml read to perform JSP parsing when executing appcompiler

    • Fixed a bug where the jsp-config settings in web.xml would not operate when executing the appcompiler.

  • OOM (Out Of Memory) occurred when calling TCP applications through HTTP URL

    • OOM (Out Of Memory) occurred when calling a TCP application through HTTP URL. Now, when a request exceeds the specified Max Post Size of the TCP Listener, the call is logged and closed.

  • WebSocket session status monitoring logic

    • Fixed a bug where a delay or IllegalSateException would occur when the status of the WebSocket sessions were not normally managed.

  • OP_READ removed after reading one request in Listener during sequential request processing

    • Fixed to sequentially process requests without removing OP_READ.

  • asyncSupported not worked when using annotations for a Servlet Filter

    • Fixed a bug where the asyncSupported=true would setting not operate when using a Filter in AsyncServlet.

  • Web-listener description and function

    • Fixed the -tidle option of modify-web-listener.

    • Fixed a bug where the max-idle-time settings were not changed according to -tidle.

    • Fixed the description of the add-web-listener option.

    • Fixed the description for the - tmin Tmax settings and the options of ajp and tcp listeners.

  • Postdata-read-timeout not operated

    • Fixed a bug where postdata-read-timeout didn't work.

  • Filter dynamically added in wrong order

    • Fixed a bug where a filter would be registered in the wrong order when it was added using the addMappingForUrlPatterns method. This was the case that the specification of the isMatchAfter parameter was interpreted incorrectly.

  • Http-method under web-resource-collection in web.xml not worked

    • When configuring 7 http-methods under web-resource-collection in web.xml, the methods that were called after 7th didn't work.

  • Request not processed if the response from ajp-listener exceeded 8KB

    • Fixed a bug where a request would not be processed if the response from ajp-listener exceeded 8KB.

  • IllegalStateException occurred when using EL expression

    • JDK is declared to use reflection APIs when EL invokes a call. An exception would be thrown if the class modifier was not declared public. The classes for EL has been declared public.

  • Search failed due to a backslash included in TLD file name

    • Fixed a bug where OOM (Out Of Memory) would occur due to infinite loop if a TLD file name to search had a backslash (\).

  • Cached response sent after exception occurred

    • Unable to flush the buffer if an exception occurred while processing the headers and body. In this case, it is possible to receive out-of-order responses.

  • Jsessionid set as the path parameter not applied when using encodoingURL()

    • 'sessionid' is set to the path parameter when using encodoingURL(). Fixed a bug where the changes to the default setting of jsessoind-name were not applied.

  • ClassNotFoundException occurred when a tag file was used in multiple JSPs

    • Fixed a bug where ClassNotFoundException didn't occur at JSP compilation when a tag file was used in multiple JSPs.

  • Different implementations of javax.servlet.forward.request_uri across various WASs

    • Different WASs interpret the servlet spec differently. Fixed a bug where the result values of javax.servlet.forward.request_uri were incompatible with other WASs.

  • AJP listener not operated

    • Fixed a bug where a connection between ajp listener and JEUS failed.

    • Fixed a bug where the body was not processed for a HTTP POST request.

  • The modify-tmax-connector command not operated

    • Fixed a bug where modify-tmax-connector didn't work in jeusadmin.

  • Graceful-jsp-reloading in jeus-web-dd.xml not operated

    • Fixed a bug where graceful-jsp-reloading didn't work due to invalid reloading interval operations.

  • Attributes not read when using different WJP protocols

    • When different WJP protocols are used in WebtoB and JEUS, unknown attributes will be ignored.

  • Zip file closed when using Spring framewok

    • An exception occurred while attempting to close JAR files passed through a URL defined in Spring's ContextLoader. This function has been modified not to close external JARs.

  • IllegaArgumentException occurred when using only % as a value of QueryString

    • Fixed a bug where IllegaArgumentException would occur when entering only % in QueryString.

  • Deployment failed even with valid <url-pattern> values set in <security-constraint> of web.xml

    • Unable to perform deployment because validation failed even if the <url-pattern> settings in <security-constraint> of web.xml were valid. This bug has been fixed.

  • Wrong thread context class loader specified to call a session listener

    • When the Web container expires a session, sessionDestroyed() is called on the registered HttpSessionListener. In this case, a classloader other than the classloader to which the listener belongs was acquired. This bug has been fixed.

  • Values not specified in ServletContext.getInitParameterNames() displayed

    • Fixed a bug where the values not specified in web.xml would be displayed when retrieving parameters using ServletContext.getInitParameterNames().

2.3.11. Session Server

  • Backup sessions not removed with the remove-session command

    • Fixed a bug where remove-session only removed active sessions but not backup sessions.

  • Backup-server status became null when deploying EJB applications and Web applications simultaneously at boot

    • Fixed a bug where backup-server status would become null when deploying EJB applications and Web applications simultaneously at boot.

  • Session invalidation called twice

    • HttpSessionBindingListener.valueUnBound() can be invoked when a session is removed. Fixed a bug where 'Removed session' log would be displayed when implementing session. invalidate() in this method. In this release, session. invalidate() is not called twice in succession.

  • Session maintained even after invalidate() call if a session server was specified not to perform session migration

    • Fixed a bug where a session would be maintained even after calling invalidate() if a session server was specified not to perform migration.

    • In this release, session information is saved in the primary server so that the information can be used to perform UPDATE and REMOVE operations.

  • Backup not performed when using Korean in the attributes to enable duplicate login prevention

    • Unable to perform backup when setting attributes in Korean to enable duplicate login prevention. This bug has been fixed.

2.3.12. Tool

  • Repeated command processing in jeusadmin

    • OOM (Out Of Memory) occurred when executing the same command many times with the repeat option in jeusadmin. The implementation of the repeat option has been changed not to generate OOM.

  • BackupDir and nodeName settings not removed with set-domain-backup

    • Unable to remove the backupDir and nodeName settings. Now, when 'unset' is set as the value of each option, the default value is used.

  • Invalid node option for the pack-domain command

    • Added validation for the node option.

    • Changed results message for the success/failure of the node option.

      • Success

        Succeeded to send domain backup file [domain_name] to node [node_name]
      • Failure

        Failed to send domain backup file [domain_name] to node [node_name]. See the server log.
  • Node name changes in the unpack-domain command not applied to nodes.xml

    • Unpack-domain requires the listen address, port, and node name settings of DAS. Fixed a bug where these settings were applied to domain.xml but not nodes.xml.

  • Jeusadmin onestep command with the verbose option not run in jeusadmin

    • Fixed a bug where jeusadmin onestep command didn't work with verbose option in jeusadmin.

2.3.13. Transaction

  • Transaction became split when propagating it by using Internet Inter-ORB Protocol (IIOP)

    • When JEUS propagated global transactions using Internet Inter-ORB Protocol (IIOP), transaction IDs would become split due to the prefixes appended to the global transaction IDs. The prefixes have been removed to fix this problem.

  • ClassCastException occurred in Transaction Coordinator

    • EJB clients use EJB homes and objects, and the EJB homes reuse an EJB home object.

    • When an EJB client was reused that has the transaction information of SubCoordinator, the transaction was forcibly cast to RootCoorinator causing a ClassCastException. This bug has been fixed by adding defensive code.

  • TMException occurred after SubCoordiantor waited for two minutes before EJB propagation

    • When an EJB is called from a client application, SubCoordinate is created. If that EJB is needed again and recalled by another EJB, the pre-created SubCoordinator is to be reused.

      In this case, SubCoordinator can only operate upon the response from RootCoordiantor. Thus, a SubCoordinator would cause TMException after waiting for two minutes if RootCoordiantor had not received any request regarding the registration of the SubCoordinator.

      Now, when SubCoordinator is first created for transaction propagation, the RootCoordinator changes the status value assuming that the SubCoordinator has been already registered before propagating the transaction. In this way, SubCoordinator does not need to wait for confirmation from the RootCoordinator.

  • Data integrity issue for propagating transactions through IIOP

    • When a client running on the different platform sent a request to two JEUSs through an IIOP call, if the DB operation succeeded in one JEUS server but failed on the other JEUS server with timeout issue, the IIOP timeout would occur on the client, causing a rollback and violating data integrity. Fixed a bug where data integrity would be violated when trying to acquire a lock to execute getConnection, rollback, and queries.

  • Transaction recovery failure if both RootCoordinator and SubCoordinator were restarted just before a commit

    • RootCoordinator had correct TM information for SubCoordinator, but an endpoint socket ID of the transaction associated with SubCoordinator had TM information of the SubCoordiator that had already terminated.

  • Performance problem occurred when calling an EJB using CORBA IIOP

    • Fixed a bug where performance problems would occur due to gradually increased memory usage when calling an EJB using CORBA IIOP.

2.3.14. WebAdmin

  • Single quotation changed to &$#39;

    • Entering single quotation mark(' ') or double quotation mark(" ") caused an error because the characters was changed into &$#39;. This bug has been fixed.

  • Moved to error page instead of the details page when an ID includes a slash (/)

    • Fixed a bug where a user would be moved to an error page, instead of the details page when an ID includes a slash (/).

  • FileHandler not created in System logging

    • Fixed a bug where FileHandler was not created for the log created in System logging.

  • TCP listener not added after registering a server listener

    • Fixed a bug where an error would occur when adding ajp13, http, and tcp for WebtoB or Tmax with no 'server luistener ref' settings.

  • Application deployment failure when virtual-host settings differ on each MS

    • When deploying applications to virtualhosts configured for each MS, the first deployment would complete successfully. However, the applications specified with remove-target and add-target could not be deployed successfully. This bug has been fixed.

  • Validation for MinLength and MaxLength of password validator

    • Added validation for the MinLength and MaxLength items of password validator.