Course Description

This 3-day Java JBoss Server Administration training course will enable students to understand, configure and manage a JBoss server. The JBoss Application Server is one of the most popular open source Java application servers on the market for developing and deploying enterprise Java applications and Web applications. While rich in functionality, administering the JBoss server can be somewhat challenging, as it often requires you to manipulate multiple XML configuration files that are located in multiple locations in a JBoss installation.

This course covers all the important administrative tasks that are required to administer JBoss server. It starts with installation, architecture, and basic configuration and monitoring, covers deployment and configuration of Web and Enterprise applications, and then moves on to configuration of the many other services that JBoss server supports, such as the Tomcat-based Web container, JDBC and JMS. It also includes coverage of the many details of securing JBoss server, as well as advanced topics such as tuning and clustering.

The course is focussed and informative, and created by experts in the JBoss Application Server. It will demystify the many, sometimes obscure, details of running and maintaining the JBoss server, and leave you well prepared to manage JBoss server installations.

Pre-requisites

A basic knowledge of web-based applications, web server, Java, and XML is recommended.  Attendance at our Java Enterprise Edition training course will provide the necessary JEE platform knowledge

Who is this course for?

Administrators and web masters who need to maintain applications on the JBoss Application Server. It is also useful for software architects and developers who need to have a more detailed understanding of how JBoss works and how it is configured.

Further Training

After some further on-the-job experience with the JBoss Application Server, we recommend students consider attending our Java Enterprise EJB3 and JPA2 training course to gain higher-level skills in the usage of the JEE platform platform.

Course content

Introduction & Installation
Java EE Overview
Java has Multiple Platforms
What is Java EE?
Some Common Java EE APIs
What are Java EE Application Servers?
Multi-Tiered Architecture
Web-Based Architecture with EJB
Rich Client Architecture with EJB
Supporting Both Web Clients & Rich Clients
Playing Server Games
SOA – Service Oriented Architecture
SOA Architecture
JBoss AS Overview
JBoss Application Server (JBoss AS)
JBoss AS History and JBoss the Company
JBoss the Company
JBoss Application Server
Server Architecture – the Microcontainer
Legacy Server Architecture – JMX Microkernel
Services Provided by the MC and MK
JBoss AS – Architecture
JBoss AS – Common Technologies
Installing and Running JBoss AS
System Requirements
Choosing your JVM
Operating System Considerations
Environment Variables
Installing JBoss AS
Server Configurations
Zip Installation
Graphical Installer
Starting JBoss AS
Starting JBoss AS – The Microcontainer
Starting JBoss AS – The Microkernel
The Server is Up!
Stopping JBoss
More About Starting & Stopping JBoss
AS
The \bin Directory and its Files
The run Script
JBoss System Properties and run-D
System Properties & Directory Structure
Other run Options
Heap Allocation
The shutdown Script
Using the shutdown Script
Windows: Running JBoss AS as a Service
Documentation Overview
The \docs Directory
JBoss AS Structure & Architecture
Server Configurations
Server Configuration Structure
Configuration Directory Structure
The conf Directory
bootstrap.xml and bootstrap\*.xml Files
The Legacy jboss-service.xml File
Services Deployed in jboss-service.xml
Microcontainer (MC) and Microkernel
(MK)
The lib Directories
The Deploy Directory
Server Logging
The log Directories and Logging
Configuration
log4j Overview
Appenders and Priority
JBoss Boot Logging
JBoss Server Logging
The jboss-log4j.xml File
Controlling Application Logging
Creating New Appenders
The JBoss Microcontainer
Overview of the Microcontainer (MC)
About Dependency Injection (DI)
MC Configuration File Structure (XML)
’s Attributes & Sub-elements
How JBoss AS Boots – Low Level
Details
Core Services Started in the Bootstrap
A Complete Service Definition
Bean Definition – jboss-beans.xml
MC Bean Deployments
Overview of JMX
JMX Architecture
JMX Object Names
About the JBoss Microkernel (MK)
Relation Between JBoss Microkernel and JMX
About MK Based JBoss Services
Service Definition – jbossservice.xml
MK Bean Deployments
Providing JMX Access to MC Beans
The Admin Consoles
The JMX Console
Looking at MyDependentService
Things you can do with JMXConsole
JMX Console – Logging Control
twiddle – Command-Line JMX
The Web Console
The Admin Console
Jopr Overview
Jopr/JBoss Operations Network (JON)
Jopr Structure
Jopr Agent Structure
GUI Console – The Dashboard
Console – A Server Detail Page
Console – A Service Detail Page
Deployment
Java EE and JBoss Archives
Java EE Archive Structure
WAR/EAR Structure
Deployers and Deployment
JBoss AS Deployment
Architecture
Deploying into JBoss AS
Configuring/Controlling
Deployment Scanning
Deployment Options
Working with Expanded Deployments
Deployment Ordering
Nested Deployments
Classloaders
Classloading
Classloading in Java EE Servers
Class Loader Hierarchy – Normal Java EE
JBoss Class Loader Repository
Creating Isolated Deployments
Web Container, Port Configuration, JNDI, & Datasources
The Web Container
Web Container Overview
JBossWeb Additional Capabilities
Configuration Files
server.xml Structure
Configuring the HTTP Connector – server.xml
Other Connectors – server.xml
Access Logging – server.xml
ROOT.war – The Root Web Application
The Default web.xml File
Monitoring the Web Container
The Tomcat Status Servlet
Port Configuration / ServiceBindingManager
Overview
ServiceBindingManager Definition
Using ServiceBindingManager
Accessing Services on Different Ports
JNDI
Review – JNDI Overview
JNDI Name Tree
Review – JNDI in the Java EE Platform
Configuring JNDI Clients
How JNDI Works
Configuring Naming on JBoss AS
Tunnelling JNDI through HTTP
Datasources
Java and Database Connectivity
Java EE and Datasources
Connection Pooling
Non-Pooled vs. Pooled
Getting a Pooled Connection
Closing a Pooled Connection
Datasources in JBoss AS
Configuring Datasources in JBoss AS
Datasource Configuration File
Hypersonic Datasource Configuration
Other Configuration Elements
Configuring non-tx and XA Datasources
The Hypersonic Database and DefaultsDs
Changing the Hypersonic Database
Other Services
Remote Object Invokers
UnifiedInvoker – JBoss Remoting
JBoss Remoting Details
UnifiedInvoker Configuration
Connector Configuration
EJB3 Invoker Configuration
Older JBoss AS RMI Invokers
HTTP Invoker
HTTP Invoker – http-invoker.sar
How the HTTP Invoker Works
Configuring HTTP Invoker SAR
Using the HTTP Invoker
JMS (Java Message Service)
Note on JMS
Messaging Overview
Publish/Subscribe
Point-to-Point
What is JMS – Java Message Service?
JBoss Messaging
ServerPeer Configuration
Persistence: hsqldb-persistence-service.xml
Persistence Manager Configuration
Post Office / User Manager
ConnectionFactory Configuration
messaging-jboss-beans.xml / Security
Remoting Connector Configuration
Configuring Destinations
JBossMessaging and the JMX Console
Destinations and the JMX Console
SOA/Web Services
SOAP
WSDL
JBossWS – Web Services
JBossWS Management Pages
JBossWS and JMX Console
Other Services
EJB – Enterprise JavaBeans
JBossWS – Web Services
JMX Invoker Adapter
RMI Classloading
Security in JBoss AS
Java EE Security Overview
Security Requirements
Java EE Security in JBoss AS
Transport Level Security with HTTP/SSL
Java EE Security Overview
Java EE Declarative Security
JMX Console – Security Role Declaration
Specifying Security Constraints
Security Constraints – Deployment Descriptor
JBoss AS Security
JBoss Security Mechanism Overview
Security Domains and Login Modules
JBoss Login Modules
UsersRolesLoginModule
Specifying Security Domains
Encrypting User Passwords
Configuring Password Hashing
Generating Hashed Passwords
DatabaseServerLoginModule – DB Based
Security Domain – DatabaseServerLoginModule
LdapLoginModule – LDAP Based
Using the LdapLoginModule
JBoss Security MBeans
The JaasSecurityManager MBean
Encrypting Datasource Passwords
Encrypting Database Login Passwords
Using SecureIdentityLoginModule
TLS/SSL and HTTPS
TLS/SSL & HTTP – Transport Level Security
TSL/SSL Meets Some Security Needs
TLS/SSL Requires Server Setup
The keytool Program
Using the keytool Program
Enabling Tomcat HTTPS
Testing if HTTPS Works
Requiring HTTPS on a Web App
Securing JBoss Services
Securing JBoss Overview
Secure Access to Admin Console/HTTP Invoker
Secure Access to JMX RMI Invoker Adapter
Remove/Restrict Web Class Loading Service
Secure Transport – EJB 3 over SSL
Setting Up SSL for EJB3
Secure Transport – EJB 2 / RMI over SSL
Secure Access to JMS
Secure Transport – JMS and SSL
Secure Transport – RMI/JRMP and SSL
Secure Access to Datasource
Debugging Security
Tuning JBoss AS
Tuning Memory Usage
Tuning Overview
Memory, Memory, Memory
JVM – Heap Size
JVM – Perm Space
JVM – Garbage Collection
JVM – Generational Garbage Collection
JVM – Minor vs. Full Collections
JVM – Optimizing Generational GC
JVM – Parallel Garbage Collectors
JVM – Choosing Garbage Collectors
OS – Memory and Threading
OS and Hardware – Other Considerations
Resource Tuning
Database Tuning
Datasource Tuning
Tomcat Tuning – Connectors
Tomcat Tuning – JSP
Other Tomcat Tuning
Logging
Other Services
Removing Services
Architecture Issues
Playing Server Games
Topology Performance Ramifications
Clustering
Clustering Overview
Cluster Partitions
JGroups
Partition Configuration
JGroups Troubleshooting
Clustered Services
Architecture – Client Side Interceptors
Architecture – Load Balancer
Load Balancing Policies – Client Interceptor
HA-JNDI – High Availability JNDI
Cluster JNDI Architecture
HA-JNDI Server Side Configuration
HA-JNDI Client Side Configuration
HA-JNDI Client Side Autodiscovery
Clustered EJB
Clustered HTTP
The JBoss AS Farm Service
Clustered Singleton Services
Clustered JBoss Messaging
Sucker Password
JBoss EAP – The Production Configuration
Load Balancers – Clustered HTTP
Load Balancers
Sticky Session Configuration in JBossWeb
Load Balancer and Sticky Sessions
mod_cluster
mod_cluster Advantages
Module configuration in Apache httpd
Manager Display
Installation/Configuration in httpd
mod_jk
Configuration in Apache httpd
Configuration of Workers (Tomcat Nodes)
Configuration for a Load Balancer
Load Balancer and Sticky Sessions
Mounting Applications in an External File
Configuration Considerations
Recap
What has been done
Resources