Administering the JBoss 5.x Application Server JBoss Application Server (AS) is one of the most popular open source Java application server on the market. The latest release, JBoss 5, is a Java EE 5 certified platform for developing and deploying enterprise Java applications and Web applications. While rich in functionality, administering JBoss AS 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. JBoss AS 5 also differs in a number of ways from previous versions. This course covers all the important administrative tasks that are required to administer this new version of JBoss AS. 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 AS supports, such as the Tomcat-based Web container, JDBC and JMS. It also includes coverage of the many details of securing JBoss AS, as well as advanced topics such as tuning and clustering. It is written to version 5.1.x of JBoss AS, but is in large part consistent with all 5.x versions. The course is focused and informative, and created by experts in the JBoss AS. It will demystify the many, sometimes obscure, details of running and maintaining the JBoss AS, and leave you well prepared to manage JBoss AS installations. Audience: Administrators and web masters who need to maintain applications on the JBoss Application Server. Prerequisites: Familiarity with basic Windows operational skills is required. A basic knowledge of web-based applications, web server, Java, and XML is recommended. Number of Days: 3 days 1. Introduction and 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 and 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 5 Application Server Server Architecture - the Microcontainer Legacy Server Architecture JMX Microkernel Services Provided by the MC and MK JBoss AS 5.x Architecture JBoss AS 5.x 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 ITCourseware, LLC 1
The Server is Up Stopping JBoss More About Starting and Stopping JBoss AS The <jboss>\bin Directory and its Files The run Script JBoss System Properties and run-d System Properties and Directory Structure Other run Options Heap Allocation The shutdown Script Using the shutdown Script Running JBoss AS as a Service Documentation Overview The <jboss>\docs Directory 2. JBoss AS Structure and 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 MC Configuration File Structure (XML) <bean> 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 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 Providing JMX Access to MC Beans The Admin Consoles The JMX Console Looking at MyDependentService Things you can do with JMX- Console 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 3. Deployment Java EE and JBoss Archives Java EE Archive Structure WAR/EAR Structure Deployers and Deployment JBoss AS Deployment Architecture Deploying into JBoss AS Deployment Options Working with Expanded Deployments Deployment Ordering Nested Deployments Classloaders Classloading ITCourseware, LLC 2
Classloading in Java EE Servers Class Loader Hierarchy Normal Java EE JBoss Class Loader Repository Creating Isolated Deployments Viewing the Loader Repository 4. Web Container, Port Configuration, JNDI, and Datasources The Web Container Web Container Overview JBossWeb 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 JNDI Name Tree Diagram Review JNDI in the Java EE Platform Configuring JNDI Clients How JNDI Works Configuring Naming on JBoss AS Tunneling JNDI through HTTP Datasources Java and Database Connectivity Java EE and Datasources Connection Pooling Non-Pooled vs. Pooled Getting a Pooled Connection Illustrated Closing a Pooled Connection Illustrated 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 5. Other Services Remote Object Invokers UnifiedInvoker JBoss Remoting 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 Using the HTTP Invoker JMS (Java Message Service) Note on JMS Messaging Overview Publish/Subscribe Illustrated Point-to-Point Illustrated What is JMS Java Message Service JBoss Messaging ServerPeer Configuration Persistence: hsqldb-persistenceservice.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 ITCourseware, LLC 3
WSDL JBossWS Web Services JBossWS Management Pages JBossWS and JMX Console Other Services EJB Enterprise JavaBeans JBossWS Web Services JMX Invoker Adapter RMI Classloading 6. 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 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 7. 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 Tomcat Tuning Connectors ITCourseware, LLC 4
Tomcat Tuning - JSP Other Tomcat Tuning Logging Other Services Removing Services Architecture Issues Playing Server Games Topology Performance Ramifications 8. 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 Farm Service Clustered Singleton Services Clustered JBoss Messaging Load Balancers Clustered HTTP Load Balancers Configuration in the Java Web Container 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 ITCourseware, LLC 5