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.