JBoss Application Server is the market-leading, open source Java Platform, Enterprise Edition (Java EE) application server, delivering a high-performance and enterprise-class platform for e-business applications. JBoss provides enterprise-class security, transaction support, resource management, load balancing, and clustering.
Enterprise Manager Cloud Control enables you to discover JBoss Application Servers in your environment and add them to Cloud Control for central monitoring and management.
This chapter describes how you can discover and monitor these JBoss Application Server targets in Enterprise Manager Cloud Control. In particular, this chapter covers the following:
About Managing JBoss Application Servers, JBoss Domains, and JBoss Partitions
Finding Out the Supported Versions for Discovery and Monitoring
Prerequisites for Discovering JBoss Application Servers, Domains, and Partitions
Discovering JBoss Application Servers 6.x and JBoss Partitions
Deploying JVMD on JBoss Application Server 7.x and 6.x to Diagnose Issues
Troubleshooting JBoss Application Server Discovery and Monitoring Issues
Using Enterprise Manager Cloud Control, you can do the following with JBoss Application Server targets:
Discover the following for central monitoring and management:
JBoss Application Servers
JBoss Server Groups and Domains (for version 7.x)
JBoss Domain is a logical grouping of JBoss Application Servers within your enterprise configuration for JBoss Application Servers version 7.x. JBoss Application Servers are grouped into Server Groups and one or more Server Groups form a JBoss Domain. The Domain Controller runs and manages the collection of JBoss Application Servers within a domain.
When you discover a JBoss Domain, the JBoss Domain, the JBoss Server Groups and all other up and running JBoss Application Servers that are part of that JBoss Domain get automatically discovered. You can select the JBoss Application Servers that you want to add to Enterprise Manager Cloud Control for monitoring, and the associated JBoss Server Groups are automatically added.
JBoss Partitions (for version 6.x)
JBoss Partition is a logical grouping of JBoss Application Servers within your enterprise configuration for JBoss Application Servers version 6.x.
When you discover a JBoss Application Server that is part of a JBoss Partition, the JBoss Partition and all other JBoss Application Servers that are part of that JBoss Partition gets automatically discovered and added to Enterprise Manager Cloud Control.
Monitor the status, the availability percentage, the CPU usage, the heap usage, the Java vendor and version used, and so on.
Monitor the status and the overall health of the member application servers that are part of JBoss Domains and Partitions.
Monitor the performance by measuring the load and the request processing time for a given interval.
Diagnose, notify, and correct performance and availability problems with the help of GUI-rich, intuitive graphs and illustrations.
Monitor the status of the deployed applications.
Monitor the Servlets and JSPs running on the application servers, including the most requested Servlets in the last 24 hours - applicable only for JBoss Application Servers version 6.x.
View details about the associated JVM threads and data sources.
Create or end blackouts as well as notification blackouts to suspend or resume the collection of metric data, respectively.
Monitor and manage configuration details in JBoss version 6 that were last collected and also the ones that were saved at a given point of time.
Compare the configuration between in JBoss version 6:
A last collected configuration of a server instance with a saved configuration of the same server instance or a different server instance.
A last collected configuration of a server instance with a last collected configuration of a different server instance.
A saved configuration of a server instance with another saved configuration of the same server instance or a different server instance.
A saved configuration of a server instance with a last collected configuration of the same server instance or a different server instance.
View compliance-related information, such as the compliance standards and frameworks associated with the server, the real-time observations, the evaluation results, and so on.
View a list of metrics, their collection interval, and the last upload for each metric.
Meet the following prerequisites for discovering JBoss Application Servers and JBoss Partitions.
Ensure that you download and extract the JBoss Application Server installable ZIP file available on JBoss site, and set the JBOSS_HOME and PATH environment variables as follows:
setenv JBOSS_HOME <jboss_install_location>
setenv PATH "${PATH}:/${JBOSS_HOME}/bin"
Ensure that you start the JBoss Application Server or the JBoss Partition by running the following command from the bin
directory:
./run.sh -c <deployment_profile> -b <binding_address> [-Djboss.partition.name=<partition_name>]
Here, <deployment_profile>
indicates whether you are starting a standalone JBoss Application Server or a JBoss Partition. The <binding_address>
is the host name or the IP address running the JBoss Application Server. The <partition_name>
is the partition name from where the JBoss Application Servers must start. By default, they start as part of DefaultPartition.
For example,
./run.sh -c node1 -Djboss.service.binding.set=ports-01 -b example.oracle.com
Note:
To start a standalone JBoss Application Server, set the <deployment_profile>
to default.
For example,
./run.sh -c default -b <binding address>
To start a JBoss Partition, enable the JBoss clustering service, set the <deployment_profile>
to all.
For example,
./run.sh -c all -b <binding address>
To start multiple server instances on the same host, complete the following:
(a) Create multiple deployment profiles as per your requirements.
(b) Use a different port-set to start the individual servers. Note that ports-01, ports-02, ports-03, and ports-04 are predefined port-sets.
For example,
-Djboss.service.binding.set=ports-01
Note:
When you discover a JBoss Domain all the JBoss Application Servers part of that domain get automatically discovered and added to Enterprise Manager Cloud Control. At any point after discovering a JBoss Domain, if new JBoss Application Servers are added to the domain, then you can refresh the JBoss Domain as described in Refreshing JBoss Partitions.
Note:
When you discover a JBoss Application Server that is part of a JBoss Partition, the JBoss Partition and all other JBoss Application Servers part of that partition get automatically discovered and added to Enterprise Manager Cloud Control. At any point after discovering a JBoss Partition, if new JBoss Application Servers are added to the partition, then you can refresh the JBoss Partition as described in Refreshing JBoss Partitions.
This section covers the following:
The JBoss Partition Home page has the following sections:
Summary Section:
Element | Description |
---|---|
Up/Down/Pending Since |
Date and time when the status was last determined. |
Availability (%) |
Indicates whether the JBoss Application Server is available and the availability percentage over the last 24 hours. To drill down to the Status History (Availability) page, click the link. The Status History page displays the availability of the JBoss Application Server along with the availability history of the constituents that are used to compute its availability. |
Version |
Version of the JBoss Application Server. |
Status |
Current status of the JBoss Application Server. The status can be down even if incorrect credentials were provided while discovering the JBoss target. |
Heap Usage (MB) |
Amount of heap space (in MB) used by the JBoss Application Server since the last collection. |
Element | Description |
---|---|
JVM Threads - Active Threads |
Number of active JVM threads, including both daemon and non-daemon threads. |
JVM Threads - Peak Threads |
Number of peak active JVM threads since the Java Virtual Machine started or peak was reset. |
JVM Threads - Active Daemon Threads |
Number of active daemon JVM threads. |
JVM Threads - Threads Created (per min) |
Number of JVM threads created per minute. |
Element | Description |
---|---|
Transaction Creations (per min) |
Number of new transactions created per minute. |
Transaction Commits (per min) |
Number of transactions committed per minute. |
Transaction Aborts (per min) |
Number of transactions aborted per minute. |
Transaction Time Outs (per min) |
Number of transactions timed-out, per minute. |
Transaction Application Rollbacks (per min) |
Number of transactions rolled back by the application, per minute. |
Transaction Resource Rollbacks (per min) |
Number of transactions rolled back by the resource, per minute. |
Provides a graphical representation of the server's performance, measuring request-processing time for a given interval. To switch to a tabular format, click Table View. To drill down and view more detailed metric-related information and to diagnose issues by looking at other related infrastructure metrics, click the metric names in the legend and select an appropriate option in the Additional Information message.
The JBoss Application Server Home page has the following sections:
Element | Description |
---|---|
Up/Down/Pending Since |
Date and time when the status was last determined. |
Availability (%) |
Indicates whether the JBoss Application Server is available and the availability percentage over the last 24 hours. To drill down to the Status History (Availability) page, click the link. The Status History page displays the availability of the JBoss Application Server along with the availability history of the constituents that are used to compute its availability. |
Version |
Version of the JBoss Application Server. |
Status |
Current status of the JBoss Application Server. The status can be down even if incorrect JMX credentials were provided while discovering the JBoss target. |
Server CPU Usage (%) |
Percentage of CPU time used by the JBoss Application Server. |
Heap Usage (MB) |
Amount of heap space (in MB) used by the JBoss Application Server over a given interval. |
Java Vendor |
Vendor of the Java Virtual Machine that this JBoss Application Server runs. |
Java Version |
Version of the Java Virtual Machine that this JBoss Application Server runs. |
Element | Description |
---|---|
Active Sessions |
Number of active servlet and JSP sessions. |
Request Processing Time (ms) |
Average time taken (in milliseconds) to service a request in the last 24 hours. |
Requests (per min) |
Number of requests serviced per minute in the last 24 hours. |
Element | Description |
---|---|
JVM Threads - Active Threads |
Number of active JVM threads, including both daemon and non-daemon threads. |
JVM Threads - Peak Threads |
Number of peak active JVM threads since the Java Virtual Machine started or peak was reset. |
JVM Threads - Active Daemon Threads |
Number of active daemon JVM threads. |
JVM Threads - Threads Created (per min) |
Number of JVM threads created per minute. |
Element | Description |
---|---|
Total connections in Use |
Number of active database connections in this instance of the data source since the data source was instantiated. |
Total connection Pool Size |
Total size of the connection pool. |
Total connections Created (per min) |
Number of connections created per minute for this data source. |
Total connections Destroyed (per min) |
Number of connections closed per minute for this data source. |
Provides a graphical representation of the server's performance, measuring request-processing time for a given interval. To switch to a tabular format, click Table View. To drill down and view more detailed metric-related information and to diagnose issues by looking at other related infrastructure metrics, click the metric names in the legend and select an appropriate option in the Additional Information message.
Enterprise Manager Cloud Control helps you monitor the overall performance of JBoss Application Servers. You can view the graphs that depict their memory usage and heap usage. This helps you gauge the performance and perform a root cause analysis to drill down to the problem areas and fix them before they affect the end users.
To monitor the performance of a JBoss Application Server:
Enterprise Manager Cloud Control helps you monitor the Servlets and JSPs that are running on JBoss Application Servers. You can not only view high-level information about them but also a performance summary that reflects their response time and load. You can also drill down and diagnose issues by viewing related infrastructure metrics, alert history, and so on.
To monitor the Servlets and JSPs running on JBoss Application Servers, follow these steps:
From the Targets menu, select Middleware.
On the Middleware page, click the JBoss Application Server where the Servlets and JSPs are deployed.
On the JBoss Application Server Home page, do these:
To view high-level information about the Servlets, see the Servlets region. To understand the metric details displayed in this region, click Help.
To monitor the performance of Servlets and JSPs, see the response and load graphic.
To drill down and diagnose issues, click a metric name in the legend. From the pop-up message, click Problem Analysis.
To view metric statistics, thresholds, and metric value history, click a metric name in the legend. From the pop-up message, click Metric Details.
For information on spikes in the performance of metrics, you can use the Problem Analysis page to compare results between the source metric and related metrics. Currently, problem analysis is only available for the following metrics.
Server CPU Usage
Servlet and JSP - Request Processing Time
To access the Problem Analysis page, follow these steps.
This section covers the following:
Using the JBoss Domain Home page, you can monitor the individual status of each of the members and also refresh the domain to update the membership and reflect the current deployment state. You can also view the member application servers' resource usage, availability, performance, configuration information, and reports with or without historical data.
Figure 34-9 JBoss Domain Home Page
The JBoss Domain Home page has the following sections:
The General sub-section under the Summary section provides general information about JBoss Domain.
Element | Description |
---|---|
JBoss Domain Refreshed |
Indicates the time and date when the JBoss Domain was last refreshed. |
Version |
Version of the JBoss Domain. |
Agent |
Management Agent used for discovering the JBoss Application Servers that are part of the JBoss Domain. To drill down to the Management Agent home page, click the link. |
The Servers section provides a real-time view of the status and availability of all the members within the JBoss Domain. For example, if there are four JBoss Application Servers within a JBoss Domain, and if three of these are up, then the pie chart shows 75% up and 25% down status. Accordingly, the legend shows 3 against the Up status to indicate the JBoss Application Servers that are up, and 1 against the Down status to indicate the server that is down.
The table provides the complete hierarchy of the JBoss Domain. You can drill down and view information about a JBoss Server Group or a JBoss Application Server, by clicking on it. To view more information about the status, click the status icon.
The Incidents section provides a summary of all the incidents reported on the domain. Use the View menu to sort, filter and organize the Incidents table. Click the incident for further information related to each incident.
Switch between Current Target and Hardware Targets tabs to view the related incidents.
Using the JBoss Server Group Home page, you can monitor the individual status of each of the members and see the current deployment state. You can also view the member application servers' resource usage, availability, performance, configuration information, and reports with or without historical data.
Figure 34-10 JBoss Server Group Home Page
The JBoss Server Group Home page has the following sections:
The General sub-section under the Summary section provides general information about JBoss Server Group.
Element | Description |
---|---|
Agent |
Management Agent used for discovering the JBoss Application Servers that are part of the JBoss Server Group. To drill down to the Management Agent home page, click the link. |
The Servers section provides a real-time view of the status and availability of all the members within the JBoss Server Group. For example, if there are four JBoss Application Servers within a JBoss Server Group, and if three of these are up, then the pie chart shows 75% up and 25% down status. Accordingly, the legend shows 3 against the Up status to indicate the JBoss Application Servers that are up, and 1 against the Down status to indicate the server that is down.
The table provides high-level details of the JBoss Application Servers that are part of the JBoss Server Group. To drill down and view information about a JBoss Application Server, click the JBoss Application Server name. To view more information about the status, click the status icon.
The Incidents section provides a summary of all the incidents reported on the Server Group. Use the View menu to sort, filter and organize the Incidents table. Click the incident for further information related to each incident.
Switch between Current Target and Hardware Targets tabs to view the related incidents.
Enterprise Manager Cloud Control helps you view the members of a JBoss Domain. You can see what type of members form the domain, monitor their status, and perform various administrative operations
To view a list of members, follow these steps:
Column | Description |
---|---|
Name |
Name of the JBoss Application Server that is part of the JBoss Domain. Click the name to access the home page of that JBoss Application Server. |
Type |
Type of the member. |
Status |
Current status of the member. Click the status icon to see a consolidated availability summary. You can see the current and past availability status within the last 24 hours, 7 days, or month (31 days). |
Incidents |
Number of critical, warning, and error alerts generated for the past 24 hours. Click the alert links to drill down and see more detailed information. |
To search for a particular member, use the Search menu.
By default, all members of the JBoss Partition are listed in the table. To refresh the table and view only a particular type of members, select either Direct Members or Indirect Members from the View section.
To capture the membership configuration details in a spreadsheet, click Export.
This section covers the following:
Using the JBoss Partition Home page, you can not only monitor the collective status of the partition but also the individual status of each of the members. You can also refresh the partition to update the membership and reflect the current deployment state. You can also view the member application servers' resource usage, availability, performance, configuration information, and reports with or without historical data.
Figure 34-11 JBoss Partition Home Page
The JBoss Partition Home page has the following sections:
The General sub-section in the Summary section provides general information about JBoss Partition.
Element | Description |
---|---|
Up/Down/Pending Since |
Date and time when the status was last determined. |
Availability (%) |
Availability rate for the last 24 hours, considering the status of all the members of the JBoss Partition. For example, if there are four JBoss Application Servers within a partition, and if only three of them are up, then the pie chart shows 75% up and 25% down status. |
Version |
Version of the JBoss Application Servers that are part of the JBoss Partition. |
Agent |
Management Agent used for discovering the JBoss Application Servers that are part of the JBoss Partition. To drill down to the Management Agent home page, click the link. |
Partition Last Refreshed On |
Date and time when the partition was last refreshed. |
The Servers section provides a real-time view of the status and availability of all the members within the JBoss Partition. For example, if there are four JBoss Application Servers within a JBoss Partition, and if three of these are up, then the pie chart shows 75% up and 25% down status. Accordingly, the legend shows 3 against the Up status to indicate the JBoss Application Servers that are up, and 1 against the Down status to indicate the server that is down.
The table provides high-level details of the JBoss Application Servers that are part of the JBoss Partition. To drill down and view information about a JBoss Application Server, click the JBoss Application Server name. To view more information about the status, click the status icon.
Oracle Enterprise Manager Cloud Control 13c's JVM Diagnostics enables administrators to diagnose performance problems in a Java application in the production environment. By eliminating the need to reproduce problems, it reduces the time required to resolve these problems. This improves application availability and performance. The correlation between the JBoss target and the JVMD/JVM target enables administrators to navigate to the JVM in context of a JBoss Application Server.
To deploy JVMD agents to JBoss, complete the following:
If you are using JBoss AS 7 modular class loading model, you must perform following configuration changes to make JVMD agent work:
Enable sun.instrument
package loading as follows:
Add <path name="sun/instrument"/>
in file $JBOSS_HOME/modules/system/layers/base/sun/jdk/main/module.xml
Load BCI and JVMD classes:
Add the jvmd.jar
and wldf.jar
to the class path as follows:
JAVA_OPTS="$JAVA_OPTS -cp :$JBOSS_HOME/wldf.jar,$JBOSS_HOME/jvmd.jar"
The wldf.jar
and jvmd.jar
are bundled with jamagent.war
. You can download the jamagent.war
from Enterprise Manager Cloud Control console ( Setup--> Middleware Management --> Engines And Agents--> Download Jvmd Agent).
After you download the jamangent.war
file, you can extract the jamangent.war
and go to jamagent.war/WEB-INF/libbci/
and copy both wldf.jar
and jvmd.jar
files at required location.
For example, in case of standalone server modify $JBOSS_HOME/bin/standalone.conf
as follows:
if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.oracle.jvmd.repackaged,oracle .jvmd.agent"
fi
JAVA_OPTS="$JAVA_OPTS -cp :$JBOSS_HOME/wldf.jar,$JBOSS_HOME/jvmd.jar"
If the target status is DOWN after discovery, check the Monitoring properties page for the JBoss Application Server and verify the following:
Local discovery: only JBoss home is present
Remote discovery: only Library path is present
If the target status is PENDING (due to a metric collection error) after discovery, ensure that no other application server is being monitored using the same Management Agent (such as Weblogic).
The following are the various log locations:
JBoss server logs: $JBOSS_HOME/server/<
config_mode
>/log
OMS logs: emoms.trc
(under $OMS_HOME
)
Agent logs: $AGENT_STATE_DIR/sysman/log
In the case of JBoss discovery failure, provide the library path along with the install home and try again.
For discovery related issues, manually run the discovery script to check the output, which should look similar to the following:
java -Doracle.home=<AGENT_PLUGIN_LOCATION> \ -cp \ <AGENT_PLUGIN_LOCATION>/lib/xmlparserv2.jar:\ <AGENT_PLUGIN_LOCATION>/jlib/emConfigInstall.jar:\ <AGENT_PLUGIN_LOCATION>/sysman/jlib/log4j-core.jar:\ <AGENT_PLUGIN_LOCATION>/modules/oracle.http_client 11.1.1.jar:\ <DISCOVERY_PLUGIN_LOCATION>/archives/em-as-thirdparty-discovery.jar \ oracle.sysman.emas.thirdparty.discovery.jboss.JBossDiscovery \ <JMX_PORT> <SERVER_HOST> ""