Administration und Konfiguration für JBOSS Seminarunterlage Version: 2.03 Version 2.03 vom 7. Mai 2012
Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Westernmauer 12-16 D-33098 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Marlene-Dietrich-Str. 5 D-89231 Neu-Ulm Tel.: (+49) 07 31 / 9 85 88 550 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Sie können die von der ganzen Welt aus durch folgende Internet Adresse kontaktieren: http://www.ordix.de Sie können uns weiterhin über die Email-Adressen training@ordix.de oder info@ordix.de kontaktieren Version: 2.03 Seite 2
Inhaltsverzeichnis 1 Einführung in JEE... 7 1.1 Grundlagen und Begriffsdefinitionen... 8 1.2 Komponenten von JSE / JEE... 9 1.3 Was ist JEE?... 10 1.4 Aufgaben eines JEE Servers... 12 1.5 JEE-Architektur... 13 1.6 JEE Server Bestandteile... 14 1.7 Container-Aufgaben... 15 1.8 EJB - Enterprise Java Beans... 16 1.9 Vorteile von EJBs... 17 1.10 Servlets... 18 1.11 Vorteile von Servlets... 19 1.12 JSP (Java Server Page)... 20 1.13 Vorteile von JSPs... 21 1.14 Application Server... 22 1.15 Anbieter... 23 1.16 Typische JEE Architektur... 24 1.17 Architekturen Enterprise Anwendung... 25 1.18 Zwei-Schichten-Architektur... 26 1.19 Drei-Schichten-Architektur... 29 1.20 Vier-Schichten-Architektur... 32 1.21 Schichten der JEE-Architektur... 35 1.22 Schichten-Architekturen... 36 1.23 Beispiel-Anwendung Java Petstore... 37 2 Einführung in JBoss... 40 2.1 JBoss im Überblick - Eigenschaften und Historie... 41 2.2 Projekte / Produkte rund um JBoss... 43 2.3 Geschäftsmodell... 45 2.4 JBoss-Dokumentation... 46 3 Architekturübersicht... 47 3.1 Java Management Extension... 48 3.2 JBoss - Architektur... 49 3.3 MBeans... 50 3.4 JBoss Microcontainer... 51 3.5 POJOs... 52 3.6 JMX vs. Microcontainer... 53 3.7 JBoss - Architektur... 54 3.8 Classloading... 56 3.9 Unified Classloading... 58 3.10 Packaging... 59 3.11 Deployment... 61 3.12 Startreihenfolge... 62 3.13 DeploymentSorter... 63 3.14 Redeployment... 64 3.15 Aufrufketten... 65 3.16 Proxys... 67 3.17 Interceptoren... 68 3.18 Invoker... 74 4 Installation... 75 4.1 Installation Software und Systemumgebung... 76 4.2 Installation Server... 77 4.3 Startskripte anpassen... 78 4.4 Verzeichnisstruktur... 79 4.5 Server Konfiguration... 81 Version: 2.03 Seite 3
4.6 Verzeichnisstruktur default-konfiguration... 84 4.7 Eigene Konfiguration... 86 4.8 Starten des JBoss... 87 4.9 JMX Konsole... 88 4.10 Web Konsole... 89 4.11 Admin Konsole... 90 4.12 Troubleshooting... 91 4.13 Default-Portliste des JBoss... 92 4.14 Stoppen des JBoss... 93 5 Deployment... 94 5.1 Deployment... 95 5.2 Deployment Deskriptor... 96 5.3 EAR-Datei... 97 5.4 Beispielanwendung... 99 5.4.1 Beispielanwendung - To Do... 99 5.4.2 Beispielanwendung Vorbereitung... 100 5.4.3 Beispielanwendung Konfiguration... 102 5.4.4 Beispielanwendung Datenbank... 105 5.4.5 Beispielanwendung Deployment... 106 5.4.6 Beispielanwendung ToDo... 107 6 Logging Log4J... 108 6.1 Logging... 109 6.2 Log4J Einführung... 110 6.3 Log4J Logger... 111 6.4 Log4J Level... 113 6.5 Log4J Appender... 115 6.6 Log4J Layout... 118 6.7 Log4J - Konfiguration über XML... 119 6.8 Log4J Anmerkungen... 120 6.9 Logging über JMX-Konsole... 121 6.10 Logging über Web-Konsole... 122 6.11 Logging beim JBoss... 123 6.12 org.jboss.logging.log4jservice... 124 6.13 conf/jboss-log4j.xml... 125 6.14 JBoss Subsystem Kategorien... 129 6.15 Seperates Logging pro Anwendung... 130 6.16 Separates Logging pro Anwendung: TCL-Filter... 131 7 JBossNS Naming Service... 133 7.1 JNDI... 134 7.2 Namen... 135 7.3 Namensräume beim JBossNS... 136 7.4 JNDIView über JMX-Konsole... 137 7.5 JDNIView über Web-Konsole... 138 7.6 Bsp:: Aufruf list()-methode... 139 7.7 JBossNS: NamingService... 140 7.8 Client-Zugriff... 143 7.9 NamingContextFactory s des JBoss... 146 7.10 org.jboss.security.jndi.logininitialcontextfactory... 150 7.11 NamingAlias-MBean... 152 8 JBossSX Security Xtension... 153 8.1 Security Xtension... 154 8.2 Deklaratives Sicherheitsmodell... 157 8.3 Web/JMX-Konsole sichern... 159 8.4 Sicherung einer Webanwendung... 167 8.5 Zugriffe auf EJBs steuern... 172 Version: 2.03 Seite 4
8.6 Login-Module... 177 8.7 Flag-Einstellungen... 179 8.8 Beispiel eines Login-Modules... 180 8.9 JBoss-Login-Module... 181 9 JBossCX - Datenquellen... 189 9.1 JCA... 190 9.2 JBossCX... 191 9.3 Wichtige MBeans zur JCA-Verwaltung... 192 9.4 JCA Resource Adaptor... 193 9.5 Je Datasource werden MBeans erzeugt... 194 9.6 Datenquellen per Datei *-ds.xml anbinden... 195 9.7 Gegenwärtige Beispielkonfigurationen... 196 9.8 Arten der Verbindungsmöglichkeit... 197 9.9 Übersicht der Datenquellen... 198 9.10 Konfiguration der Datenquelle... 199 9.11 Beispiel: mysql-ds.xml... 200 9.12 Struktur der local-tx-datasource... 201 9.13 Struktur der no-tx-datasource... 203 9.14 Struktur der xa-datasource... 205 9.15 Struktur der ha-local-tx-datasource... 207 9.16 Struktur der ha-xa-datasource... 209 9.17 Übersicht der Fremdsystemanbindung... 211 9.18 Konfiguration einer Fremdsystemanbindung... 212 9.19 Struktur der no-tx-connection-factory... 214 9.20 Struktur der tx-connection-factory... 215 10 JBossTA Transaction Manager... 216 10.1 JTA/JTS... 217 10.2 Globale Transaktionen... 218 10.3 TransactionManager über JMX-Konsole... 222 10.4 TransactionManager über Web-Konsole... 223 10.5 TransactionManager... 224 10.6 org.jboss.tm.transactionmanagerservice... 225 10.7 com.arjuna.ats.jbossatx.jta.transactionmanagerservice... 226 10.8 XidFactory... 227 11 Monitoring... 229 11.1 Monitoring... 230 11.2 Monitoring: Konzept... 231 11.3 Monitore erzeugen... 233 11.4 Listener konfigurieren... 237 11.5 EmailAlertListener konfigurieren... 240 11.6 mail-service.xml... 241 11.7 monitoring-service.xml... 243 11.8 Substitutionen... 245 11.9 GUI: Monitore erzeugen... 246 11.10 GUI: Monitore verwalten... 248 11.11 Graphische Darstellung von Werten... 250 11.12 Snapshots erzeugen... 252 11.13 Snapshots verwalten... 254 11.14 Ausgabe eines Snapshots... 255 11.15 Third Party Monitoring-Tools... 256 12 Service Binding Management... 257 12.1 Szenario... 258 12.2 IP-Adressbindung... 259 12.3 Port-Bindung... 260 12.4 ServiceBindingManager... 261 Version: 2.03 Seite 5
12.5 Funktionsweise... 262 12.6 PortSets... 263 12.7 Beispiel einer PortSet Konfiguration... 264 12.8 ServiceBindingManager... 266 12.9 ServiceBindingManagementObject... 267 12.10 ServiceBindingManager über JMX-Konsole... 268 12.11 ServiceBindingManager über Web-Konsole... 269 13 JBoss Cluster... 271 13.1 Cluster... 272 13.2 Clusterfunktionalitäten des JBoss... 273 13.3 Praxisbeobachtungen... 275 13.4 Praxisszenario A... 276 13.5 Webportal-Ebene... 277 13.6 Separation Web- und Applikationsserver... 278 13.7 Praxisszenario B... 279 13.8 JNDI im Cluster... 280 13.9 Smart Proxies... 282 13.10 Partitionen... 283 13.11 Kennzeichnung von EJBs... 284 13.12 JBoss Clusters... 285 13.13 ClusterPartition... 287 13.14 Clusterkommunikation... 289 13.15 ClusterPartition über JMX-Konsole... 292 13.16 ClusterPartition über Web-Konsole... 293 13.17 Client-Sicht... 294 13.18 Client-Sicht: Client-side interceptor... 295 13.19 Client-Sicht: Load balancer... 296 13.20 Load-balancing Policies... 297 13.21 Farming Service: Deployment im Cluster... 298 13.22 Farming Service: Undeployment im Cluster... 299 13.23 Anmerkungen zum Farming Service... 300 13.24 Aktivierung des Farm Service... 301 13.25 JNDI im Cluster: Serverseite... 302 13.26 HANamingService... 303 13.27 org.jboss.ha.jndi.hanamingservice... 304 13.28 HANamingService über JMX-Konsole... 305 13.29 HANamingService über Web-Konsole... 306 13.30 JNDI im Cluster: Clientseite... 307 13.31 Problembehandlung... 311 14 Administrationsaufgaben... 313 14.1 Administrationsaufgaben... 314 14.2 Firewall und JBoss... 315 14.3 Default-Portliste des JBoss... 316 14.4 Aufräumarbeiten... 317 14.5 Anzahl DB-Verbindungen überwachen... 319 14.6 Speicherverbrauch überwachen... 322 14.7 Optimale Konfiguration?!... 324 14.8 Default-Konfiguration im JBoss 4.2.3.GA... 325 14.9 Modifizierte Konfiguration... 327 14.10 Twiddle (twiddling bits via JMX)... 328 14.11 Twiddle... 329 14.12 twiddle-kommandos... 330 14.13 twiddle-beispiele... 332 14.14 Überwachungssystem mit twiddle... 336 Version: 2.03 Seite 6