[frs-316] Upgrading to FusionReactor 5 for ColdFusion Users

If you are upgrading to FusionReactor 5 from an older version on a ColdFusion Server, there are a few important steps to follow to guarantee a smooth upgrade.

FusionReactor 5 now automatically takes care of the some things that were manually configured or installed in older versions. The following points are important to address when upgrading:

  • FusionReactor Extensions for ColdFusion are now automatically included on CF servers
  • JDBC Datasources are now automatically wrapped
  • Remove the fusionreactor-driver.jar (ColdFusion 10 Manual installs only)
  • The URL's to access FusionReactor have slightly changed

Uninstall FusionReactor Extension for ColdFusion (FREC)

FusionReactor 5 automatically detects ColdFusion servers and installs the extensions for ColdFusion. This result in errors being reported however if the old extensions are not uninstalled before running FusionReactor 5 such as:

java.lang.SecurityException: sealing violation: can't seal package 
com.intergral.fusionreactor.plugin.coldfusion: already loaded

Please make sure that you uninstall all of the FREC instances from your ColdFusion Servers before running FusionReactor 5. If you forget to uninstall FREC you can uninstall at anytime but you must restart the ColdFusion server to clear the error. For more information on uninstalling FREC please see the following page in the documentation:

http://docs.intergral.com/display/FR455/Uninstalling+FREC+from+FusionReactor+Instances

You can download the FREC Installer/Uninstaller here:
https://www.fusion-reactor.com/support/fusionreactor-4-5-x-information/

Replacing FusionReactor Wrapped JDBC Datasources

FusionReactor 5 automatically wraps JDBC datasources and no longer requires a manually wrapped datasource to be created. Note: FusionReactor 5 does also support legacy wrapped datasources from previous version of FusionReactor, but it is recommend for performance reasons that you remove the wrapped datasources and use direct CF datasources.

Note: ColdFusion 10 users MUST replace the wrapped datasources for macromedia.jdbc.MacromediaDriver based connections.

Please note that two datasources cannot have the same name and if the wrapped datasource name is used inside your ColdFusion code, you must replace the wrapped datasource with the native datasource with the same name to make sure your code still operates.

Using the FusionReactor JDBC Wrapper Tool

The FusionReactor JDBC Wrapper Tool can be used to unwrap existing datasources using a simple web based interface. The FusionReactor JDBC Wrapper Tool can be found here: https://www.fusion-reactor.com/devnet/FRS-300

Manually Replacing JDBC Datasources

To manually replace each wrapped datasource please perform the following tasks:

  • Edit the wrapped datasource and prefix legacy_FR_ to the name (e.g. myDatasource becomes legacy_FR_myDatasource)
  • Save the datasource
  • Create a new datasource with the exact name of the original wrapped datasource (e.g. myDatasource)
    • You should select the correct Driver from the list below the
    • Make sure that the settings you configure for the datasource are correct. You can refer back to the wrapped datasource to make that the setting correct

Datasource Names

If you have multiple datasources, you may find it useful to give FusionReactor access to the name of your DSN (aswell as the SQL and metrics which are automatically collected). To do so, add the argument __fusionreactor_name=<your dsn name here> to your connection string (under Advanced Settings when editing the data source). Further details are available in the documentation http://docs.intergral.com/display/FR50/JDBC+Monitoring+Options

Excluding Datasources

You may wish to exclude a datasource from automatic monitoring – eg for security reasons). To do so, add the argument __fusionreactor_exclude=true to your connection string (under Advanced Settings when editing the data source). Further details are available in the documentation http://docs.intergral.com/display/FR50/JDBC+Monitoring+Options

Note: If you are thinking of excluding a datasource for performance reasons. Why not first reduce the impact by only tracking slow queries, or reducing the detail of information collected. The two largest factors in overhead of JDBC monitoring are a) source code lookup (which file & line of code did the SQL come from) and b) writing the SQL & metrics to disk. If you can easily tell where a SQL statement has come from, you could disable a (set Query Location to Disabled in the JDBC Settings). If you run a lot of queries and are only interested in the slower ones, you could choose to write only those taking longer than 100ms to disk (set Only queries slower than to 100 ms in the JDBC Settings). http://docs.intergral.com/display/FR50/JDBC+Settings

Remove the fusionreactor-driver.jar file on manual upgrades on ColdFusion 10

If you are performing a manual upgrade of FusionReactor on a ColdFusion 10 server, you must remove the fusionreactor-driver.jar file from the /cfusion/lib folder. The driver is now included in the fusionreactor.jar and may cause conflicts if still left in the cfusion/lib folder. Note: If you use the instance manager to update your instance it should remove the fusionreactor-driver.jar during the upgrade process.

This may lead to errors when using certain drivers such as:

java.sql.SQLException: FusionReactor JDBC: [6] Wrapper - Driver class macromedia.jdbc.MacromediaDriver could not be found and loaded.
The root cause was that: java.sql.SQLException: FusionReactor JDBC: [6] Wrapper - Driver class macromedia.jdbc.MacromediaDriver could not be found and loaded.

In these cases you must unwrap the datasources.

Accessing FusionReactor

The URL's for accessing FusionReactor are slightly different in FusionReactor 5:

FusionReactor's Internal Web Server

You can call FusionReactor directly from a web browser with a URL like this: http://127.0.0.1:8088/fusionreactor/

You must use the correct IP address and port for the FusionReactor instance you are trying to access.

Your External Web Server

You can often access FusionReactor from your external web server with a URL like this: http://demo.fusion-reactor.com/fusionreactor.cfm/findex.htm

Notice that we have the extension .cfm appended directly after /fusionreactor. The external web server maps to the monitored ColdFusion server. This is so that the request is passed to FusionReactor which runs inside the ColdFusion application engine. Access to FusionReactor from the external web server can be configured on or off.

Issue Details

Type: Technote
Issue Number: FRS-316
Components: FR Enterprise Dashboard Desktop Application, Installer, JDBC
Environment:
Resolution: Fixed
Last Updated: 02/Feb/16 2:09 PM
Affects Version: 5.0.0
Fixed Version: 5.0.0
Server:
Platform:
Related Issues:

FRS-317: Unwrap existing datasources when upgrading to FusionReactor v5 – Driver class macromedia.jdbc.MacromediaDriver could not be found and loaded

Comments are closed.