Welcome to the training!


Course Code: DCL-632
Course Title: JBoss EAP 7: Administration
Trainer: Dr. Binnur Kurt
Trainer's CV: Curriculum Vitae
Trainer's Blog: https://binkurt.blogspot.com
Research Info: ResearchGate profile
E-mail: binnur.kurt@gmail.com


After completing this course, you should be able to:

  • Install and run JBoss EAP 7 on Linux and Windows
  • Configure the application server’s main configuration file and some core parts of it, e.g. Thread pool configuration and the Logging subsystem.
  • Configure a JBoss EAP 7 Domain
  • Deploy applications on JBoss EAP 7
  • Create a cluster
  • Load balance web applications
  • Monitor and tune JBoss EAP 7

  • System and Application Server Administrators

  1. Introduction to Java EE
  2. Introduction to JBoss EAP 7.4
  3. Installing JBoss EAP 7.4
  4. Configuring JBoss EAP 7.4 as a Standalone Server
  5. Configuring Enterprise Services
  6. Web Server Configuration
  7. Configuring a JBoss EAP 7.4 Domain
  8. Deploying Applications on JBoss EAP 7.4
  9. Managing the Application Server
  10. Clustering
  11. Load Balancing Web Applications
  12. Monitoring and Performance Tuning JBoss EAP 7.4

Tools

Description File
Java SE Development Kit 17 jdk-17_windows-x64_bin.zip
Java SE Development Kit 16 Download
Java SE Development Kit 15 Download
Java SE Development Kit 14.0.1 Download
Java SE Development Kit 13.0.2 Download
Java SE Development Kit 12.0.2 Download
Java SE Development Kit 11.0.7 Download
Java SE Development Kit 10.0.2 Download
Java SE Development Kit 9.0.4 Download
Java SE Development Kit 8u251 Download
Description File
Azul Systems' Zulu Download
Azul Systems' Zing Download
OpenJDK 17 Download
Amazon's Corretto Download
Adopt OpenJDK Download
Description File
JBoss EAP 7.4 GUI Installer jboss-eap-7.4.0-installer.jar
JBoss EAP 7.4 ZIP Installer jboss-eap-7.4.0.zip
Stage File for the training "JBoss EAP: Administration" stage-jboss-eap.zip
Description File
Memory Analyzer (MAT) Download
VisualVM 2.1 visualvm_21.zip
Oracle GraalVM Enterprise Edition 21 Download
Disassembler for 32-bit HotSpot JDK hsdis-i386.dll
Disassembler for 64-bit HotSpot JDK hsdis-amd64.dll

Lecture Notes

Module No File
Introduction introduction.pdf
Lecture Notes jboss.eap7.administration.ver.0.1.5-Final.pdf

Lab Documents

Description File
Lab 01 module_01.pdf
Lab 02 module_02.pdf
Lab 03 module_03.pdf
Lab 04 module_04.pdf
Lab 05 module_05.pdf

MySQL Files

Description File
MySQL Advanced 5.7.17 for Windows x64 DEVEL-mysql-advanced-5.7.17.zip
MySQL Connector/J 5.1.49 mysql-connector-java-5.1.49.jar
World Database world.sql.zip
MySQL dump of moviedb moviedb.backup.sql

Lab Solutions

Description File
Solution of LAB #3 -- standalone.xml standalone.xml

Lab Files

Description File
Image Upload Web Application ImageUploadWebApp.war
Number Guessing Game Web Application NumberGuessingGameWebApp.war
MovieWebApplicationUsingJpa.war MovieWebApplicationUsingJpa.war
NumberGuessingGameWebApp (Clustered) NumberGuessingGameWebApp_ha.war
NumberGuessingGameWebApp (Constrained) NumberGuessingGameWebApp_constrained.war
Hello World Application HelloWorld.war
MySQL Module modules.mysql.zip
JDBC Logger Module modules.JDBCLogger.zip
create_db.zip create_db.zip
userdb backup userdb.zip

Commands

[oracle@host01 ~]$ gnome-terminal --title "JBoss EAP 6 -- standalone @host01" -e "/opt/jboss-eap-6.4/bin/standalone.sh -Djboss.bind.address.management=host01.example.com -Djboss.bind.address=host01.example.com --server-config=standalone.xml" &

At host01:

[oracle@host01 ~]$ gnome-terminal --title "JBoss EAP 6 -- domain @host01" -e "/opt/jboss-eap-6.4/bin/domain.sh -Djboss.bind.address.management=host01.example.com -Djboss.bind.address=host01.example.com --host-config=host01.xml" &
							

At host02:

[oracle@host02 ~]$ gnome-terminal --title "JBoss EAP 6 -- domain @host02" -e "/opt/jboss-eap-6.4/bin/domain.sh -Djboss.bind.address.management=host02.example.com -Djboss.bind.address=host02.example.com --host-config=host02.xml" &
							
[oracle@host01 ~]$ jboss-cli.sh --connect --controller=host01.example.com --command=shutdown

Stop the host host01:

[domain@host01.example.com:9999 /] /host=host01/:shutdown

Stop and start the server server01:

[domain@host01.example.com:9999 /] /host=host01/server-config=server1/:stop()
{
	"outcome" => "success",
	"result" => "STOPPED"
}
[domain@host01.example.com:9999 /] /host=host01/server-config=server1/:start()
{
	"outcome" => "success",
	"result" => "STARTING"
}

MySQL Module Definition
module.xml:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.mysql">
	<resources>
		<resource-root path="mysql-connector-java-5.1.49.jar"/>
	</resources>
	<dependencies>
		<module name="javax.api"/>
		<module name="javax.transaction.api"/>
	</dependencies>
</module> 
mysql> create database mylog;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mylog              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
15 rows in set (0.00 sec)

mysql> use mylog;

Database changed
mysql> CREATE TABLE log_table(
    ->  id INT(11) NOT NULL AUTO_INCREMENT,
    ->  `timestamp` VARCHAR(255) DEFAULT NULL,
    ->  level VARCHAR(255) DEFAULT NULL,
    ->  mdc_ip VARCHAR(255) DEFAULT NULL,
    ->  mdc_user VARCHAR(255) DEFAULT NULL,
    ->  message TEXT DEFAULT NULL,
    ->  hardcoded VARCHAR(255) DEFAULT NULL,
    ->  PRIMARY KEY (id)
    -> ) ENGINE = INNODB AUTO_INCREMENT = 1 ;
Query OK, 0 rows affected, 1 warning (0.02 sec)
CREATE TABLE log_table(
	id INT(11) NOT NULL AUTO_INCREMENT,
	`timestamp` VARCHAR(255) DEFAULT NULL,
	level VARCHAR(255) DEFAULT NULL,
	mdc_ip VARCHAR(255) DEFAULT NULL,
	mdc_user VARCHAR(255) DEFAULT NULL,
	message TEXT DEFAULT NULL,
	hardcoded VARCHAR(255) DEFAULT NULL,
	PRIMARY KEY (id)
) ENGINE = INNODB AUTO_INCREMENT = 1 ; 

module add --name=com.mysql3 --resources=mysql-connector-java-5.1.49.jar --dependencies=javax.api,javax.transaction.api --module-root-dir=../modules/system/layers/base
/subsystem=datasources/jdbc-driver=mysql3:add(driver-module-name=mysql3,driver-name=mysql3,driver-class-name=com.mysql.jdbc.Driver)
/subsystem=datasources/jdbc-driver=mysql3:read-resource
/subsystem=datasources/data-source=movieDS:add(jndi-name="java:jboss/datasources/movieDS",connection-url="jdbc:mysql://localhost:3306/moviedb",driver-name=mysql3,user-name=root,password=Secret_123,max-pool-size=50,min-pool-size=8)
/subsystem=datasources/data-source=movieDS:read-resource
/subsystem=datasources/data-source=movieDS:write-attribute(name=initial-pool-size,value=2)


jboss-cli.bat --connect --command="deploy c:/tmp/MovieWebApplicationUsingJpa.war"

Blog Posts on JBoss EAP Administration

Title
JBoss EAP 6'da Kümeleme Çözümü
JBoss AS 7.1+'de MySQL Veritabanı kullanarak Kimlik Doğrulama
Java 8 ile Gelen Yenilikler
Java Uygulamalarının İzlenmesi (1. Bölüm)
Java Sanal Makinası ve HotSpot
JMeter ile Dağıtık Yük Testi Çalıştırmak

References

Title Publication Year
JBoss AS 7 Configuration, Deployment and Administration 2011
JBoss AS 7 Development 2013
JBoss EAP 6 High Availability 2013
WildFly: New Features 2014
Wildfly Performance Tuning 2014
Java EE 7 Development with WildFly 2014
Advanced Java EE Development with WildFly 2015
WildFly Cookbook 2015