[frs-292] Dumping OSGi Bundle Status Information


Introduction

FusionReactor 4.5.0 extends the OSGi container concept used with FusionReactor 4.0.0 by making many core components OSGi Bundles. Although there is no visible difference to the user (except in FusionReactor -> Plugins -> All Bundles), the increased modularity allows for greater reliability and fault tolerance, and allows us to implement functionality using the latest technology, modularizing the application according to industry best practice.

You may be asked by support to provide a startup bundle dump. This technote illustrates how to go about producing this.

Description

As FusionReactor starts, it assembles a set of OSGi bundles, which together comprise the whole functionality of the system. This assembly is drawn from instance/plugins as well as instance/osgi/env/bundle.

As these bundles are loaded and started, FusionReactor tracks their status. Because the output from this tracking is rather large, it is suppressed by default.

When enabled, three new sections are logged to the container's default log output file (or console, in some cases):

  • AutoStart Bundles – drawn from instance/osgi/env/bundle. These bundles contain essential functionality and are start at runlevel 2, prior to everything else.
  • Plugin/System Bundles – drawn from instance/plugins. These bundles contain core functionality, services and extension bundles. These bundles are started after autostart bundles.
  • The Post-Startup Status block enumerates all loaded bundles, with status and version.

The former two blocks provide full information about each loaded bundle:

  • Bundle symbolic name
  • Bundle version
  • The start class (plugins or autostart)
  • The runlevel of the bundle – usually 2 for autostarts and 4 or 6 for plugin/system bundles
  • Whether the bundle is a system bundle – these come up in runlevel 4 and provide essential services)
  • A number specifying the state of the bundle – usually -1, signifying not yet installed
  • An indicator of the licensed platforms for this bundle.
    • Enterprise: Bundle only starts on enterprise FusionReactor licensed systems
    • Standard: Bundle only starts on standard FusionReactor licensed systems
    • Universal: Bundle starts on both standard /and/ enterprise licensed systems

Enabling Bundle Dump

To enable the dump, the Java VM option DUMP_BUNDLES must be applied.

  • For standalone Java applications, the command-line option -DDUMP_BUNDLES is used.
  • For Tomcat (Catalina) containers, this option can be specified by exporting the JAVA_OPTS=-DDUMP_BUNDLES environment variable prior to starting catalina.
    • On Unix: export JAVA_OPTS=-DDUMP_BUNDLES
    • On Windows: set JAVA_OPTS=-DDUMP_BUNDLES
  • For the ColdFusion (both JRun and Tomcat) systems, the option -DDUMP_BUNDLES can be appended to the jvm.config line java.args. Since this line is rather long, you must be careful not to disturb the formatting or introduce any extraneous whitespace.

For further information on configuring Java options for your J2EE container, please refer to its user guide.

Once enabled, the bundle dump will be output to your containers default log destination. This could be a localhost-*.log (Tomcat) or coldfusion-event.log (CF).

This file should be mailed back to support, along with any other requested information.

Issue Details

Type: Technote
Issue Number: FRS-292
Components: Plugins + OSGi
Environment:
Resolution: Fixed
Last Updated: 16/May/12 3:27 PM
Affects Version:
Fixed Version: 4.5.0
Server:
Platform:
Related Issues: