WA1156 WebSphere v5 Performance Tuning for Developers
Course Outline |
|
| Chapter 1 - Standardized terminology |
|
- Load
- Concurrent load
- Active load
- Throughput
- Pages per second.
- Transactions per second.
- Response time
- Path length
- Bottleneck
- Scaling
|
|
| Chapter 2 - JVM Memory Management Fundamentals |
|
- Memory management by the operating system
- Virtual memory
- The page space
- The page in and page out process.
- IBM JDK 1.3 memory management details.
- Heap allocation
- Thread local storage
- Garbage collection mechanism
- Compaction
- Tuning parameters.
- Lab: Interpret verbosegc output
- Sun JDK memory management details.
- Heap allocation
- Garbage collection mechanism
- Compaction
- Tuning parameters.
- Lab: Interpret verbosegc output
- Coding practices for better memory related performance
- Shallow inheritance
- Short class path
- Minimize hidden objects
- Just In Time object creation.
- Rlease objects immediately
- Reuse objects
- More...
- Lab: Optimize Java code for memory usage.
|
|
| Chapter 3 - Profiling |
|
- Profiling from WSAD
- Setup the environment
- Detecting memory leaks
- Detecting slow classes
- Detecting excessive object creation
- Lab: Detect memory leak and excessive object creation.
- Profiling from JProbe
- Setup the environment
- Detecting memory leaks
- Detecting slow classes
- Detecting excessive object creation
- Lab: Detect memory leak and excessive object creation.
|
|
| Chapter 4 - Impact of Java Language Construts |
|
- Exceptions
- Type casting
- Assertion
- Comparative performance of stack, member and static variables.
- Tuning loops
- Recursion
- Collections
- Advantages of JDK1.3 colelction classes
- Presetting sizes
- Efficient HashMap traversal
- Sorting
- Lab: Efficient use of Java collections.
- Using a logging framework
- Log4J
- JRAS
- Optimize logging.
- Lab: Using Log4J
- Lab: Using JRAS
|
|
| Chapter 5 - Database Coding Practices |
|
- Using a Data Source.
- Proper way of closing JDBC resources.
- Use transactions to wrap database activity
- JDBC transaction
- Session EJB facade
- Client controled EJB transaction
- Lab: Using Data Source and JDBC transaction.
- Using prepared statement
- Security
- Performance
- WebSphere's statement pooling
- Lab: Using Prepared Statements.
- Handling stale connection exception
- Lab: Handling stale connection exception.
- Avoid Two Phase Commit
|
|
| Chapter 6 - Servlet and JSP |
|
- Making Servlets multi-thread aware
- Avoid thread serialization.
- How does WebSphere treat single threaded model.
- Lab: Fix multi-thread incompatibility in a Servlet.
- Using the init method.
- How to cache data and JNDI objects.
- Lab: Cache JNDI objects from the init method.
- Avoid Servlet logging
- Disable session in JSP
- Minimize JSP output size.
- Disable auto class reload.
|
|
| Chapter 7 - Session Management |
|
- Session persistence in WebSphere
- Why we need session persistence?
- Database persistence
- Memory to memory replication
- Minimize session usage
- Discuss alternate techniques
- Cookie
- Hidden variable
- Relational table
- Lab: Modify session management code to use relational table.
- Lab: Modify session management code to use hidden variables.
- Implement java.io.Serializable
- Eliminate circular dependency
|
|
| Chapter 8 - EJB |
|
- Local interfaces
- Lab: Creating an EJB that supports the local interface.
- How to cache data and JNDI objects.
- Lab: Caching JNDI objects.
- Understand WebSphere's object pooling
- Minimize system exception
- Enable pass by reference
- Session facade
- Access beans
- CMP EJB access intent
- Transaction isolation level
- Avoid stateful session bean
- CMP EJB caching
- Lab: Enable CMP data caching.
|
|
| Chapter 9 - WSAD Tuning |
|
- Memory settings
- Closing projects
- Disable autobuild
- Disable verification
- More...
- Lab: Tune WSAD.
|
|