Server User Manual
Table Of Contents
- Sun GlassFish Enterprise Server 2.1 Performance Tuning Guide
- Preface
- Overview of Enterprise Server Performance Tuning
- Tuning Your Application
- Java Programming Guidelines
- Java Server Page and Servlet Tuning
- EJB Performance Tuning
- Goals
- Monitoring EJB Components
- General Guidelines
- Using Local and Remote Interfaces
- Improving Performance of EJB Transactions
- Use Container-Managed Transactions
- Don’t Encompass User Input Time
- Identify Non-Transactional Methods
- Use TX_REQUIRED for Long Transaction Chains
- Use Lowest Cost Database Locking
- Use XA-Capable Data Sources Only When Needed
- Configure JDBC Resources as One-Phase Commit Resources
- Use the Least Expensive Transaction Attribute
- Using Special Techniques
- Tuning Tips for Specific Types of EJB Components
- JDBC and Database Access
- Tuning Message-Driven Beans
- Tuning the Enterprise Server
- Deployment Settings
- Logger Settings
- Web Container Settings
- EJB Container Settings
- Java Message Service Settings
- Transaction Service Settings
- HTTP Service Settings
- ORB Settings
- Thread Pool Settings
- Resources
- Tuning the Java Runtime System
- Tuning the Operating System and Platform
- Tuning for High-Availability
- Index

■
Idle Timeout: Maximum time in seconds that a connection can remain idle in the pool.
After this time, the pool can close this connection. This property does not control
connection timeouts on the database server.
Keep this timeout shorter than the database server timeout (if such timeouts are congured
on the database), to prevent accumulation of unusable connection in Enterprise Server.
For best performance, set Idle Timeout to zero (0) seconds, so that idle connections will not
be removed. This ensures that there is normally no penalty in creating new connections and
disables the idle monitor thread. However, there is a risk that the database server will reset a
connection that is unused for too long.
Isolation Level Settings
Two settings control the connection pool’s transaction isolation level on the database server:
■
Transaction Isolation Level: species the transaction isolation level of the pooled database
connections. If this parameter is unspecied, the pool uses the default isolation level
provided by the JDBC Driver.
■
Isolation Level Guaranteed: Guarantees that every connection obtained from the pool has
the isolation specied by the Transaction Isolation Level parameter. Applicable only when
the Transaction Isolation Level is specied. The default value is true.
This setting can have some performance impact on some JDBC drivers. Set to false when
certain that the application does not change the isolation level before returning the
connection.
Avoid specifying Transaction Isolation Level. If that is not possible, consider setting Isolation
Level Guaranteed to false and make sure applications do not programmatically alter the
connections’ isolation level.
If you must specify isolation level, specify the best-performing level possible. The isolation
levels listed from best performance to worst are:
1. READ_UNCOMMITTED
2. READ_COMMITTED
3. REPEATABLE_READ
4. SERIALIZABLE
Choose the isolation level that provides the best performance, yet still meets the concurrency
and consistency needs of the application.
Connection Validation Settings
The following settings determine whether and how the pool performs connection validation.
Pool Resize Quantity
Chapter 3 • Tuning the Enterprise Server 79










