Chapter 6. JEUS v7.0 Fix #0

Table of Contents

6.1. New Functions
6.1.1. Specification Changes
6.1.2. JEUS System
6.1.3. Server
6.1.4. Domain
6.1.5. Deployment
6.1.6. WebAdmin
6.1.7. Web Engine
6.1.8. Session Server
6.1.9. EJB
6.1.10. JMS
6.1.11. WebService
6.1.12. Tool
6.1.13. Security
6.1.14. JDBC
6.1.15. JPA
6.1.16. JCA
6.2. Changed Functions
6.2.1. Web Engine
6.2.2. Deployment
6.2.3. Session Server
6.2.4. Transaction Manager
6.2.5. JMX
6.2.6. Logging
6.2.7. Security
6.2.8. JNDI
6.2.9. JDBC
6.2.10. JCA

This chapter briefly describes the functions that are added to JEUS v7.0.

6.1. New Functions

JEUS 7 fully supports Meta Annotation and Dependency Injection, which are important Java EE 6 functions, to enhance the development productivity. JEUS 7 uses various enhanced technologies to provide a more reliable environment.

6.1.1. Specification Changes

As JEUS has progressed to JEUS 7, new technologies and specification have been applied. Most importantly, JEUS 7 fully supports Annotation starting from Java EE 6 which has greatly enhanced the development productivity.

The following shows the J2EE specification that have been applied to JEUS from version 5 to 7. For changes related to the specification changes, refer to each specification in the following.

SpecJEUS 5JEUS 6JEUS 7
J2EEJ2EE 1.4Java EE 5Java EE 6
WebServerWebtoB 3.1.6WebtoB 4.1WebtoB 4.1
HTTP1.0/1.11.0/1.11.0/1.1
CGI1.11.11.1
PHP3.x/4.x3.x/4.x/5.x3.x/4.x/5.x
SSLssl2/ssl3/tls1ssl2/ssl3/tls1ssl2/ssl3/tls1
EJB (Enterprise Java Beans)2.12.x/3.03.1
RMI-IIOPSupportSupportSupport
JAF (JavaBeans Activation Framework)1.0.21.0.21.1
EJB to CORBA Mapping1.11.11.1
JCA (Java EE Connector Architecture)1.51.51.6
JMS (Java Message Service API)1.11.11.1
Common Annotations for the Java Platform-1.01.1
JPA (Java Persistence API)-1.02.0
JavaMail API1.31.41.4
JTA (Java Transaction API)1.0.1B1.11.1
JTS (Java Transaction Service)1.01.01.0
JNDI (Java Naming and Directory Interface)1.2.11.2.11.2.1
CDI (Contexts and Dependency Injection for Java. Web Beans)--1.0
Bean Validation--1.0
Managed Beans--1.0
Interceptors--1.1
JSP2.02.12.2
Servlet2.42.53.0
JSF (JavaServer Faces)-1.22.0
JSTL-1.21.2
XSLT1.01.01.0
JDBC3.03.04.0
IBM MQSupportSupportSupport
Sonic MQSupportSupportSupport
J2EE Management1.01.11.1
J2EE Deployment API1.11.21.2
JAAS1.0.11.0.11.0.1
JACC1.01.11.3
JASPIC--1.0
Implementing Enterprise Web Services1.01.21.3
WS-I Basic Profile1.01.11.1
WS-Security1.01.0/1.11.1
WS-Reliable Messaging-1.01.1
WS-Transaction--1.0
WS-Addressing--1.0
SOAP1.21.21.1/1.2
WSDL1.11.11.1
Web Service Metadata-2.02.1
SAAJ1.1/1.21.31.3
UDDI2.0/3.02.0/3.02.0/3.0
JAX-RPC1.11.11.1
JAX-WS-2.12.2
JAX-RS--1.1
JAXR1.01.01.0
JAXB1.02.12.2
JAXP1.21.3(Included in JavaSE 6)
WS-Policy-1.01.0
WS-Security Policy-1.21.2
WS-Trust-1.31.3
WS-Secure Conversation-1.31.3
WS-Policy Attachment-1.01.0
StAX (Streaming API for XML)-1.0(Included in JavaSE 6)
OTSSupportedSupportedSupported
Java IDL APISupportedSupportedSupported
IDE ToolSupportedSupportedUnsupported
GUI ToolJEUSBuilderUnsupportedUnsupported
Web ToolWebAdminWebAdminWebAdmin
Monitoring ToolConsole Tool, WebAdminConsole Tool, WebAdminConsole Tool, WebAdmin
JDK1.4/5.05.0/6.0

6.0 (Certification)

6.1.2. JEUS System

  • Domain Structure Implementation

    • The maximum unit of management is extended from a node to domain.

    • Node, which is composed of one manager with multiple containers, used to be both the minimum and maximum unit of management. A domain, which is composed of multiple servers, has become the maximum unit of management.

  • Console Commands Integration

    • All the existing console commands were integrated in jeusadmin. For more information, refer to "JEUS Reference Book".

  • Integrate Configuration Integration

    • Configuration files, which were divided into multiple configuration files and system properties, have been integrated into one domain.xml file. The configurations can be changed using the jeusadmin or WebAdmin.

    • All configurations for server JVM has also been integrated into the domain.xml file, and a temporary process Launcher was introduced that reads JVM options from the XML files to send them to the server JVM. For more information, refer to JEUS Server Guide. "1.6. Launcher".

  • Server Lifecycle Change

    • The STANDBY and SUSPENDED states were added.

    • When a server starts, if distributing a registered application fails, the server remains in the STANDBY state, unable to go into the RUNNING state. If an administrator intentionally executes the Suspend command on a server to stop all applications, the server goes into the SUSPEND state. For more information, refer to JEUS Server Guide. "3.1.1. Life Cycle of Managed Servers".

  • Server Restart Using SSH for Abnormal Termination

    • With the introduction of the domain structure, a function where DAS uses SSH to restart servers was added to allow DAS to be able to restart a server on a different machine.

  • Start/Termination Restrictions by Engine

    • Servers are allowed to start/terminate the required engine services, as it is better for the server, and not the user, to decide which engine services are required to run an application.

  • Automatic Configuration Synchronization

    • Configuration of servers in a domain can be automatically synchronized.

    • In JEUS 6 or earlier versions, nodes in a cluster had to be synchronized manually, but starting from JEUS 7, DAS automatically synchronizes all the configurations of servers in a domain or cluster. For more information, refer to JEUS Domain Guide. "1.3. Composition".

  • Dynamic Configuration Update Function Added

    • In JEUS 6 or earlier versions, the node must be restarted to apply the configuration changes, but starting from JEUS 7, configuration changes can be applied in real time without restarting the server. For more information, refer to JEUS Domain Guide. "Chapter 3. Configuring a Domain".

  • Increased Maximum Monitoring Unit

    • In JEUS 6 or earlier versions, monitoring is only possible in unit of a node, but starting from JEUS 7, multiple servers can be monitored in the unit of a domain or cluster.

  • Integrated Thread Pool

    • Thread pools, which were each used by a service on the server, have been integrated into one to increase thread reuse. A function has also been added to reserve a certain number of threads in order to prevent important services from not receiving a thread because they are all in use.

6.1.3. Server

  • DAS (Domain Admin Server), MS (Managed Server) Added

    • Starting from JEUS 7, the domain structure was introduced, replacing the concepts of managers and containers.

    • In JEUS 6 or earlier versions, JEUS manager and engine containers had to be managed on the same machine. Starting from JEUS 7, with the introduction of domains, the constraint was removed and DAS was introduced to manage the domain.

    • The server that runs the actual application services is called a MS, which correspond to an engine container of JEUS 6 or earlier versions. Application services can also be run on DAS, but this is not recommended.

  • Launcher Added

    • Starting form JEUS 7, DAS and MS servers are all started through the launcher.

    • In JEUS 6 or earlier versions, JEUS manager and engine containers must be on the same machine. Starting from JEUS 7, the constraint was removed, and servers are started by receiving the configuration file from a remote DAS. For more information, refer to JEUS Server Guide. "1.6. Launcher".

6.1.4. Domain

  • Domain Introduction

    • Starting from JEUS 7, the concept of domain was introduced so multiple servers and clusters can be managed in an integrated way. The server, which manages domains, is called DAS and the server, which run the actual services, are called MS.

    • If JEUS is installed, the default domain will be created and DAS will be configured. The domains and MSs can be added if necessary.

    • The directory structure was changed according to the structure changes. For more information about the domain structure, refer to "JEUS Domain Guide".

  • Domain Configuration Change

    • All configurations of a domain should be changed using DAS. Note that if configuration is changed directly by editing the XML file without using DAS, the domain may not function normally.

  • Node Manager

    • Enables DAS to execute MSs using SSH.

    • The configuration must be set to allow SSH access using a private key on the machine where MS will boot prior to booting. DAS also must be configured to have access to the related information.

    • If configuration of MS is completed, the MS can be started through DAS. If the MS is terminated abnormally, DAS will detect it and restart it.

6.1.5. Deployment

  • Graceful undeploy / redeploy support

    • During undeployment, if previous request is processing, the undeployment will wait for the request to be completed and then proceed. This is called graceful undeployment. JEUS 7 supports graceful undeployment with multiple options.

    • Supports graceful redeployment that updates already deployed applications without stopping the applications. The graceful redeployment function applies only to standalone web modules.

  • Deployment Management of a Domain using DAS

    • Supports an installation function that uploads applications to DAS.

    • Persistent deployment is the default type of deployment.

    • Grants an ID to an application to ensure the uniqueness of the application in a domain.

    • Managed Server synchronizes application files with DAS.

    • Application libraries can be set for each domain. (DOMAIN_HOME/lib/application)

    • Application repositories can be added to a domain to deploy the applications without installing the applications on DAS.

    • Applications can be deployed by specifying absolute path. This function is provided for convenience in a development environment, and is not recommended to use in a production environment.

    • Clusters can be targets of deployment. If "All Target" is selected, the applications will also be deployed to DAS and there are constraints on the command. Thus, it is not recommended to use it in a production environment.

    • When starting/stopping an application fails, DAS retries to start/stop the application.

  • Deployment Image Reuse

    • If packaged applications are not found at boot-time deployment, previous deployment images will be reused.

6.1.6. WebAdmin

WebAdmin was newly developed.

  • JEUS 7 Domain Structure and Configuration Changes

    • All screens were newly created to work with the domain structure,

  • Lock & Edit Support

    • Editing and dynamic modification support using Lock & Edit

  • Executing console commands using Web Console

    • Some jeusadmin commands can be used in WebAdmin through Web Console functions.

  • Online Help Changes

    • JEUS manuals can be displayed in WebAdmin.

6.1.7. Web Engine

  • New Specification

    • JEUS 7 web engine supports new specifications, including Java Server Faces 2.0 (JSR314), Java Server Faces 2.1, Servlet 3.0(JSR315), JSP 2.2(JSR245), Expression Language 2.2(JSR245), Contexts and Dependency Injection for the Java EE platform(JSR299), and Dependency Injection for Java(JSR330).

  • JSP Graceful Reloading

    • When an application is deployed in an exploded mode to NAS or a remote device, and the application is shared by multiple web engines, the server might hang due to JSP compilation if JSP is changed when the workload is heavy. To minimize occurrences of hanging, a function was added that only allows one web engine to compile the changed JSP. The other web engines can provide the service using the existing version until the compilation finishes. For more information, refer to JEUS Web Engine Guide. "4.3.1. Reloading JSP Files".

  • WEB-INF/lib/*.jar!META-INF/resources Support

    • Only decompress the files among the jar files in the WEB-INF/lib/ directory that are related to META-INF/resources to a separate location on the server and service the resources. The resources can be obtained using the getRealPath(), getResource(), getResourcePaths() APIs as defined in the ServletContext API. This function is also used to provide the jsp and image files as libraries.

  • Servlet Class HotSwap at Development Time

    • When developing a web application, if the servlet classes are changed frequently, the web application can be redeployed to apply these changes, but this process is time-consuming. If this job is repeatedly executed, the consumed time can be substantial. To reduce this time, for minor servlet class changes, JEUS 7 dynamically updates only the classes modified in the web engine. Since this function is not supported for all changes, the constraints must be checked and this function should not be used in a production environment.

      For more information, refer to JEUS Web Engine Guide. "Chapter 9. Reloading Classes at Runtime".

  • Web Attack Prevention

    The system administrator configures the web engines in order to provide reliable services as a prevention to malicious attacks on web applications, such as DDoS.

    Five functions were added to prevent web attacks.

    • Limit on the post data size

    • Limit on the number of parameters for GET/POST requests

    • Limit on the number of headers for a request

    • Limit on the size of a header

    • Limit on the size of a query string

    For more information, refer to JEUS Web Engine Guide. "1.6.13. Preventing Web Attacks".

  • Graceful Redeployment of Standalone Web Module

  • Common Log Format Support

    • Supports Common Log Format as the default access log format. For backward compatibility, the log format of JEUS 6 is also supported. For more information, refer to JEUS Web Engine Guide. "1.6.10. Logs".

  • Dynamic Web Engine Configuration Modification

    • Some web engine configurations can be applied dynamically. Such configurations are as follows: monitoring within web-engine.xsd schema, min and max of the thread pool, number of webtob-threadpool, format, exclude-ext, and enabling of access-log.

6.1.8. Session Server

  • Dynamic Configuration

    • With the introduction of GMS, a backup server can be decided according to the current server status, using static configuration.

    • Considers node information and decides on a different machine as the initial backup.

      Note

      In JEUS 6, servers can be started only with static configuration.

  • Sticky Info Encoding

    • Encodes sticky information that is attached to session cookies to prevent the information from being exposed.

      Note

      JEUS 6 allowed information, such as Node1_Container1, to be exposed.

  • Simplified Configuration

    • Session server can run simply through cluster configuration.

      Note

      In JEUS 6, to run session servers, more than one configuration pages are required. (based on distributed session servers)

  • Servlet 3.0 Support

    • HttpOnly: Since browsers can only use cookies for HTTP requests, cookies are not exposed through the script.

6.1.9. EJB

  • EJB 3.1 Support

  • Compiler API Support during EJB codegen

    It was changed to always use Java Compiler API when compiling EJB 2.x codes. With this, the compilation speed can be enhanced since the compiler can be operated on the same VM without executing a separate process and not dependent a particular JDK. If there is a compatibility problem, the old method can be used by using the option, ' -Djeus.ejb.compiler.use-java-compiler-api=false'.

6.1.10. JMS

  • Added Message Global Ordering Function

    • This guarantees the order of the messages that are produced to a queue, and the order has a higher priority than that defined in the JMS 1.1 specification.

    • This guarantees that the messages in a queue are consumed in the order they were produced in a single server or a cluster situation.

  • Added Message Group Function

    • If certain messages are specified as a group, the messages are guaranteed to be delivered to a single client at once after being produced to a server.

    • This can be used when a collection of messages, and not an individual message, is useful.

  • Message Sort Function Support

    • Sorts the messages in a queue or a durable subscription, by using the user-specified key.

  • Message Bridge Function Support

    • Automatically delivers messages between destinations of different vendor or different JMS provider version.

  • Failover/Failback Function Support (Active/Standby Type Failover)

    • When an error occurs to an active server, the standby server starts to provide the services on behalf of the active server. If the active server is recovered, the active server continues to provide the services.

  • Clustering Function

    • Connection Distribution: The Connection Factory selects servers using the round-robin method.

    • Message Starvation Resolution: When trying to consume messages from a server with no messages, the other servers internally send message to be able to send to the client.

6.1.11. WebService

  • New Specification Support

    • JAX-WS 2.2

    • JAXB 2.2

    • JAX-RS 1.1

    • Web Services for Java EE 1.3

    • Support for additional WS expansion stacks such as WS-Addressing, WS-ReliableMessaing, WS-Security, and WS-Policy

6.1.12. Tool

All commands were integrated in jeusadmin. The jeusadmin and console commands were newly implemented according to the structure of JEUS 7.

6.1.13. Security

  • Added Function to Assign Command Execution Permissions

    JEUS 7 added a function to authorize execution permissions of console tool (jeusadmin) commands for each user. The permission can be set based on the existing console tool command names. Only the users who have the permission can execute those commands. For more information, refer toJEUS Server Guide. "6.6. Dynamically Changing Data Source Related Configurations".

6.1.14. JDBC

  • Data Source Management Structure Change for Domain Architecture

    • The existing data source management structure was changed due to domain structure changes and manager/container integration.

  • JDBC 4.0 Support

    • In Java SE 6, the JDBC specification was changed to version 4.0.

    • When JEUS is used in a Java SE 6 environment, the JDBC 4.0 driver and its related functions are supported.

6.1.15. JPA

  • New Specification Support

    • Supports Java Persistence 2.0 and provides EclipseLink 2.3. Fore more information, refer to "JEUS JPA Guide".

6.1.16. JCA

  • New Specification Support

    • Supports JCA 1.6

6.2. Changed Functions

This section describes changes in JEUS configuration for each module.

6.2.1. Web Engine

  • http-listener, tcp-listener, ajp13-listener Changed to Use the Server Listeners

    • The new connection requests from clients are changed to use the integrated network layer. Thus, three listeners do not need to separately configure network related settings, but only one network listener needs to be configured for each server through the server-listener-ref setting.

  • Virtual Host Changes

    • The attempt to deploy to non-existing virtual host will fail. Previously, the default virtual host was used, but it was determined to be ambiguous. Also, the same web application cannot be deployed to multiple virtual hosts.

  • Replaced with the Command jspc of jeusadmin

    • The function that pre-compiles the JSP files of already deployed web applications was replaced with the jspc command of jeusadmin.

  • Enhanced Information of Deployed Web Applications

  • Prevention of Duplicate Copies of Precompiled JSP Classes during Deployment

    • In AppCompiler, a separate check file called .precompiled_result_file is created in the .warjspwork directory that is created for each web module. The modified time of this file will be compared with that of the in _generated_ file, which generally exists in the server, to determine whether to copy the results of JSP from the .warjspwork directory. This resolves the problem of duplicated copies caused by the time difference due to a prolonged compilation time.

6.2.2. Deployment

  • Changed to Use Persistent Deployment by Default

    • If the deploy command is executed, applications will be deployed at runtime and the deployment information will be written in the configuration file, which is used to deploy applications when rebooting.

  • Added Deployment Option for Applications on a Shared Disk

    • When an application is on a shared disk, the -shared option can be used when deploying to prevent unnecessary file copying.

  • Changed Auto Redeployment Function

    • The auto deployment function is not supported in a domain environment.

  • Redefined jeus-application.xsd

    • The jeus-application.xsd file does not share configuration with the domain.xml file. It is only used as the schema of the jeus-application-dd.xm file.

6.2.3. Session Server

  • Changed Default Session Servers from a Centralized Type to Distributed Type to Reduce OOM Generation.

6.2.4. Transaction Manager

  • Changed to Generate the Transaction Propagation Error when EJB is Called After Transaction Timeout

    • Resolved so that a commit is not possible after transaction timeout

    • Resolved so that JDBC connection cannot be used after transaction timeout and a commit is not possible when EJB transaction propagation occurs.

6.2.5. JMX

  • In JEUS 7, the concepts of managers and containers have been removed, so MBeans that manage them were deleted accordingly. New MBeans that fit the new domain structure were added. For more information on each MBean, refer to JEUS API javadoc.

  • The MBean ObjectName structure has been changed. In JEUS 6 ObjectName, a JeusManager key exists that represents a node, a management group. In JEUS 7, JeusManager does not exist, but J2EEDomain key has been added instead. For more information about ObjectName, refer to JEUS JMX Guide. "3.4. MBean Object Names".

6.2.6. Logging

  • Changed the Default Handler of JEUS Logger to File Handler

    • The default handler of JEUS Logger was changed to a file handler. By default, without configuration, all log messages are written in the default log file.

      • The console handler cannot be configured. To display JEUS log messages on the console screen, the -verbose option must be provided when booting JEUS.

6.2.7. Security

  • Domain Structure Security Policies

    • All the servers of a domain share the security configuration of DAS. In other words, the same security services will be running on all the servers, and the user account information and permission configuration are shared.

6.2.8. JNDI

  • JNDI Replication Default Value Changed to False

    When bound in a clustered environment, the object was copied to all JNDIServers, but it is no longer copied. To copy the object, use the -Djeus.jndi.jns.replicatebindings=true setting.

  • <export-cos-naming> Element Removed

    To use COSNamingService, separate configuration was required when booting, but now the service is automatically provided as needed.

6.2.9. JDBC

6.2.10. JCA

  • Individual Connector Resource Module Configurations (jeus-connector-dd.xml) Combined into domain.xml

    A resource adaptor module can be used by registering as a connector resource. For more information, refer to JEUS JCA Guide. "Chapter 4. Resource Adapter".

  • Integrated jeusadmin Commands for Connection Pool Monitoring

    The controlling and monitoring commands of JDBC Connection Pool and JCA Connection Pool are integrated in jeusadmin and WebAdmin.