Table of Contents
This chapter briefly describes the functions that are added to JEUS v7.0.
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.
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.
Spec | JEUS 5 | JEUS 6 | JEUS 7 |
---|---|---|---|
J2EE | J2EE 1.4 | Java EE 5 | Java EE 6 |
WebServer | WebtoB 3.1.6 | WebtoB 4.1 | WebtoB 4.1 |
HTTP | 1.0/1.1 | 1.0/1.1 | 1.0/1.1 |
CGI | 1.1 | 1.1 | 1.1 |
PHP | 3.x/4.x | 3.x/4.x/5.x | 3.x/4.x/5.x |
SSL | ssl2/ssl3/tls1 | ssl2/ssl3/tls1 | ssl2/ssl3/tls1 |
EJB (Enterprise Java Beans) | 2.1 | 2.x/3.0 | 3.1 |
RMI-IIOP | Support | Support | Support |
JAF (JavaBeans Activation Framework) | 1.0.2 | 1.0.2 | 1.1 |
EJB to CORBA Mapping | 1.1 | 1.1 | 1.1 |
JCA (Java EE Connector Architecture) | 1.5 | 1.5 | 1.6 |
JMS (Java Message Service API) | 1.1 | 1.1 | 1.1 |
Common Annotations for the Java Platform | - | 1.0 | 1.1 |
JPA (Java Persistence API) | - | 1.0 | 2.0 |
JavaMail API | 1.3 | 1.4 | 1.4 |
JTA (Java Transaction API) | 1.0.1B | 1.1 | 1.1 |
JTS (Java Transaction Service) | 1.0 | 1.0 | 1.0 |
JNDI (Java Naming and Directory Interface) | 1.2.1 | 1.2.1 | 1.2.1 |
CDI (Contexts and Dependency Injection for Java. Web Beans) | - | - | 1.0 |
Bean Validation | - | - | 1.0 |
Managed Beans | - | - | 1.0 |
Interceptors | - | - | 1.1 |
JSP | 2.0 | 2.1 | 2.2 |
Servlet | 2.4 | 2.5 | 3.0 |
JSF (JavaServer Faces) | - | 1.2 | 2.0 |
JSTL | - | 1.2 | 1.2 |
XSLT | 1.0 | 1.0 | 1.0 |
JDBC | 3.0 | 3.0 | 4.0 |
IBM MQ | Support | Support | Support |
Sonic MQ | Support | Support | Support |
J2EE Management | 1.0 | 1.1 | 1.1 |
J2EE Deployment API | 1.1 | 1.2 | 1.2 |
JAAS | 1.0.1 | 1.0.1 | 1.0.1 |
JACC | 1.0 | 1.1 | 1.3 |
JASPIC | - | - | 1.0 |
Implementing Enterprise Web Services | 1.0 | 1.2 | 1.3 |
WS-I Basic Profile | 1.0 | 1.1 | 1.1 |
WS-Security | 1.0 | 1.0/1.1 | 1.1 |
WS-Reliable Messaging | - | 1.0 | 1.1 |
WS-Transaction | - | - | 1.0 |
WS-Addressing | - | - | 1.0 |
SOAP | 1.2 | 1.2 | 1.1/1.2 |
WSDL | 1.1 | 1.1 | 1.1 |
Web Service Metadata | - | 2.0 | 2.1 |
SAAJ | 1.1/1.2 | 1.3 | 1.3 |
UDDI | 2.0/3.0 | 2.0/3.0 | 2.0/3.0 |
JAX-RPC | 1.1 | 1.1 | 1.1 |
JAX-WS | - | 2.1 | 2.2 |
JAX-RS | - | - | 1.1 |
JAXR | 1.0 | 1.0 | 1.0 |
JAXB | 1.0 | 2.1 | 2.2 |
JAXP | 1.2 | 1.3 | (Included in JavaSE 6) |
WS-Policy | - | 1.0 | 1.0 |
WS-Security Policy | - | 1.2 | 1.2 |
WS-Trust | - | 1.3 | 1.3 |
WS-Secure Conversation | - | 1.3 | 1.3 |
WS-Policy Attachment | - | 1.0 | 1.0 |
StAX (Streaming API for XML) | - | 1.0 | (Included in JavaSE 6) |
OTS | Supported | Supported | Supported |
Java IDL API | Supported | Supported | Supported |
IDE Tool | Supported | Supported | Unsupported |
GUI Tool | JEUSBuilder | Unsupported | Unsupported |
Web Tool | WebAdmin | WebAdmin | WebAdmin |
Monitoring Tool | Console Tool, WebAdmin | Console Tool, WebAdmin | Console Tool, WebAdmin |
JDK | 1.4/5.0 | 5.0/6.0 | 6.0 (Certification) |
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.
Domain is composed of a special server called DAS (Domain Administration Server), which manages multiple servers in a domain, and MSs (Managed Servers), which services the actual applications. For more information, refer to JEUS Domain Guide. "Chapter 1. Introduction to Domains".
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".
Directory Structure Change
With the introduction of domains and the integration of configurations, the directory structure has also changed. For more information, refer to JEUS Server Guide. "1.5. Directory Structure".
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.
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.
Since DAS manages domains, it provides additional services besides MS services. For more information about DAS and MS services, refer to JEUS Server Guide. "1.2. Domain Administration Server (DAS)",JEUS Server Guide. "1.3. Managed Server (MS)".
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".
Enhanced Server State Management
Server state can be managed more thoroughly than in JEUS 6, and users can take actions according to the current status using the jeusadmin or WebAdmin. For more information, refer to JEUS Server Guide. "Chapter 3. Controlling and Monitoring JEUS Servers".
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.
To prevent multiple users from simultaneously editing the same configuration, a lock must be obtained when using DAS. For more information, refer to JEUS Domain Guide. "Chapter 3. Configuring a Domain".
Server State Management And Control
MSs on a domain can be started or terminated from DAS. For more information, refer to JEUS Domain Guide. "Chapter 4. Server Lifecycle".
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.
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.
For more information, refer to JEUS Applications & Deployment Guide. "Chapter 2. Graceful Undeployment and Redeployment".
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.
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.
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
Provides the service using the newly redeployed application without stopping the current application. For more information, refer to JEUS Web Engine Guide. "1.6.10. Logs".
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".
Access Logs Configuration for Virtual Host
Access logs can be configured for each virtual host. For more information, refer to JEUS Web Engine Guide. "1.6.10. Logs".
Enable/Disable Function of WebAdmin
WebAdmin can be enabled/disabled dynamically. For more information, refer to JEUS Reference Book. "4.2.3.12. disable-webadmin".
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.
Redirect Strategy
javax.servlet.http.HttpServletResponse.sendRedirect(String location) API can be used to apply the policy that changes locations to absolute URLs. For more information, refer to JEUS Web Engine Guide. "3.3.6. Configuring Web Security".
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.
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.
JEUS 6 allowed information, such as Node1_Container1, to be exposed.
Simplified Configuration
Session server can run simply through cluster configuration.
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.
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'.
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.
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
All commands were integrated in jeusadmin. The jeusadmin and console commands were newly implemented according to the structure of JEUS 7.
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".
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.
Each MS manages data sources registered to it, and DAS works with the MS to manage all data sources of a domain. For more information, refer to JEUS Server Guide. "6.3. Management of Data Sources and Connection Pools".
Dynamic JDBC Data Source and Connection Pool Configuration Change
Supports dynamic update for JDBC data sources and connection pool configuration.
When the configuration is changed, the change will apply at runtime without a server restart. This applies to jeusadmin and WebAdmin. Fore more information, refer to JEUS Server Guide. "6.6. Dynamically Changing Data Source Related Configurations", and JEUS Server Guide. "6.7. Dynamically Changing Cluster Data Source Configurations".
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.
New Specification Support
Supports Java Persistence 2.0 and provides EclipseLink 2.3. Fore more information, refer to "JEUS JPA Guide".
This section describes changes in JEUS configuration for each module.
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.
ResourceServlet Can be Mapped with web.xml servlet-mapping
A resource servlet can be mapped to a particular URL to provide services. For more information, refer to JEUS Web Engine Guide. "3.3.5. Configuring Additional Functions".
Enhanced Information of Deployed Web Applications
The information about servlets, filters, and listeners of deployed web applications can be displayed in jeusadmin and WebAdmin. For more information, refer to JEUS Reference Book. "4.2.6.3. application-info".
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.
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.
Changed Default Session Servers from a Centralized Type to Distributed Type to Reduce OOM Generation.
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.
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".
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.
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.
For more information about security system configuration, refer to JEUS Security Guide. "Chapter 2. Configuring the Security System".
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.
Integrated jeusadmin Commands For Connection Pool Monitoring
The control and monitoring commands of JDBC Connection Pool and JCA Connection Pool are integrated(both jeusadmin and WebAdmin). For more information, refer to JEUS Server Guide. "6.8. JDBC Connection Pool Monitoring".
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.