JB439 JBoss Clustering

Clustering is an advanced course focusing on the high availability services of the JBoss Enterprise Middleware System (JEMS), including JGroups, JBoss Cache, load balancing, and more.

Course Description

Clustering is a 4-day training focusing on the high availability services of JBoss Enterprise Middleware products (such as JBoss Enterprise Application Platform). You will learn how JBoss Application Server leverages JGroups and JBoss Cache for replication and fail-over, how to configure, tune and implement JGroups protocol stacks, how to leverage JBoss Cache in your own middleware applications and how to use and configure mod_jk for HTTP load balancing. We will also cover in some detail JBoss Application Server high availability services such as HA-JNDI and HA-singleton.

What you will learn:

Course Outline

The following is an outline of the skills and knowledge represented in the training elements of the JB439 JBoss Clustering Course.

Note: Technical content subject to change without notice. Significant changes in course content will generally be available in posted outlines at least two months prior to being implemented in scheduled courses, to allow enrolled students adequate prep time. Reload this page regularly to insure up-to-date information.

Course content

  1. Overview to JEMS High Availability Services
  2. This module gives you an
    overview of the JBoss AS platform, how it integrates different JEMS products and
    where high availability features should be considered for mission-critical
    deployments. We give an architectural overview to which services benefit from
    replication, load balancing and fail-over and where we JBoss AS utilizes JEMS
    products such as JBoss Cache, JGroups and mod_jk.

  3. Reliable Multicasting with JGroups
  4. Introduction to JGroups group
    communication protocol. JGroups is the underlying network level library utilized
    by most JEMS product to achieve high availability. This module gives you an
    overview into what JGroups is, and how to use the JGroups API. We introduce
    you to the concepts of JGroups channels, groups, views, events and messages.

  5. JGroups Protocols
  6. This module gives a detailed description of different
    network protocols available in JGroups. We discuss different protocol
    implementations for reliable network transport, discovery, group membership,
    failure detection, message ordering, security and state transfer.

  7. Protocol Stacks and Implementation
  8. In this module we discuss the JGroups
    protocol stack architecture, how different protocols may be assembled together,
    how they are implemented and finally, how to add your own protocol
    implementation into JGroups protocol stack.

  9. JGroups Building Blocks and Troubleshooting
  10. JGroups building blocks are
    higher level implementations on top of JGroups protocol stack that help you
    implement common tasks using JGroups library. In this module we introduce you
    to the available default implementations, e.g. an RPC invocation implementation
    across replicated objects using JGroups. We will also look at common issues to
    troubleshoot when configuring and setting up your network for JGroups.

  11. JBoss Cache Overview and API
  12. This module introduces you to JBoss Cache -
    architecture overview, features and API. You will learn how to manage the tree
    structure of JBoss Cache, creating and removing nodes and modifying data in
    the cache. JBoss Cache builds on top of the JGroups library and is a key
    technology in implementing high availability services in JBoss AS.

  13. Cache Loaders and Eviction Policies
  14. Cache loading and eviction policies are
    critically important to understand how to manage the life cycle of cached data
    with JBoss Cache. In this section we cover cache loaders which mandate under
    what policies data is moved from persistent stores into memory cache. Eviction
    policies allow you to configure and manage the data while in the cache and
    decide under what conditions data should be evicted back to your datastore.

  15. Cache Replication, Transactions and Isolation Levels
  16. This module gets into
    details on different usage scenarios with JBoss Cache. It will help you to
    understand the different replication modes with JBoss Cache - asynchronous
    and synchronous replication - and the implication of replication mode to
    application performance. We will also learn how to use transactional access to
    the JBoss Cache, how to set different isolation levels for the cached data, and
    how the transaction and isolation levels affect the locking performed by JBoss
    Cache.

  17. POJO Cache Overview and API
  18. In this section we look at an advanced version of JBoss Cache (POJO Cache) that utilizes the JBoss AOP framework for efficient implementation of data replication. We will see how the AOP version of JBoss Cache differs in architecture, the changes in the cache API and how POJO Cache manages Java objects inserted into cache differently from other JBoss Cache providers.

  19. POJO Cache Implementation
  20. This module goes into deeper detail on JBoss Cache implementation. We see how POJO Cache is leveraged to dynamically introduce interceptors to cache objects, how we can transparently keep track of the exact data changes in POJO Cache, how complex Java objects are automatically mapped into an AOP-enabled cache, the use of collections in cached data sets and more.

  21. Web Tier Load Balancing and Failover
  22. In this module we move up one
    abstraction level and start looking at how high availability features are
    implemented at JBoss Middleware and J2EE component level. We start with
    HTTP session replication and see how JBoss Cache is used to implement it. We
    continue by looking at mod_jk features and how to implement load balancing, hot
    stand-by and domain clustering when combining Tomcat servlet container with
    native web servers.

  23. EJB Load Balancing and Failover
  24. This module looks into EJB components,
    recap on the proxy architecture and how we can leverage services on top of
    JGroups to implement load balancing and failover. We will also learn how to
    customize and implement your own load balancing policies with EJBs. We will
    also cover in more detail the naming implementation used with EJBs and how it
    implements high-availability.

  25. JEMS Clustered Services
  26. We look at how to easily replicate service
    implementations (singletons) in a clustered JBoss AS environment. We discuss
    master-slave scenarios and how fail-over works with clustered MBeans. We will
    also study how to enable datasource failover with JBoss AS and discover the
    implementation details behind HA-JNDI and HA-RMI.

Part of The JBoss Enterprise Framework Platform curriculum, which includes:

Prerequisites:

Completion of the JBoss for Advanced J2EE Developers course is strongly recommended before taking this course. It is also strongly recommended that the student has at minimum 18 months of practical development experience using J2EE and other Java middleware technologies, and it is suggested that the student have some practical experience with JBoss Application Server. Solid Java programming experience (minimum 3 years) is required and a strong understanding of basic TCP/IP topics is necessary.

The student must have the following skills:

  • JTA, Transactions, Java concurrency
  • EJB 2.1, JMS, reliable messaging technologies
  • Previous experience with Apache httpd and some exposure to mod_jk and/or mod_proxy
  • Familiar with JBoss AS microkernel and JMX
  • Familiarity with TCP/IP, UDP, Multicasting

Class times:

  • Tuesday through Friday

    • Start: 9:00am
    • End: 4:30 to 5:00pm (depending on class progress)