C2B2 logo icon

JBoss EAP 7 - A First Look

In his first post on the recent JBoss EAP 7 release, Brian Randell offers his initial impressions as he gets it up-and-running for the first time.

In this post, Brian Randell takes a peek at the new JBoss EAP 7.0.0 release and gives his impression as a JBoss consultant and administrator. He'll dig deeper under the cover and a throw little light on some of the new features and enhancements in future posts, but for his first look he reveals what he sees when getting it up-and-running for the first time.

Is your business or organisation considering an EAP 7 Migration? Discover our specialist JBoss migration services.

There are many more enhancements and features listed in the release notes and I am sure you will have others spring out at you as items you want to investigate more. Putting these aside for now let’s get it installed.

The first version of JBoss EAP 7 was released on 10th May 2016 (Red Hat JBoss EAP 7.0.0). It's based on WildFly 10 (http://wildlfy.org/) and uses Java SE 1.8 implementing Java EE 7 Full Platform and Web Profile Standards. The full list of supported configurations are listed in this Red Hat article (please note that access requires a Red Hat subscription).

Looking through the Release Notes, I could see a number of areas that were of immediate interest to me:

  • The replacement of HornetQ with Active MQ Artemis
  • The replacement of JBoss Web with Undertow 
  • Ability to use JBoss as a Load Balancer
  • Server Suspend Mode
  • Offline Management CLI
  • Profile Hierarchies
  • Datasource Capacity policies
  • Port Reduction
  • Backwards compatibility with EAP 6 and some interoperability with EAP 5

Want to find out more? In his next JBoss EAP 7 post, Brian investigates the new features available to JBoss administrators, and looks specifically at How to configure Undertow as an http load balancer.

When I'm looking at a new system, I like to dive in and get it running - investigating it from a first look (where I concentrate on normal operation), through to a more detailed investigation on those areas that are of interest to me.

For my first look at JBoss EAP 7, I used an Amazon EC2 t2.medium tier shared host running Red Hat Linux 7.2 (Maipo) with 4GB Ram and 2vCPUs. I downloaded the Oracle Java JDK 8u92 and JBoss EAP 7.0.0 zip files (these also require a Red Hat subscription), and extracted them into /opt/java and /opt/jboss directories respectively. I then created users java and jboss and chown’d the respective files. After setting up JAVA_HOME environment variable,  I was good to go.

Fundamentally – running JBoss EAP 7 is the same as running EAP 6. You install it in the same way and run it in a similar way. The only difference for me was running on RHEL 7.2 where if you set up JBoss to run as a service you run the command without the ‘.sh’ for the script. Placing the script jboss-eap7.sh in /etc/init.d/ and then registering it through chkconfig the service is run by the command:

service jboss-eap7 start

whereas on RHEL 6 you run it as:

service jboss-eap7.sh start

The first difference I noticed when running JBoss EAP 7 for the first time is that as the libraries are based on WildFly rather than jboss-as, the logs show WFLY references rather than JBAS references. For any of us that look for the references to search for certain log entries and have monitoring set up against them this will be a big change. For example the JBoss start message is now under reference WFLYSRV0025 (whereas it used to be JBAS015874)

INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: JBoss EAP 7.0.0.GA (WildFly Core 2.1.2.Final-redhat-1) started in 4142ms - Started 306 of 591 services (386 services are lazy, passive or on-demand)INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.4.0.GA (AS 7.5.0.Final-redhat-21) started in 3441ms - Started 192 of 229 services (68 services are lazy, passive or on-demand)

You will also notice here that even though I am running the same configuration file (standalone-full.xml) the new EAP 7 server starts a lot more services - which makes it start slower than EAP 6. On average (over 10 starts) EAP 7 took 4180ms, whereas EAP 6 took 3573ms.

We can also compare with using the standalone.xml and you can see that also starts a lot more services for EAP 7 - which means it starts slower than EAP 6. An average of 3289ms for EAP 7 and 2667ms for EAP 6.

INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: JBoss EAP 7.0.0.GA (WildFly Core 2.1.2.Final-redhat-1) started in 3227ms - Started 267 of 553 services (371 services are lazy, passive or on-demand)INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.4.0.GA (AS 7.5.0.Final-redhat-21) started in 2652ms - Started 153 of 191 services (57 services are lazy, passive or on-demand)

The next difference I noticed was on the admin console where the layout has been changed. There are the same high level options as with the 6.4 console, but when navigating into the sections the layout changes become more noticeable.

Figure 1 - JBoss EAP 7 Admin Console
 

Figure 2 - JBoss EAP 7 Subsystem Navigation

Figure 3 - JBoss EAP 7 Subsystem Settings

This unfortunately means that you take more clicks to navigate to the same point that you would have got to quicker in 6.4 - and as the settings encompass a whole screen you have to click back before you can navigate elsewhere. On first look, this could become a frustration of using the console.

When using the CLI there are some other differences to be seen. The default port for connecting to the CLI has changed from 9999 to 9990. Looking at the port configuration, you can see a limited range of ports configured in EAP 7. This is because the http and management ports are used for a variety of protocols.

You can see there are no management-native or messaging ports - it is also worth noting that the default management-https port is now 9993 rather than 9443 as it was before.

There are also some new CLI commands that can be used, such as set and unset to assign variables, unalias so you can turn off a defined alias, and connection-info to show details of the connection.

There are also some new CLI operations that can be used such as list-add, list-get, list-clear, list-remove, map-get, map-clear, map-put, map-remove and query - which can add and set attributes to an entity, however, these aren’t very well documented and will need further investigation.

There is also suspend and resume, which suspends the server, enabling it to complete its tasks gracefully without accepting new requests - at which point you can resume it again.
 

Summary

This was only a box opener, and I'll soon delve into the technology changes, features and enhancements in more detailed posts, but from an initial first look at JBoss EAP 7 - and before we do any deep investigation - there are some immediate differences that will need to be thought of and evaluated when converting production systems from EAP 6.

References

JBoss EAP 7 download (requires Red Hat subscription)
Oracle Java download
Red Hat EAP 7 Documentation
Red Hat EAP 7 Release Notes
Red Hat EAP 7 – supported configurations (requires Red Hat subscription)
Wildfly
Active MQ Artemis 
Undertow