Audience
Webmasters and System Administrators who install, configure, and maintain Java EE Applications on JBoss Application Server 7 or JBoss EAP 6.
Prerequisites
The student should have a familiarity with basic Linux operational skills like running commands from a command prompt and networking. Although not required, familiarity with web-based applications, web servers, and Java is suggested.
Duration
4 days. Hands on.
This course is available on site only. Please call for details.
Course Objectives
This training course covers both the unsupported open source JBoss Application Server and the supported platform available from JBoss/RedHat (JBoss Enterprise Application Platform). This class covers both so no matter which type of JBoss environment you have this course is right for you. The JBoss EAP 6 product contains the JBoss Application Server 7.1 product internally which is why there are two different version numbers in the course title. The labs for this course are done in a Linux environment.
The JBoss Application Server is one of the most popular open source Java application servers on the market. This release, JBoss AS 7, is a major release that includes many improvements and changes from the widely adopted JBoss 5 platform. The new release has a completely new structure and management model which is covered in depth in the course.
This course covers in depth the major administrative tasks required to maintain a JBoss environment. This includes use of the new administrative tools, the web-based Management Console and scripting with the admin CLI (Command Line Interface). The course starts quickly to cover installing and running the JBoss server and deploying applications. The new architecture of the JBoss server is covered so students are more familiar with how various services and settings will be configured. It then covers configuration of some of the major services like logging, database connections, messaging resources, security, and web services. The course finishes with coverage of various aspects of JBoss performance and the features that can be utilized in more complex JBoss environments and what benefit they would provide. These features used in more complex environments include the new JBoss "Domain Mode", load balancing web requests with a web server, and properly configuring applications to support a clustered JBoss environment.
Topics covered include:
- JBoss Installation
- Management Techniques and Tools
- Application Deployment
- JBoss Structure and Architecture
- JBoss CLI Scripting
- Logging Configuration
- Database Connections
- Messaging Configuration
- Security
- Web Services
- JBoss Performance
- JBoss Domain Mode
- Load Balancing Web Applications
Course Content
JBoss Introduction
Goals of Enterprise Applications
What is Java?
What is Java EE?
The Java EE Specifications
Java EE 6 Web Profile
Role of Application Server
JBoss Family
JBoss Application Server
Relation to JBoss Enterprise Application Platform
Differences Between JBoss AS and JBoss EAP
Differences From Prior JBoss Versions
Differences Between JBoss and Other Application Servers
Wildfly
JBoss Support and Documentation
Summary
Reference
Installing and Running JBoss
Installation Prerequisites
Java Version
JBoss Installation
JBoss Installer
Standalone and Domain Mode
Directory Structure
Important 'bin' Commands
JBoss Configuration Profiles
Starting JBoss
Network Binding Behavior
Welcome Page
Standalone Base Directory
Stopping JBoss
Other Common Components
Summary
Reference
JBoss Management Console
Approaches to Managing JBoss Configurations
Overview of JBoss Management Console
Accessing Management Console
add-user Command
Console Interface
Deployments
Configuation
Runtime
Summary
Java EE Applications in JBoss
Java EE Components
Java EE Vendor Specifications
Containers
Java EE Blueprint
Java EE Application Structure
EAR File
What are Modules?
Java EE Deployment Descriptors
Web Module
EJB Module
Client Module
JBoss Deployment Descriptors
Code Annotations
JBoss Application Deployment
Deployment Scanner
Deployment Scanner Marker Files
CLI Deployment
Deploying With Management Console
Deployments in Configuration XML
Deployment Overlay
Summary
JBoss Architecture and Configuration
JBoss Architecture
Server Extensions
Subsystems
Subsystem Configuration
Variables in Configuration Files
Important System Properties
Interfaces
Controlling Network Binding
Socket Binding
Alternate Configurations
Configuration Snapshots and History
Reloading & Restarting JBoss
JBoss Modules
Use and Benefits of JBoss Modules
Summary
JBoss CLI Scripting
CLI Overview
Starting CLI
Connecting CLI to a Server
CLI Security
CLI Commands & Operations
CLI Commands
Command History & Autocomplete
JBoss Management Model
Management Model Reference
CLI Navigation
CLI Operations
CLI Read Operations
Adding Resources with CLI
CLI GUI
CLI Configuration
Batch Mode
CLI Archive
Summary
JBoss Logging
JBoss Logging
Logging Components
Log Levels
Loggers
Logger Hierarchy
Logging Code
JBoss Logging Handlers
Formatter
Logging Configuration
Modifying Log Level
Creating Application Logs
Log Viewer in Management Console
HTTP Access Logs
JBoss HTTP Access Log
Summary
Connecting to a Database
What is JDBC?
JDBC Driver
Typical Unmanaged JDBC Use
Problems to Address
Data Source Architecture
JDBC Data Sources
Typical Use of Data Source
JPA and Data Source
JBoss Datasources
H2 Database
Types of JBoss Data Sources
Defining JBoss Datasources
Adding JDBC Drivers
Define Datasource
Optional Datasource Properties
Common Additional Properties
Connection Pool Properties
Validation Properties
Timeout Properties
Deploy Application Using Data Source
Configuring Datasources Subsystem
Configuration in Management Console
Configuration with JBoss CLI
Adding Datasource With CLI
Deployment of *-ds.xml Files
Data Source Failover
Summary
JMS Messaging
Messaging Intro
Messaging Example
Messaging Components
Messaging Types
JMS (Java Messaging Service)
JMS Resources
Message Driven Beans (MDB)
HornetQ
Configuring HornetQ
JMS Connection Factories
JMS Destinations
"Match" Syntax
Address Settings
Security Settings
MDB Destinations
Other HornetQ Configuration
Configuration in Management Console
Configuration with JBoss CLI
Summary
JBoss Security
Security Resources
JBoss Security Overview
Management Interface Security
Default Management Authentication
Other Management Authentication Options
TLS/SSL (Secure Sockets Layer)
Digital Certificates
Creating Self-Signed Certificate
Enable TLS/SSL on JBoss Connections
Enable HTTPS on Web Subsystem
Configure HTTPS on Management Console
Management Role-Based Access Control
Standard RBAC Roles
Enable RBAC
Password Vault
Configuring Password Vault
Summary
Java EE Security in JBoss
Authentication and Authorization
Challenge Mechanism
Java EE Security Roles
JBoss Security Domain
Login Modules
Common Login Modules
Configuring Security Domains
Default Security Domain
Default EJB Security
UsersRoles Login Module
Using a Database for Authentication
Using an LDAP Server
Chaining Multiple Login Modules
Chaining Multiple Login Modules - Example
Stacking Login Modules
Stacking Login Modules - Example
Hashed Passwords
Testing Security
Summary
Web Service Administration
What is a Web Service?
SOAP Overview
WSDL Overview
WSDL Syntax Overview
Service Endpoint Definition
Web Service Administration Tasks
REST Web Services
JBoss Web Services and Clients
JBoss Web Service Deployment
Controlling Generated WSDL Address
Routing Web Service Requests
JBoss Web Service Deployment Descriptor
Writing Portable Web Service Clients for JBoss
Using a Packaged WSDL
Managed Web Service Clients
JBoss @WebServiceRef Customization
JBoss Web Service Tools
Advanced JBoss Web Service Features
Summary
Reference
Java Memory Management
Java Heap Space
Heap Size Limits
Default Size Limits
Garbage Collection Basics
Allocation Failure (AF)
OutOfMemoryError
Memory Leak
Free Space Threshold
Garbage Collection Mechanism
GC Performance Improvements
Generational Garbage Collection
Thread Local Heap (TLH)
Memory Tuning Goals
Steady State Heap Size
Analyzing Steady State Behavior
Effect of Initial Heap Size on GC
Optimizing GC Duration
Summary
JBoss Performance
Monitoring Runtime JBoss Performance
JAVA_OPTS Environment Variable
Subsystem Tuning
Summary
Complex JBoss Environments
Considerations for Complex JBoss Environments
Clusters
Clustering Terminology
Horizontal Scaling
Vertical Scaling
Options for Defining Clusters
Load Balancing JBoss Servers
HA Configurations
JGroups
JGroups Configuration
Modifying Server Ports
Running Multiple Instances of JBoss on Single Machine
Summary
JBoss Domain Mode
Domain Mode Overview
Domain Mode Terminology
Defining a Domain
Elements of domain.xml
Elements of host.xml
Authentication of Host Controllers
Steps to Establish a Domain Controller
Steps to Establish a Host Controller
Server Group
Changes to Management Console
Changes to CLI
Application Deployment in a Domain
Domain Controller Failure
Domain Controller Disaster Recovery
JBoss Web Server Integration
Role of Web Server
Virtual Hosts
Virtual Host Root Context
Supported Web Servers
Apache httpd
mod_cluster Overview
Red Hat JBoss Web Server
Configuring mod_cluster
JBoss Configuration
Sticky Sessions
mod_cluster_manager Application
SSL For mod_cluster and JBoss
Summary
Distributed Applications
Application State
Distributed Failover
HTTP Session State Replication
Utilizing Session Replication
Session Timeout
Clustered Session EJBs
Clustering Stateless Session Beans (EJB 3.x)
Clustering Stateful Session Beans (EJB 3.x)
Summary