HITACHI Inspire The Next

uCosminexus Application Server

System Design Guide

3020-3-Y04-10(E)


Contents

Notices
Summary of amendments
Preface
1. Purpose and Flow of Designing an Application Server System
1.1 Purpose of designing an Application Server system
1.2 Flow of system design
1.2.1 For applications that execute online processing (J2EE applications)
1.2.2 For applications that execute batch processing (batch applications)
2. Preparing for System Design
2.1 Items to be determined before designing a system
2.2 Identifying the types of business
2.3 Determining the functionality to be used (when executing online processing)
2.3.1 Process configuration
2.3.2 Configuration of a J2EE server
2.3.3 J2EE applications and J2EE component
2.3.4 J2EE container
2.3.5 J2EE service
2.3.6 J2EE resource
2.3.7 Cosminexus JPA Provider
2.3.8 Container extension library
2.3.9 Server operation mode
2.4 Determining the functionality to be used (for executing batch processing)
2.4.1 Process configuration
2.4.2 Configuration of a batch server
2.4.3 Batch application
2.4.4 Batch service
2.4.5 J2EE service
2.4.6 J2EE resource
2.4.7 Container extension library
2.5 Determining the application configuration that suits the system purpose (for operations that execute online processing)
2.5.1 Determining the J2EE applications to be executed
2.5.2 Determining the processes to be used and preparing the required software
2.6 Determining the application configuration that suits the system purpose (for businesses that execute batch processing)
2.6.1 Determining batch applications to be executed
2.6.2 Determining the processes to be used and preparing the required software
2.7 Determining the operation method
2.7.1 Operations of a system integrated with JP1
2.7.2 Operations of system integrated with cluster software
3. Determining the System Configuration (J2EE Application Execution Platform)
3.1 Points to be considered when determining the system configuration
3.1.1 Purpose and configuration of the system
3.1.2 Procedure for designing the system configuration
3.1.3 Concept of system configuration
3.2 Description of the system configuration
3.3 Determining the configuration of an application
3.3.1 Configuration of an application and the access points
3.3.2 Resource types and resource adapters
3.4 Determining the configuration of the client and the server
3.4.1 Configuration with servlets and JSPs as access points (for Web server integration)
3.4.2 Configuration where servlets and JSPs are used as access points (when using the in-process HTTP server)
3.4.3 Configuration with Session Beans and Entity Beans as access points
3.4.4 Configuration where Stateless Session Bean is used as access point when using CTM
3.5 Determining integration between servers
3.5.1 Integration between servers invoking Session Bean and Entity Bean
3.5.2 Integration between the servers that invokes Stateless Session Bean through CTM
3.6 Determining the transaction type
3.6.1 Configuration when using a local transaction
3.6.2 Configuration when using a global transaction
3.6.3 Configuration when using transaction context propagation
3.7 Determining the load balancing method by the load-balancing cluster
3.7.1 Load balancing with a load balancer in case of Web server integration (in the case of servlet or JSP)
3.7.2 Load balancing with the load balancer when using in-process HTTP server (for Servlet/JSP)
3.7.3 Load balancing with the CORBA Naming Service (in the case of Session Beans and Entity Beans)
3.7.4 Load balancing when using CTM (for Stateless Session Bean)
3.8 Determining the configuration for asynchronous communication between servers
3.8.1 Configuration in which a Message-driven Bean is used as the access point (when using Cosminexus JMS provider)
3.8.2 Configuration in which a Message-driven Bean is used as the access point (when using TP1/Message Queue)
3.8.3 Configuration when using a Message-driven Bean as an access point (when using Cosminexus RM)
3.8.4 Load balancing using the Message-driven Bean instance pool (when using TP1/Message Queue)
3.9 Determining the deployment of the operation management process
3.9.1 Configuration wherein the Management Server is deployed on each Management Server
3.9.2 Configuration for deploying Management Server on each machine
3.9.3 Configuration when operating with commands
3.10 Determining the inheritance of session information
3.10.1 Configuration using a database (database session failover functionality)
3.10.2 Configuration in which the EADs server is allocated to a computer different from the J2EE server (EADs session failover functionality)
3.10.3 Configuration in which the EADs server is allocated to the same computer as the J2EE server (EADs session failover functionality)
3.10.4 Configuration where many SFO servers exist in a system (Memory session failover functionality)
3.10.5 Configuration where only a single SFO server exists in a system (Memory session failover functionality)
3.11 Determining node switching when cluster software is used and an error occurs
3.11.1 Configuration in which executing node and standby node of Application Server are in 1-to-1 ratio (when transaction service is not used)
3.11.2 Configuration in which executing node and standby node of Application Server are in 1-to-1 ratio (when using transaction service)
3.11.3 Configuration in which executing node and standby node of Management Server are in 1-to-1 ratio
3.11.4 Configuration in which executing node and standby node of Application Server are mutually standby
3.11.5 Configuration using server exclusive for recovery (N-to-1 recovery system)
3.11.6 Configuration in which the executing node and standby node of the host unit management model are in an N-to-1 ratio
3.12 Deploying a process for the output of the performance analysis trace file
3.13 Determining integration with products other than Application Server
3.13.1 Configuration when using JP1 for operations
3.13.2 Configuration for invoking a Message-driven Bean from SUP of OpenTP1 using the TP1 inbound integrated function
3.13.3 Configuration in which a Stateless Session Bean is invoked from other than an EJB client using the CTM gateway function
3.14 Managing optional processes with operation management
3.15 Determining other configurations
3.15.1 Configuration with a Web server and Application Server deployed on different machines
3.15.2 Configuration where the load is balanced by using a redirector
3.15.3 Configuration where the CORBA Naming Service is invoked as an out-process
3.16 TCP/UDP port numbers used by Application Server processes
4. Determining the System Configuration (Batch Application Execution Platform)
4.1 Points to be considered when determining the system configuration
4.1.1 Purpose and configuration of system
4.1.2 Procedure for designing the system configuration
4.1.3 Precautions for the TCP/UDP port used in a system for executing batch applications
4.2 System configuration when using a batch server
4.2.1 System configuration of a system that does not use the scheduling functionality of batch applications
4.2.2 System configuration of a system that uses the scheduling functionality of batch applications
5. Estimating Resources to be Used (J2EE Application Execution Platform)
5.1 Resources used for each system configuration
5.1.1 Resources used for deploying Web server and J2EE server on the same machine
5.1.2 Resources used when Web server and J2EE server are deployed on different machines
5.1.3 Resources used for the in-process HTTP server functionality
5.1.4 Resources used by the database
5.1.5 Resources used by Management Server
5.1.6 Resources used for the memory session failover functionality
5.1.7 Resources used for CTM
5.2 Resources used for each process
5.2.1 Estimating the resources used by J2EE server
5.2.2 Estimating the resources used by Administration Agent
5.2.3 Estimating the resources used by performance tracer
5.2.4 Estimating the resources used by CTM
5.3 Estimating virtual memory usage
6. Estimating Resources to be Used (Batch Application Execution Platform)
6.1 Resources used for each system configuration
6.1.1 Resources used for deploying batch server
6.1.2 Resources used by the database
6.1.3 Resources for using CTM
6.2 Resources used for each process
6.2.1 Estimating the resources used by batch server
6.2.2 Estimating the resources used by Administration Agent
6.2.3 Estimating the resources used by performance tracer
6.2.4 Estimating the resources used by CTM
6.3 Estimating virtual memory usage
7. JavaVM Memory Tuning
7.1 Overview of garbage collection and JavaVM memory management
7.1.1 Mechanism of garbage collection
7.1.2 Configuring the memory space used in JavaVM and the JavaVM options
7.1.3 Relation between the occurrence of garbage collection and memory space
7.2 Overview of tuning to prevent the occurrence of full garbage collection
7.2.1 Concept of tuning
7.2.2 Tuning procedure
7.3 Java heap tuning
7.3.1 How to estimate the memory size of Java heap
7.3.2 How to set the memory size in Java heap
7.3.3 How to check the usage of memory size of Java heap
7.4 Estimating the memory size of the Tenured area in Java heap
7.4.1 Calculating the memory size required by an application
7.4.2 Reason for adding the memory size of the New area in Java heap
7.5 Estimating the memory size of the New area in Java heap
7.5.1 Estimating the memory size of the Survivor area in Java heap
7.5.2 Estimating the memory size of the Eden area in Java heap
7.6 Determining the handling of objects that exist for a fixed time period in Java heap
7.6.1 How to save in the New area in Java heap
7.6.2 How to save in the Tenured area in Java heap
7.6.3 How to save in the Explicit heap
7.7 Deciding the maximum size or the initial size of Java heap
7.8 Estimating the memory size of the Permanent area in Java heap
7.9 How to analyze the factors of a full garbage collection using the extended verbosegc information
7.9.1 Overview of the output format of extended verbosegc information
7.9.2 Example of output of extended verbosegc information when full garbage collection occurs
7.10 Explicit heap tuning
7.10.1 How to estimate the memory size of Explicit heap (Estimating memory size used in J2EE server)
7.10.2 Memory size used by the object for communicating with redirector
7.10.3 Memory size used by the object related to the HTTP session
7.10.4 Impact of using the Explicit Memory Management functionality when estimating memory size
7.10.5 How to estimate using statistical information
7.11 Estimating the memory size when using the explicit management heap functionality in the application
7.11.1 Determine whether to use the explicit management heap functionality in the application
7.11.2 Estimation concept
7.11.3 Memory size used in the application
7.12 Determining the usage of the Explicit heap using the automatic allocation functionality of the Explicit Memory Management functionality
7.13 Errors that occur during the application of the Explicit Memory Management functionality and the solutions
7.13.1 Investigating the usage (snapshot) of Explicit heap at a certain point
7.13.2 Investigating the transition of usage status
7.13.3 Checking and measures when there is an overflow from the Explicit heap
7.13.4 Checking and measures when the initialization of the Explicit memory block fails
7.13.5 Checks and measures when an object is transited to the Java heap during the explicit release processing of the Explicit memory block
7.13.6 Checks and measures when the automatic release processing of the Explicit memory block takes a long time
8. Performance Tuning (J2EE Application Execution Platform)
8.1 Points to be considered for performance tuning
8.1.1 Viewpoints for performance tuning
8.1.2 Tuning procedure
8.1.3 Items that can be tuned for each type of application
8.2 Tuning Method
8.3 Optimizing the number of concurrent executions
8.3.1 Concept of number of concurrent executions control and pending queue control
8.3.2 Procedure for requesting the maximum number of concurrent executions and pending queue
8.3.3 Controlling the number of request-processing threads in a Web server
8.3.4 Controlling the number of concurrent executions of a Web application
8.3.5 Controlling the number of concurrently executed threads in a Enterprise Bean
8.3.6 Controlling the number of concurrent executions using CTM
8.3.7 Tuning parameter for optimizing the number of concurrent executions
8.4 Optimizing the method of invoking the Enterprise Bean
8.4.1 Using the local interface
8.4.2 Using the functionality for optimizing the local invocation of the remote interface
8.4.3 Using the pass by reference functionality of the remote interface
8.4.4 Tuning parameters for optimizing the method of invoking the Enterprise Bean
8.5 Optimizing the database access method
8.5.1 Using connection pooling
8.5.2 Using statement pooling
8.5.3 Tuning parameters for optimizing the method of accessing the database
8.6 Setting a timeout
8.6.1 Points where a timeout can be set
8.6.2 Setting the timeout in a Web front-end system
8.6.3 Setting a timeout in the back-end system
8.6.4 Setting the transaction timeout
8.6.5 Setting up a timeout in DB Connector
8.6.6 Setting the database timeout
8.6.7 Setting the method timeout in the J2EE application
8.6.8 Tuning parameters for setting the timeout
8.7 Optimizing the operations of the Web application
8.7.1 Separating the deployment of the static contents and the Web application
8.7.2 Caching static contents
8.7.3 Distributing the requests using the redirector
8.7.4 Tuning parameters for optimizing the operations of the Web application
8.8 Optimizing the operation of CTM
8.8.1 Tuning the monitoring interval of the operation state of CTM domain managers and CTM daemons
8.8.2 Tuning the monitoring interval of the load status
8.8.3 Setting up a timeout lock for CTM daemon
8.8.4 Setting up a priority order for the requests distributed with CTM
8.8.5 Tuning parameters for optimizing the operation of CTM
8.9 Tuning other items
9. Performance Tuning (Batch Application Execution Platform)
9.1 Points to be considered for performance tuning
9.1.1 Viewpoints of performance tuning
9.1.2 Tuning procedure
9.1.3 Tuning items
9.2 Tuning procedure
9.2.1 Tuning a batch server
9.2.2 Tuning a resource
9.3 Setting up timeouts
9.3.1 Points where you can set up a timeout
9.3.2 Setting up the transaction timeout
9.3.3 Tuning parameters for setting up the timeout
9.4 Setting up the threshold value to be used to control garbage collection
9.4.1 Purpose of setting up a threshold value
9.4.2 Concept of setting up the threshold value
9.4.3 Tuning parameters for setting up the threshold value to be used for controlling a garbage collection
Appendixes
A. Efficient Usage of the Explicit Heap Used in an HTTP Session
A.1 Considering the life span of the objects stored in an HTTP session
A.2 Considering the update frequency of the objects stored in an HTTP session
A.3 Considering the timing at which an HTTP session is created
B. Effect on the Explicit Memory Management Functionality Due to the Life Span of the Objects Allocated to the Explicit heap
B.1 Effect on the automatic release processing of the Explicit memory block
B.2 Effect on the memory usage of the Explicit heap
B.3 Relation between the reference relationship and the life span of objects allocated to the Explicit heap
C. Tuning Parameters for Performing the Performance Tuning with Methods other than the Recommended Procedures
C.1 Tuning parameter for optimizing the number of concurrent executions (methods other than the recommended procedures)
C.2 Tuning parameters for optimizing the method of invoking the Enterprise Bean (methods other than the recommended procedures)
C.3 Tuning parameters for optimizing the methods of accessing the database (methods other than the recommended procedures)
C.4 Tuning parameters for specifying the timeout (methods other than the recommended procedures)
C.5 Tuning parameters for optimizing the operations of the Web application (methods other than the recommended procedures)
C.6 Tuning parameters for optimizing the operation of CTM (methods other than the recommended procedures)
C.7 Tuning parameters for a persistent connection (methods other than the recommended procedures)
C.8 Tuning parameters for setting up the threshold value that causes full garbage collection of the batch server (methods other than the recommended procedures)
D. Glossary
Index