Release Notes

JBoss Operations Network 3.0

for release information

Logo

Ella Deon Lackey

December 7, 2011

Abstract

These release notes contain important information about new features, known issues, and other technical notes available at the time that JBoss Operations Network 3.0 was released.
These release notes contain feature information, changed support, and structural changes in JBoss Operations Network 3.0.
JBoss Operations Network provides an integrated solution for managing JBoss middleware, applications deployed on Red Hat products, and related middleware infrastructure. JBoss ON provides central configuration and visibility and local management and monitoring. This results in simplified maintenance and lower costs. Vigorous monitoring, versioned application deployment, auditable configuration management, and controlled software patching through JBoss ON reduce the risk of large JBoss deployments.
This version of JBoss Operations Network contains new features, enhancements, and bug fixes. It is recommended that all JBoss Operations Network users upgrade to JBoss Operations Network 3.0.

1. New Features in JBoss Operations Network 3.0

This version of JBoss ON introduces both new features and feature enhancements that improve JBoss ON's performance for managing resources.

1.1. Rewritten UI

The GUI has been redesigned in JBoss ON 3.0, moving from an older JavaScript/Struts design to GWT 2.0.4 and SmartGWT 2.4. The new GUI includes new stylesheets and a more efficient Ajax architecture, preserving a familiar layout with a cleaner and more responsive experience.
The top navigation menu has been updated to focus on clearer and more relevant tasks, adding new Bundles and Reporting tabs. Additionally, the previous top-level menus have been removed and replaced with context-specific task panes in the left navigation area. This makes it simpler to locate configuration areas. Even tables are now easier to manage, with improved sort and the ability to change the information displayed in the table columns.
New UI: Menus, Tables, and Navigation

Figure 1. New UI: Menus, Tables, and Navigation

One of the key features for administrative management is a more dynamic dashboard, including the ability to have multiple, user-customized dashboards in the primary Dashboard area and customizable resource-level dashboards on resource Summary tabs.
New UI: Default Dashboard

Figure 2. New UI: Default Dashboard

The new design brings other benefits:
  • A new message center which provides a stream of errors, notifications, and system messages that have been generated during the current session
  • Support for cron expressions when scheduling operations
  • Support for editing simple properties in the configuration editor for resources

1.2. New: Managing Configuration Drift

Much of the JBoss ON configuration management is designed around implementing changes for resources by editing configuration files or updating files and packages. But another aspect of managing configuration is detecting unplanned, unapproved changes. The ideal configuration for a server includes defining file settings, software versions, and system settings. Resource configuration will change naturally over time, but administrators need to track those changes that could impact performance or availability. Defining a baseline configuration and tracking changes helps systems remain resilient, compliant, and understandable.
Unplanned changes to a resource's configuration are called drift, the movement away from the designated configuration baseline. JBoss Operations Network's drift management offers a way to identify and track these changes and to revert to previous versions if necessary. Drift management is a blend between JBoss ON's configuration management (which manages file settings), its content management (package lists, individual files, and versions), and monitoring.
Drift management is driven by a drift definition that defines:
  • The directory to monitor
  • Any files and subdirectories within the base directory to include or exclude from monitoring
  • The interval or schedule which the agent uses to check the drift base directory
Along with resource-level drift definitions, JBoss ON also supports drift definition templates, which allows default settings that can be applied to multiple resources.
Once a drift definition is created, JBoss ON schedules an ongoing comparison between definitions and the current state of a directory. Every time a file is added, edited, or deleted from the monitored directory, the changes are tracked in snapshots.
When the drift definition is first set up, the current state of the resource can be compared against the last snapshot. This is a rolling snapshot. A specific snapshot can be selected as a baseline; this snapshot is pinned to the definition and then every subsequent change is compared against that snapshot. Pinning allows administrators to select a standard configuration. If it is pinned to a resource-level definition, the resource changes are compared to that. If a resource snapshot is pinned to a drift template, then changes for all resources of a type can be compared against the selected snapshot.
Finally, a new alert condition has been added to enable alerting, notifications, and responsiveness to drift on resources. Additionally, any drift changes show up on resources in the events timeline.
The JBoss ON remote API has been expanded to include a drift methods, so that drift configuration and monitoring can be automated.
Drift Requirements

  • Drift is enabled as a server-side plug-in. If this plug-in is disabled, the drift monitoring is disabled and drift detection will not run. Any drift events will not be recorded in the events timeline, and any drift alerts will not be fired.
    This behavior is different than disabling other server-side plug-ins. For example, if an alert sender plug-in is disabled, the alert scans still run and any alerts are still recorded in the server, but the notification based on that sender is not sent.
  • Drift is not supported on embedded web applications, such as an embedded WAR under an EAR application.

Drift Documentation

For more information on drift, see Managing Resource Configuration.

1.3. Enhanced: Provisioning to Allow Bundles on Non-Platform Resources

Beginning in JBoss Operations Network 2.4, the server was able to deploy bundles. Bundles are complete application servers, configuration, packages, or patches which are installed on remote resources. Each bundle definition allows multiple versions and destinations, so it is easy to manage what versions are deployed on what resources. It is a simplified and flexible content delivery mechanism.
In JBoss ON 2.4, bundles could be deployed only to platform resources. In JBoss ON 3.0, the bundle system has been expanded so that bundles can be deployed to server resources along with platform resources. Resource plug-ins can now define a new <bundle-target> element, which sets a base directory or directories for the provisioning process to use. Of the default resources, three resource types support provisioning:
  • All supported platform types
  • JBoss AS 4 servers
  • JBoss AS 5 servers and any server which uses the JBoss AS 5 resource plug-in

Note

Supporting non-platform resources for bundle provisioning has required some changes to how resources are selected when configuring provisioning. In JBoss ON 2.4, any platform group was automatically available for provisioning while all others were ignored. The group could be a mixed group, so long as all the resources in it were platforms. In JBoss ON 3.0, only compatible groups can be used for provisioning, and the groups can only contain a resource type which supports provisioning.
Different platforms are considered different resource types. So a group of Linux, Windows, and Solaris resources is considered a mixed group, even though they are all platform resources. Any platform groups created for provisioning in JBoss ON 2.4 will have to be re-created in JBoss ON 3.0, and each platform type must have its own group.

1.4. New: Synchronization (Import/Export) for Server and Monitoring Settings

A local network may have several separate environments — development, staging, production — which all use similar resources and JBoss ON server settings. Server synchronization allows administrators to export configuration settings from one JBoss ON server, make any necessary edits, and import them into another JBoss ON server.
Two configuration areas can be synchronized:
  • System settings
  • Metric templates
When the configuration is exported, it is sent to an XML file. Administrators can edit the settings, if necessary. The JBoss ON server validates the file before importing it, which mitigates some risk on importing data.

Note

There is always a risk of importing inconsistent data, and administrators should back up all existing databases before any import operation.
Server synchronization is performed using the JBoss ON CLI. Example scripts are available as part of the JBoss ON installation in the installDir/rhq-remoting-cli-version#/samples/ directory. Documentation with usage examples is available in Configuring JBoss ON Servers and Agents.

1.5. New: Launching Server-side CLI Scripts in Response to Alerts

JBoss ON has its own command-line client that can be used to manage server instances in the same way that the web UI manages servers. Much like running a script resource or launching an operation in response to an alert condition, a server CLI script can be run in response to an alert condition.
The JBoss ON script is added to a content repository as an available package. The script (JavaScript file) can then be selected when configuring an alert notification.
An example CLI alert script is included in the server files, in serverInstallDir/alert-scripts/.

1.6. New: Configuring Alert Conditions Based on Call-Time Data

Certain resource types (session beans and web servers) deliver call time or response time data. This information contains pre-aggregated measurements for the maximum, minimum, or average results for the responses.
Resources which collect call time data can use that pre-processed information as the basis for alert notifications, the same as other monitoring data. The call-time data condition can be set to issue an alert when it changes, increases, or decreases in value or when it crosses a defined threshold. It can also be filtered using regular expressions, so only certain measurements or values are considered as part of the condition.
Two types of resources support call-time data:
  • Session bean methods
  • Web servers with response time monitoring configured

1.7. New: Alert Conditions Based on Ranges

JBoss ON alert definitions have long supported both AND and OR operators. If a resource encountered one condition and then another, an alert would be issued. This allows administrators to get both detailed information and to create detailed responses through scripts and operations. For example, if a JBoss server had a high thread count and a low free memory, then administrators could run a particular script or start another JBoss resource.
However, while the AND operator was effective with different metrics, it could trigger unexpected alerts when it was used with the same metric in an attempt to create a range.
JBoss ON 3.0 introduces a new range condition, which triggers an alert only if a measurement is between two values.

1.8. Enhanced: Authorization Controls for Content Repositories

Previously, any user with global inventory permissions could create and manage content repositories. This method had granted very broad access permissions, where a user had global access to the inventory in order to manage content.
JBoss Operations Network 3.0 defines a new access control scheme for repositories and the content within them. Every user has the ability to create repositories and to upload packages to them. Additionally, repositories have two new settings which control access to them:
  • Owner, which assigns the repository to belong to a specific user; this sets write access to the repository.
  • Private, which sets whether the repository can be accessed by anyone or only by the owner. This sets read/download access to the repository.
JBoss Operations Network 3.0 also introduces a new access control permission, repositories. Any user with that permission can manage any configured repository, regardless of who the repository's owner is. Repositories without an owner can only be managed by users with the repositories permission. Lastly, only users with this permission can associated a content source with a repository; all other users must add packages manually.
As part of the upgrade process, all existing repositories are automatically assigned to be private with no owner. This restricts all access to the repositories to administrative users, which is similar to the behavior in JBoss ON 2.4. All users with the inventory permission are automatically assigned the repositories permission.

1.9. New: Deleting and Purging Agent Resource Plug-ins

In previous versions of JBoss ON it was not possible to remove any agent resource plug-ins from the JBoss ON configuration. Now, agent plug-ins can be deleted (removed and blocked) or purged (removed and allowed to be reloaded) from the JBoss ON configuration.

1.10. New: Support for PostgreSQL 9.0

PostgreSQL 9.0 can now be used as the backend database for the JBoss ON server.

1.11. Tech Preview: JBoss Resource Plug-ins for mod_cluster Domains

JBoss ON 3.0 introduces a new resource plug-in for mod_cluster domains. This is for mod_cluster version 1.1.2[1].
The mod_cluster plug-in will be one of the new standard resource plug-ins with JBoss ON.

Note

The mod_cluster domain resources are tech preview in JBoss Operations Network 3.0. These resource types are not fully-supported.
If you configure a mod_cluster resource in JBoss ON 3.0, it must be uninventoried and re-added in later versions of JBoss Operations Network. It cannot be migrated. This means that you can lose monitoring data and configuration.
For more information on how JBoss ON manages mod_cluster is in Manage JBoss Servers with JBoss ON.

1.12. Tech Preview: JBoss Resource Plug-ins for JBoss AS 7.1

JBoss ON 3.0 includes a JBoss AS 7.1 resource plug-in which adds early support for individual servers, host controllers, domain controllers, server groups, and managed servers.

Note

The JBoss AS 7.1 standalone, host controller, and manager server resources are tech preview in JBoss Operations Network 3.0. These resource types are not fully-supported.
If you configure a JBoss AS 7.1 resource in JBoss ON 3.0, it must be uninventoried and re-added in later versions of JBoss Operations Network. It cannot be migrated. This means that you can lose monitoring data and configuration.
This is included in a special Tech Preview Plug-in Pack. More information on the managed resources is in the Resource Reference.

2. Structural Changes in JBoss ON 3.0

There are some structural changes JBoss Operations Network 3.0 compared to JBoss ON 2.4/2.4.1 which should be called out because they affect the usage and experience of JBoss ON.

2.1. Removing Discovery Queue from the Default Dashboard

In previous versions of JBoss ON, the Discovery Portlet was included in the Dashboard by default. This portlet is no longer configured in the default Dashboard, but it can still be added to the Dashboard.
The autodiscovery queue can also be viewed in the Inventory area of the GUI.

2.2. Deprecated Platforms and Browsers

Several things that were deprecated in JBoss ON 2.4 are no longer supported in version 3.0 of JBoss Operations Network:
  • Java 5 is no longer supported for the JDK or JRE.
  • Microsoft Internet Explorer 6, Internet Explorer 7, and Firefox 2.x are no longer supported for accessing the JBoss ON GUI.
  • Solaris 9, HP-UX 11, AIX 5.2, Microsoft Windows XP, and Microsoft Windows 2000 are no longer supported platforms for the JBoss ON server or agent.
Additionally, this supported server platform is deprecated in JBoss ON 3.0:
  • Microsoft Server 2003

2.3. New and Changed Remote API Methods

Many new classes and methods have been added to the JBoss ON remote API to support new functionality, and some existing methods have changed.
The list of changes between 2.4 and 3.0 is available with the API at https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Operations_Network/3.1/html/API/index.html.

2.4. Different Name Keys for JBoss AS and JBoss EAP Servers

In previous versions of JBoss ON, both JBoss AS and JBoss EAP instances were identified in the UI as JBoss AS resources. Beginning in JBoss ON 3.0, EAP resources are identified as EAP rather than AS.

3. JBoss Operations Network Prerequisites

The list of supported platforms for JBoss Operations Network are listed at http://www.redhat.com/resourcelibrary/articles/jboss-operations-network-supported-configurations.
JBoss Operations Network 3.0 introduces two new supported platforms for the JBoss ON server:
  • Red Hat Enterprise Linux 6 (32-bit and 64-bit)
  • Microsoft Windows 2008 R2 (32-bit and 64-bit)
JBoss Operations Network 3.0 also introduces a new supported database for the JBoss ON server:
  • PostgreSQL 9.0
The JBoss ON server requires a Java 6 JDK and the JBoss ON agent requires a Java 6 JRE.
Regardless of the server or database platform, there are certain minimum requirements that must be met to install the JBoss ON server and its associated database.

Table 1. Recommended Minimum Hardware

Minimum
Memory 2 GB
Installation Directory Storage[a] 10 GB
Temporary Directory Storage 10 GB
[a] The server runs as a system user. Make sure that any system limits on user memory are set high enough to accommodate the JBoss ON server and all its data.

4. Quick Setup for JBoss Operations Network 3.0

The Installation Guide has more information on configurating databases for the JBoss ON server, upgrading servers, and other installation information. This is a quick summary of performing an initial installation.
  1. Set up a database named rhqadmin and a database user named rhqadmin. Make sure the database user has adequate permissions to perform operations on the JBoss ON database.
    For more detailed database setup information:
  2. Stop any currently running JBoss ON instances.
    serverRoot/jon-server-3.0.0.GA/bin/rhq-server.sh stop
    If the new JBoss ON server will use a database that existing JBoss ON instances are also using, then all of the existing JBoss ON instances have to be stopped.
  3. Download the server packages from the Customer Support Portal.
    1. Click Software in the top menu.
    2. In the Product field, select the JBoss Operations Network product.
  4. Unzip the server distribution to the directory where it will be executed from. For example:
    cd /opt
    
    unzip jon-server-3.0.0.GA.zip
    This creates a jon-server-3.0.0.GA/ directory in your chosen installation root.
  5. Run the JBoss ON server:
    serverRoot/jon-server-3.0.0.GA/bin/rhq-server.sh start
  6. Open the server UI at http://localhost:7080/. This will display the JBoss ON server installer.
    Clicking the Click here to continue the installation link brings you to the main installer page.
  7. Go through the installer and fill in the information. Only the database connection information is required; most of the default can be accepted without changes.
    The main installer page appears different depending on the database settings.
  8. When the configuration is complete, click the link to log into the JBoss ON UI.

5. Fixed Bugs in JBoss Operations Network 3.0

These bugs have been fixed in JBoss Operations Network 3.0. For a complete list of all issues addressed in JBoss Operations Network 3.0, see Bugzilla 678340.

Table 2. JBoss ON 3.0 Fixed Bugs

Bug Number Description
Installation and Upgrade
Bugzilla 598922Upgrading from JON2.3.1 to JON2.4 with an Oracle backend returned a 'Connection timed out' error for connecting to the LDAP server.
Bugzilla 618214Upgrading JON2.3.1 to 2.4 lost SNMP Server Configuration Properties.
Server
Bugzilla 712311If the resource configuration could not be found because the resource was unavailable, the server incorrectly recorded an NPE.
Bugzilla 747922Uninventorying and then re-importing a resource could return a Java error.
General
Bugzilla 536032If the same user is logged in from multiple machines, sessions were logged out in rotation.
Bugzilla 644344An LDAP user with the name admin could act as a superuser in JBoss ON. Now, no LDAP user is allowed in JBoss ON with the name admin.
Bugzilla 683609Purging a plug-in without deleting it would remove the plug-in from the UI but leave the .jar file on the filesystem.
Bugzilla 691476When viewing compatible groups of resources and their children, the same resource will be displayed multiple times in the group view. Grouping failed because the resource key is too unique for the same resource across compatible parents.
Bugzilla 695408When a child resource was deleted from a machine, the inventory history page for the parent contained few details.
Bugzilla 707047The LDAP group member search doesn't escape special characters.
Bugzilla 711502Resources using the ResourceContext.createAvailabilityCollectorRunnable were unable to start up when loaded from the disk.
Bugzilla 734135A dynagroup could be created with an improper expression.
Bugzilla 746347A role could not be updated if an LDAP-authenticated user belonged to the role.
Bugzilla 756106The agent resource has a status of UP, but all its child Resources are DOWN, with plugin container exceptions in the agent log.
Performance
Bugzilla 535237Traversing a compatible group with a large number of entries was slow to render.
Bugzilla 617577The uninventory process had some unnecessary database calls, making it last several seconds for platforms with a lot of children.
Bugzilla 645502 Agent availability reports included the full resource object and additional information, which could make them over 1MB.
Bugzilla 661203There were issued with the inventory browser load efficiency.
Bugzilla 720794It could take several minutes to import a large number of resources.
Bugzilla 727869When there were a large number of resources in inventory, it could take several seconds to open the configuration history.
Bugzilla 734599It could take several seconds to update a metric schedule on a compatible group with 1,000 members.
Bugzilla 736517It can take a very long time to load the resource tree for a platform with a large number of children.
Bugzilla 738798It could take several seconds or a minute to delete a large number of alerts.
Agent
Bugzilla 702691 If a resource was restarted outside JBoss ON, then its process information in the agent's resource context was never refreshed.
Bugzilla 711484An exception thrown inside the ResourceComponent.start() method will get rethrown as InvalidPluginConfigurationException which is not being caught. The agent stops and tries to restart the plug-in container, which fails and the agent doesn't restart.
Bugzilla 712444If a fatal validation error occurred while parsing the agent plug-in descriptor, the errors were not logged.
Server
Bugzilla 658491If call time metrics for several Oracle resources were received in one batch, they were all assigned to the first resource in the batch.
Bugzilla 713744The ResourceMetadataManagerBean call hung on Oracle 11g.
Monitoring
Bugzilla 634648Using Advanced Settings to enter a display range for a metric graph or metric table has no effect. The criteria specified in the Advanced Settings pop-up window does not get applied to the graph or chart.
Bugzilla 649825A user who has a role which contains a compatible group definition with Tomcat server resources is unable to see any metric graphs and could show an error in the UI.
Bugzilla 713750The event timeline displays data, but showed a client side message about invalid configuration IDs and recorded a server-side message about 'Failed to load json data.'
Bugzilla 717921Creating an event log under the JBoss ON server resource displays IndexOutOfBoundsException.
Alerts
Bugzilla 602178The email notification for alerts did not include the resource type in the email text, so it was difficult to determine what resource triggered the alert.
Bugzilla 657007The resource alert history had to be manually refreshed to show new alerts.
Bugzilla 726202If an alert using a baseline as a condition was created before the metric baseline was defined, then it could be over an hour before alerts for that condition were triggered.
Bugzilla 735262An alert definition with two conditions using the same metric could fire at, apparently, the wrong time. For example, a setting of load at >40% and <60% could fire an alert that recorded values of 15% and 41%. A spike over 40% triggered one condition (>40%) while another measurement triggered the other condition (<60%). This is because conditions are evaluated individually not corporately.
Bugzilla 736685If a resource had an alert with two AND conditions and one of those conditions was evaluated but the other wasn't, then the alert essentially locked the resource and it could not be uninventoried.
Inventory
Bugzilla 587038
Bugzilla 728274
When attempting to re-add an uninventoried platform, the server recorded a stacktrace.
Bugzilla 596680An embedded WAR with "/" as Web application context was shown as not available.
Bugzilla 622491Deleting a user caused user's modified groups and manually added resources to be inaccessible.
Bugzilla 634306If a custom Linux kernel had a version name longer than 50 characters, the platform discovery returned the error "java.lang.IllegalStateException."
Bugzilla 714812If a resource was deleted through JBoss ON and then later recreated, it resulted in an invalid inventory report and the resource could not be re-inventoried.
Bugzilla 719734Importing a large number of resources could return the SQL exception "ORA-01795: maximum number of expressions in a list is 1000".
Bugzilla 736439Uninventorying a large number of resources could cause the operation to timeout and fail.
Bugzilla 739789Deleting a VDB from inventory removed it from the EDS instance, but it remained in the inventory.
UI
Bugzilla 614847The left navigation tree for the provisioning area would not expand on Internet Explorer 8.
Bugzilla 636709A favorites icon was displayed for folders, but actually added the parent as a favorite.
Bugzilla 663722User passwords did not allow special characters.
Bugzilla 734034Saved search name was not removed from the search bar after it was deleted.
Bugzilla 734231A dynagroup does not support a name or description over 100 characters.
Bugzilla 638728The UI does not indicate when a resource is down.
Bugzilla 638737Duplicate rows show up in schedules table.
Bugzilla 639950Moving between autogroups did not move properly to the same subtab.
Bugzilla 641179In the Dynagroup Manager view, the "Last Calculation Time" and "Next Calculation Time" are the same when a dynagroup has scheduled recalculations.
Bugzilla 676761Entering invalid expression in search bar results in uncaught runtime exception, rather than user friendly error.
Bugzilla 678349The OK button was missing from alert definition edit page, preventing it from being updated.
Bugzilla 695810It was not possible to schedule an operation from the context menu for a group.
Bugzilla 695889There were several issues with saved searches, including intermittent NPE errors.
Bugzilla 729329If the JBoss ON server was not running, a globally uncaught exception was returned in the UI.
Bugzilla 730991When a new child was added to a resource, the left navigation tree did not refresh.
Bugzilla 601721 In Internet Explorer, text areas in resource entry views are frequently displayed as if they are editable fields when they are not.
Bugzilla 701314A large import operation could cause the UI to timeout. The import operation was unaffected.
CLI
Bugzilla 725252The MeasurementBaselineManager.findBaselinesForResource() method did not work with the JBoss ON CLI, despite being defined in the remote API.
Bugzilla 736792Using the retrieveBackingContent method with the JBoss ON CLI returned a file not found exception on the agent.
Bugzilla 754968The JBoss ON CLI did not support arguments with spaces.
Bundles
Bugzilla 614410The bundle deployment wizard does not show the message "Bundle Deployment Scheduled!" in Internet Explorer 7.
Bugzilla 655187A platform could not be uninventoried if it had a bundle deployed to it.
Bugzilla 694741Role permissions were not filtering the destinations that a user could deploy a bundle to.
Bugzilla 702390Large number of bundle deployments for a single bundle causes Hibernate exceptions.
Configuration
Bugzilla 573034When a new plug-in with new plug-in configuration properties is deployed, any existing resources do not get default values set for their plug-in configurations that are required but have default values defined in the descriptor.
Bugzilla 617649
CVE-2011-4573
The server did not verify that a user had the proper modify resource permissions when they attempted to delete a plug-in configuration update from the group connection properties history.
Bugzilla 617653
CVE-2011-4573
Deleting a resource checked that a user had configuration write permissions, rather than the modify resource permission.
Bugzilla 706232Looking at the configuration for a compatible group could give the error "does not match latest associated ResourceConfigurationUpdate with SUCCESS status."
Platform Plug-in
Bugzilla 653496The platform plug-in shows the name for 64-bit Windows servers as Win32.
JBoss AS and AS 5 Plug-in
Bugzilla 590953If JBoss ON was scanning a JBoss server while the AS console page was rendering, it returned an NPE.
Bugzilla 607001The JBossMessaging Queue resource was blacklisted, so it wasn't discovered.
Bugzilla 642732A Web application context reported DOWN availability when JBoss Web is started with host name other than localhost.
Bugzilla 694660Properties that were unset would eventually revert back to their previous values.
Bugzilla 752399Attempting to create a datasource failed with the error "java.lang.IllegalArgumentException:item value."
Apache Plug-in
Bugzilla 535786 The autodiscovery process does not properly parse the snmp.conf file for an Apache resource, so it does not discover the actual address and port used by the Apache SNMP service and enters default values of 127.0.0.1 and 1610, respectively. This means that SNMP for Apache must be configured manually after the Apache resource is added.
Bugzilla 653695If more than one Apache process is running on a platform and discovery fails to load or parse the configuration file of one of the Apache instances, the entire discovery process is terminated leaving all Apache instances un-discovered.
Bugzilla 665855Performing operations on an Apache resource failed with the exception 'java.lang.StringIndexOutOfBoundsException: String index out of range: -1.'
Bugzilla 690117The agent could not monitor a virtual host with an address set to 0.0.0.0[:port].
Bugzilla 690435Phantom main virtual host appears in the inventory if the apache server resource does not have the URL set in the configuration properties.
Bugzilla 690430Pinging an HTTPS URL fails if the certificate is not trusted by the JVM.
Bugzilla 697585JBoss ON cannot find the httpd executable path for a default EWS Apache installation.
Bugzilla 698474Discovery was unable to find the correct httpd.conf file for Apache 2.2 on Windows.
Bugzilla 717787Even when Augeas support is disabled, the plug-in continues to use Augeas.
Bugzilla 721152Plug-ins initializing Augeas without explicitly de-initializing it resulted in large memory and resource leaks.
Bugzilla 733717The mod_snmp module to monitor Apache had memory leaks.
Bugzilla 618877 The Apache configuration fails to load in the Configuration tab of the GUI if the <Include> directive in the Apache configuration has an unacceptable format. This returned a series of Augeas-related Java exceptions in the server logs.
Bugzilla 594453Manually removing a VirtualHost in the httpd.conf and re-adding caused multiple entries.
Tomcat Plug-in
Bugzilla 688800Tomcat servers that were installed through EWS were discovered by the agent but not visible in the UI.
Bugzilla 690957If an EWS Tomcat instance was installed from RPM, the shutdown operation on JBoss ON failed with a Java exception.

6. Known Issues in JBoss Operations Network 3.0

This section contains a subset of the known issues at the time that JBoss Operations Network 3.0 was released. When possible, workarounds are provided.

6.1. Upgrade and Installation

Warning

Upgrade from JBoss Operations Network 2.x to JBoss Operations Network 3.0 is fully supported.
However, upgrade from JBoss Operations Network 3.0 Beta to JBoss Operations Network 3.0 is not supported. It is not possible to upgrade a beta version of JBoss Operations Network to the release version.
If the installer is not bound to 0.0.0.0 when setting up a server, then it does not set all of the required connection properties. Specifically, the installer does not set the java.rmi.server.hostname parameter to the real value, and it uses the default of 0.0.0.0. This parameter must be set to the real IP address of the server by manually editing the rhq-server.properties file.
Automatic upgrades of agents on Windows appear to fail. Two conditions must be true for automatic upgrade of agents to work on Windows:
  • The agent must be installed and running as a Windows service.
  • No Windows Explorer window can be open to any agent subdirectory. Windows sets a lock on directories when they are open, which blocks the upgrade process.
When starting a server while agents are running, the server may log servlet errors in the logs. This is because the remoting (communications) classes are loaded early in the startup sequence, before the server is completely started. This causes some communications interruptions until the server is completely started. These errors can be ignored.
If a JBoss ON server was added to the resource inventory, the old JBoss ON server resource must be deleted from the inventory after upgrade. The old resource entry is unusable after upgrade.
Null pointer exceptions for the org.apache.catalina.connector.CoyoteAdapter service are returned when the JBoss ON 3.0 server is first installed. These errors are harmless and can be ignored. Installation will complete successfully, and both the server and the GUI will start and run properly.
The installer shows non-replaced {} properties.

6.2. Server Configuration

The password mechanism in the server installer doesn't properly hash Unicode characters. The Unicode characters are translated into the HTML entities, and then the HTML characters are hashed and stored as the password.
For example, the string 你好 is treated as the string &#20320;&#22909; in the installer, and the second string is the one that is hashed and stored in the rhq-server.properties file.
After configuring the server, but before logging in, manually update the password in the rhq-server.properties file:
  1. Manually generate a hashed password based on the Unicode password:
    serverRoot/jon-server-3.0.0.GA/bin/generate-db-password.sh 你好
    Encoded password: 68f725778bb36d3b
  2. Replace the database password value with the new hashed password.
    rhq.server.database.password=68f725778bb36d3b

6.3. Agents

When a plug-in, effectively a resource type, is deleted, the agent's plug-in container is automatically rebooted, to reload the new configuration. If the agent itself is running as a daemon, then rebooting the plug-in container also kills the agent thread. That means that if a plug-in (with resources of that type in the inventory) is deleted while the agent is running in the background, the agent process is stopped.
The agent can be restarted without any errors, and the plug-in is successfully removed.

6.4. Databases

The agent assumes that PostgreSQL uses a default password. If a different password is used, the PostgreSQL resource is shown as unavailable in the UI even if it is running.

6.5. Groups

A dynagroup definition with a short recalculation interval (less than two minutes) can cause duplicate groups to be created.

6.6. Provisioning

Hot deployment fails if the file changes during provisioning.
If a bundle is being deployed in a hot deployment and one of the underlying bundle files, like a WAR or JAR, is changed while the bundle is being uploaded, then provisioning will fail.
Using the Recipe option to upload a recipe file separately than the bundle archive files requires that the XML in the recipe be well-formed and that all tags are explicitly closed, using the format <tag></tag>, not the abbreviated format <tag />.
Additionally, the Recipe option's upload button does not work on Internet Explorer. To add a recipe file using this option with Internet Explorer, copy the entire recipe file and paste it directly into the text box.

6.7. Content and Repositories

Manually added a package to a repository fails because it says the package already exists.
When adding a package to one repository through the UI, it may fail with an error claiming that the package already exists, even if the package isn't in the specified repository. This is because a package with the same name exists in another repository and it causes a collision in the database.
It is currently not possible to have the same package in two repositories or to move or share a package between repositories.
It is possible to work around this issue by using CLI scripts. The JBoss ON CLI scripts store the username of the person uploading the package in the package version data automatically. If a person has access to all of the packages one has uploaded, then it is possible to extrapolate which repository contains the package and then manage the package there.

6.8. Remote API and the CLI

The JBoss ON remote API cannot be used to connect to the JBoss ON server when the client is running inside an application server. For example, the remote API cannot be run from a client inside an EAP instance; it fails with errors like the following:
Caused by: java.lang.IllegalArgumentException: interface
org.rhq.enterprise.server.auth.SubjectManagerRemote is not visible from class
loader
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at
org.rhq.enterprise.client.RemoteClientProxy.getProcessor(RemoteClientProxy.java:69)

6.9. UI

Problems with Sessions and Multiple Tabs
If there are multiple tabs open to the JBoss ON UI and one of those sessions times out, then the other tabs will register errors. This can also occur if multiple people are logged into JBoss ON as the same user.
Searching for a resource with a backslash (\) in the name returned no results, even if the resource exists.
Bugzilla 736732: Bookmarked UI Pages May Display the Old UI
The page names used for different pages in the JBoss ON UI for version 3.0 are different than the ones used in JBoss ON 2.4. However, because JBoss ON 3.0 retains some of the elements used in the older JSF-based UI, these pages still exist. This means that bookmarks will go to the old style pages.
For example, the Dashboard page in the old JSF UI had the URL http://localhost:7080/Dashboard.do/. In the new UI, the location is http://localhost:7080/coregui/#Dashboards.
All of the new pages have the coregui/ element in them. Remove any old bookmarks and replace them with the new GWT-based pages in the coregui/ area.

6.10. Alerts

Alerts with compound AND conditions can incorrectly fire when one of the conditions goes from true to false within 30 seconds of the other condition going from from false to true.
Alert conditions and alert notifications in an alert definition cannot be edited. The condition or notification must be deleted and a new item added.

6.11. Drift

The path is required to be set for each includes or excludes item if a pattern is set. For example, to include only *.conf files, then the pattern is set to *.conf and to look within the base directory, the path must be set to a period (.), to indicate the current directory.
Drift monitoring is not supported for embedded web applications, only for standalone applications.
When looking at the carousel view, changing the filters can cause a globally uncaught exception in the UI. There are no errors in the agent or server logs.
Bugzilla 760145: Using a root directory on Windows corrupts the drift entry file paths
When a root directory, such as C:\ or D:\, is the base directory in the drift definition, the backslash ends up escaping the first character in the path. For example, C:\tmp shows as C:\mp. This makes all of the drift file paths for that definition wrong.
The best workaround is to use only non-root paths as the base directory for drift definitions on Windows.
Bugzilla 760289: Using a broad directory for the base directory can hang the agent
The drift detection process fetches all files, recursively, under the base directory to check for files that match the filters. (The drift process does not digest all the files, but it does check them.) This occurs even if there are Includes arguments that limit drift monitoring to only certain subdirectories.
If the base directory is set to a root or a broad directory directory, then effectively the agent scans the entire filesystem to check for matching files. The agent could hang or have very poor performance.
One indicator of this problem is if the initial snapshot for a definition takes a very long time to appear.
To work around this, use multiple drift definitions that set the base directory to the given subdirectory. (The path can be set to a period (.) to look for patterns only in the local base directory.)
Instead of this definition:
Definition
base directory: C:\
Includes: myDir1
Includes: myDir2
Create two definitions:
Definition 1
base directory: C:\myDir1

Definition 2
base directory: C:\myDir2
Bugzilla 761320: Default drift detection and interval settings can prevent drift detection from running
The default interval setting for a drift definition is 30 minutes, meaning that the drift is scheduled to run 30 minutes after the end of its last drift detection run. By default, the agent runs a detection scan every minute.
The problem is that this can result in the definition schedule getting pushed out, so that the detection scan never runs for that definition. For example, the agent runs a scan for Definition A at 12:00 and grabs the initial snapshot. The scan ends at 12:01. The next scheduled detection run for Definition A is 12:31, and the next detection scan for the agent is 12:02. When the agent detection scan runs at 12:02, it skips Definition A because it sees that the next interval for Definition A is 12:31 — however, the agent still updates the scan time for Definition A. This bumps the next interval for Definition A to 12:32. When the next agent scan runs at 12:03, it again skips Definition A, but bumps its timestamp, which bumps the schedule another minute.
Alternatively, work around this situation by setting the rhq.agent.plugins.drift-detection.period-secs value higher than the highest drift definition. (It may be feasible to set the drift definition intervals lower to allow a moderate drift detection scan period.) For example, to set the interval to 15 minutes (900 seconds):
agentRoot/rhq-agent/bin/rhq-agent.sh -Drhq.agent.plugins.drift-detection.period-secs=900

6.12. Resources

If EAR, WAR, or script resources are deleted, the agent throws an exception during discovery, and the server is not informed that the resource was deleted.
Apache directives are case-insensitive, but the Apache plug-in treats them as if they were case-sensitive. This makes the plug-in disregard directives with non-default case.
Discovering a JBoss AS instance fails if the configuration directory is a URL.
The discovery process fails to determine the JNP URL if the data directory is not located at ${jboss.server.home.dir}/data.
Turning off an agent does not show the platform as unavailable for 15 minutes, the time of the next agent availability report.
Shutting down a JBoss AS 5 resource can fail with java.rmi.NoSuchObjectException: no such object in table.
It is not possible to add some system properties for a JBoss AS resource.
Some JBoss AS 5 plug-in resources have unset read-only configuration properties, which means the values have to be re-entered every time the configuration is viewed.

6.13. LDAP

Using a case-insensitive login with LDAP authentication fails and opens a blank page.
A role cannot be deleted if an LDAP group is assigned as a member.

6.14. Performance

Attempting to update the members in a compatible group with thousands of members times out and fails with 'Failed to fetch Resource Group.'
Viewing configuration, alerts, or other data for groups with more than 1000 members can fail with the SQL exception maximum number of expressions in a list is 1000.

7. Document History

Revision History
Revision 3.0-5August 21, 2012Ella Deon Lackey
Adding BZ 828938 to the known issues list.
Revision 3.0-3December 7, 2011Ella Deon Lackey
GA release of JBoss Operations Network 3.0.
Revision 3.0-0September 7, 2011Ella Deon Lackey
Beta release of JBoss Operations Network 3.0.


[1] The latest mod_cluster version supported in JBoss EAP and the httpd service in Red Hat Enterprise Linux is 1.0.10.

Legal Notice

Copyright © 2011 Red Hat, Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.