User ManualTable of ContentsSun GlassFish Enterprise Server 2.1 Performance Tuning Guide1Preface13Sun GlassFish Enterprise Server Documentation Set13Default Paths and File Names14Typographic Conventions15Symbol Conventions15Documentation, Support, and Training16Third-Party Web Site References16Sun Welcomes Your Comments16Overview of Enterprise Server Performance Tuning17Process Overview17Performance Tuning Sequence18Understanding Operational Requirements19Application Architecture19Security Requirements21User Authentication and Authorization21Encryption21Hardware Resources22Administration23General Tuning Concepts23Capacity Planning24To Determine Capacity25User Expectations25Further Information26Tuning Your Application27Java Programming Guidelines27Avoid Serialization and Deserialization27Use StringBuffer to Concatenate Strings27Assign null to Variables That Are No Longer Needed28Declare Methods as final Only If Necessary28Declare Constants as static final28Avoid Finalizers28Declare Method Arguments final29Synchronize Only When Necessary29Use DataHandlers for SOAP Attachments29Java Server Page and Servlet Tuning29Suggested Coding Practices30General Guidelines30Avoid Shared Modified Class Variables30HTTP Session Handling30Configuration and Deployment Tips31Optimize SSL31Disable Security Manager31EJB Performance Tuning32Goals32Monitoring EJB Components32Monitoring Individual EJB Components34General Guidelines35Use High Performance Beans35Use Caching35Use the Appropriate Stubs36Remove Unneeded Stateful Session Beans36Cache and Pool Tuning Tips36Using Local and Remote Interfaces36Prefer Local Interfaces37Using Pass-By-Reference Semantics37Improving Performance of EJB Transactions38Use Container-Managed Transactions38Don’t Encompass User Input Time38Identify Non-Transactional Methods38Use TX_REQUIRED for Long Transaction Chains38Use Lowest Cost Database Locking38Use XA-Capable Data Sources Only When Needed38Configure JDBC Resources as One-Phase Commit Resources39Use the Least Expensive Transaction Attribute39Using Special Techniques39Version Consistency39Request Partitioning41To enable request partitioning41Tuning Tips for Specific Types of EJB Components42Entity Beans42Stateful Session Beans42Checkpoint only when needed43Stateless Session Beans43Read-Only Entity Beans43Refresh period44Pre-fetching Container Managed Relationship (CMR) Beans44JDBC and Database Access46Use JDBC Directly46Encapsulate Business Logic in Entity EJB Components46Close Connections46Minimize the Database Transaction Isolation Level46Tuning Message-Driven Beans47Use getConnection()47Tune the Message-Driven Bean’s Pool Size47Cache Bean-Specific Resources48Limit Use of JMS Connections48Tuning the Enterprise Server49Deployment Settings49Disable Auto-deployment50Use Pre-compiled JavaServer Pages50Disable Dynamic Application Reloading50Logger Settings50General Settings51Log Levels51Web Container Settings51Session Properties: Session Timeout51Manager Properties: Reap Interval52Disable Dynamic JSP Reloading52EJB Container Settings53Monitoring the EJB Container53Tuning the EJB Container53Overview of EJB Pooling and Caching53Tuning the EJB Pool54EJB Pool Settings54Tuning the EJB Cache55EJB Cache Settings55Pool and Cache Settings for Individual EJB Components56Commit Option57Determining the best commit option57Java Message Service Settings58Transaction Service Settings58Monitoring the Transaction Service58Viewing Monitoring Information58Tuning the Transaction Service59Disable Distributed Transaction Logging59Recover On Restart (Automatic Recovery)60Keypoint Interval60HTTP Service Settings60Monitoring the HTTP Service60DNS Cache Information (dns)61Enabled61CacheEntries (CurrentCacheEntries / MaxCacheEntries)61HitRatio62Caching DNS Entries62Limit DNS Lookups to Asynchronous62Enabled62NameLookups62AddrLookups62LookupsInProgress62File Cache Information (file-cache)63Keep Alive (keep-alive)63Connection Queue64Tuning the HTTP Service64Access Log64Request Processing64Thread Count65Initial Thread Count65Request Timeout65Buffer Length66Keep Alive66Max Connections66Time Out67HTTP Protocol67DNS Lookup Enabled67HTTP File Cache67Max Files Count68Hash Init Size68Max Age68Small/Medium File Size and File Size Limit68File Transmission68Tuning HTTP Listener Settings69Network Address69Acceptor Threads69ORB Settings70Overview70How a Client Connects to the ORB70Monitoring the ORB70Connection Statistics71Thread Pools71Tuning the ORB71Tunable ORB Parameters72ORB Thread Pool Parameters72Client ORB Properties73Controlling connections between client and server ORB73Using multiple connections73Load Balancing74Thread Pool Sizing74Examining IIOP Messages74Improving ORB Performance with Java Serialization75To Enable Java Serialization76Using JSG for Application Clients76Thread Pool Settings76Tuning Thread Pools (Unix /Linux only)76Resources77JDBC Connection Pool Settings77Monitoring JDBC Connection Pools77Tuning JDBC Connection Pools77Pool Size Settings78Timeout Settings78Isolation Level Settings79Connection Validation Settings79Connector Connection Pool Settings80Transaction Support80Tuning the Java Runtime System83Java Virtual Machine Settings83Managing Memory and Garbage Collection84Tuning the Garbage Collector84Choosing the Garbage Collection Algorithm85To use the CMS collector85Additional Information85Tracing Garbage Collection86Other Garbage Collector Settings86Tuning the Java Heap87Guidelines for Java Heap Sizing87Heap Tuning Parameters88Survivor Ratio Sizing89Rebasing DLLs on Windows89To rebase the Application Server’s DLLs90Further Information91Tuning the Operating System and Platform93Server Scaling93Processors93Memory94Disk Space94Networking94Solaris 10 Platform-Specific Tuning Information95Tuning for the Solaris OS95Tuning Parameters95Sizing the Connection Hash Table96File Descriptor Setting97Linux Configuration97Tuning for Solaris on x8698File Descriptors99IP Stack Settings99Tuning for Linux platforms100File Descriptors100Virtual Memory101Network Interface102Disk I/O Settings102To tune disk I/O performance for non SCSI disks102TCP/IP Settings102To tune the TCP/IP settings102Tuning UltraSPARC® T1–Based Systems103Tuning Operating System and TCP Settings103Disk Configuration105Network Configuration105Start Options105Tuning for High-Availability107Tuning HADB107Disk Use107Calculating HADB Data Device Size107Tuning Data Device Size108Placing HADB files on Physical Disks109Memory Allocation109Performance110DataBufferPoolSize110Tuning DataBufferPoolSize111LogBufferSize111Tuning LogBufferSize112InternalLogbufferSize112Tuning InternalLogbufferSize113NumberOfLocks113Calculating the number of locks114Summary114Tuning NumberOfLocks114Timeouts115JDBC connection pool timeouts115Load Balancer timeouts115HADB timeouts116Operating System Configuration116Tuning the Enterprise Server for High-Availability116Tuning Session Persistence Frequency117Web-method117Time-based117Session Persistence Scope118session118modified-session118modified-attribute118Session Size118Checkpointing Stateful Session Beans119Configuring the JDBC Connection Pool119Configuring the Load Balancer120Enabling the Health Checker120Index123Size: 1.03 MBPages: 128Language: EnglishOpen manual