[frs-386] Network IO Graph can show negative values if a server enters sleep mode


When a sever falls into sleep mode the Network IO Graph may show negative values. The Network IO Graph is located in FusionReactor under:

  • System Resource > Network Usage

Network IO Graph displaying negative spikes in FusionReactor

Negative values will cause the 1 Hour, 1 Day, and 1 Week graphs to display incorrectly where the negative values occurred.

FusionReactor will be fixed by preventing the negative values in a later release.

Issue Details

Type: Technote
Issue Number: FRS-386
Components: Metrics
Environment:
Resolution: Fixed
Last Updated: 23/Feb/16 3:40 PM
Affects Version: 6.0.0, 6.0.1, 6.0.2, 6.0.5
Fixed Version: 6.x
Server: BlazeDS, ColdFusion 6, ColdFusion 7, ColdFusion 8, ColdFusion 9, ColdFusion 10, Flex Data Services, GlassFish, JBoss, JBoss 7, Jetty, JRun 4, Open BlueDragon, LiveCycle Data Services, Railo, Resin, ServletExec, Tomcat, Tomcat 7, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003, Linux, MacOS, Solaris, Windows Vista, Windows x64, AIX, Windows 7, Windows 2008
Related Issues:

[frs-224] Hotfix FR-1643: Standalone FR JDBC Wrapper Driver (for MySQL Connector/J etc.)


Hotfix 1643 for FusionReactor 3.0.1 – Description

This technote describes a fix for a condition under which you receive exceptions trying to wrap JDBC drivers which have been loaded by a classloader other than that which loaded the FusionReactor system filter. This occurs primarily on manual installs, or J2EE platforms not supported by the installer (e.g. Websphere), or if you are using third-party JDBC Driver jars.

Symptoms

Customers using FusionReactor in environments where the FusionReactor JDBC Driver Wrapper (and subsequent wrapped driver) is loaded by a different classloader than that used to load the FusionReactor system filter may observe one or more of the following issues:

  • The J2EE engine fails to find the FusionReactor JDBC Driver Wrapper (ClassNotFoundException).
  • The J2EE engine finds the FusionReactor JDBC Driver Wrapper but the wrapper cannot find an in-memory accessible instance of the FusionReactor system; in which case the wrapper will degrade to logging to the console.
  • The J2EE engine finds the FusionReactor JDBC Driver Wrapper, and the wrapper does locate an in-memory accessible instance of the FusionReactor system, but when attempting to send JDBC metrics to the system, encounters a class type mismatch (ClassCastException).

These symptoms occur mostly in situations where:

  • FusionReactor has been deployed manually, or
  • Customers are using third-party JDBC driver jars in JRun/ColdFusion, which previously had to have been copied to SERVER-INF/lib

Analysis

The problem is due to the way J2EE engines partition their classloaders. The FusionReactor system filter must be loaded either at the same level of a classloader hierarchy as JDBC Driver Wrapper or a higher level. If this invariant is not satisfied, the exceptions mentioned above may be raised.

In the past, we have encouraged customers using ColdFusion to transition to third-party drivers, where their location and position within the classloader hierarchy can be fully controlled, and to install the jars for these drivers alongside the installed fusionreactor.jar. However, certain customers who are using Macromedia (Merant/Data-Direct) drivers are unable to move these drivers because of a licensing restriction imposed by the supplier of these drivers. This problem usually occurs in environments where ColdFusion has been installed as an EAR/WAR deployment within a J2EE engine.

We have resolved this issue by re-writing the interface between the FusionReactor system filter and the FusionReactor JDBC Driver Wrapper to be independent of classloader. As long as the FusionReactor system filter has been loaded by the same (or higher) classloader as the FusionReactor JDBC Driver Wrapper and subsequent wrapped driver, there should be no issues concerning communication between the two.

Third-Party (OEM) JDBC Driver Jars

It is no longer necessary to move third-party driver JAR files (e.g. MySQL Connector/J, JTDS etc.) to the SERVER-INF/lib folder. After updating the system fusionreactor.jar with the attached version, the The fusionreactor-jdbc.jar file should be installed in ColdFusion8/lib alongside the mysql-connector-java-* file. The wrapped datasource should then verify correctly.

Resolution

Customers with FusionReactor 3.0.1 only should apply the attached Hotfix 1643. This consists of a new system fusionreactor.jar (with which you should replace your existing copy) and a new fusionreactor-jdbc.jar. This latter file should be placed in the same folder as your JDBC drivers.

Included Hotfixes

  • Hotfix 1623, described by technote FRS-216
  • Hotfix 1630, described by technote FRS-218
  • Hotfix 1635, described by technote FRS-219
  • Hotfix 1638, described by technote FRS-220
  • Hotfix 1640, described by technote FRS-222

Files

hotfix-FR-1643-FR-1640-1638-1635-1630-1623.FR-HEAD-1329.13132.zip

Taxonomy

After installation, FusionReactor's "About" page should identify itself as Revision: 3.0.2, Build: FR-HEAD.1329.13132.

Hotfix FR 1643 – obf. (Stream: trunk, build 1329, SVN 13132)

Issue Details

Type: Technote
Issue Number: FRS-224
Components: JDBC
Environment:
Resolution: Fixed
Last Updated: 16/May/12 4:52 PM
Affects Version: 3.0.1
Fixed Version: 3.0.1
Server: JBoss, Jetty, JRun 4, Railo, Resin, ServletExec, Tomcat, WebSphere, WebLogic
Platform:
Related Issues:

[frs-240] Standalone FR JDBC Wrapper Driver (for MySQL Connector/J etc.)


FusionReactor 4.5.0+…

Customers using FusionReactor 4.5.0 and above must not apply this technote. This issue has been resolved with the addition of a cp option to the JDBC driver wrapper. See Using the FusionReactor Driver Wrapper for more information.

Customers who have already applied FRS-240 to versions of FusionReactor prior to 4.5.0, and who plan to upgrade to 4.5.0 or greater should read FRS-296: "FusionReactor 4.5.0: Briefer for Split-Jar JDBC Wrapper Users".

Please Note…

This article applies to FusionReactor 3.5.x and 4.0.x. Customers with FusionReactor 3.0.1 should use Hotfix FR-1643.

Symptoms

Customers using FusionReactor in environments where the FusionReactor JDBC Driver Wrapper (and subsequent wrapped driver) is loaded by a different classloader than that used to load the FusionReactor system filter may observe one or more of the following issues:

  • The J2EE engine fails to find the FusionReactor JDBC Driver Wrapper (ClassNotFoundException).
  • The J2EE engine finds the FusionReactor JDBC Driver Wrapper but the wrapper cannot find an in-memory accessible instance of the FusionReactor system; in which case the wrapper will degrade to logging to the console.
  • The J2EE engine finds the FusionReactor JDBC Driver Wrapper, and the wrapper does locate an in-memory accessible instance of the FusionReactor system, but when attempting to send JDBC metrics to the system, encounters a class type mismatch (ClassCastException).
  • Customers attempting to verify their wrapped drivers with their J2EE engines (e.g. from within the ColdFusion Administrator) may receive the message Driver could not be found and loaded

These symptoms occur mostly in situations where:

  • FusionReactor has been deployed manually, or
  • Customers are using third-party JDBC driver jars in JRun/ColdFusion, which previously had to have been copied to SERVER-INF/lib

Analysis

The problem is due to the way J2EE engines partition their classloaders. The FusionReactor system filter must be loaded either at the same level of a classloader hierarchy as JDBC Driver Wrapper or a higher level. If this invariant is not satisfied, the exceptions mentioned above may be raised.

In the past, we have encouraged customers using ColdFusion to transition to third-party drivers, where their location and position within the classloader hierarchy can be fully controlled, and to install the jars for these drivers alongside the installed fusionreactor.jar. However, certain customers who are using Macromedia (Merant/Data-Direct) drivers are unable to move these drivers because of a licensing restriction imposed on Adobe by the supplier of these drivers. This problem usually occurs in environments where ColdFusion has been installed as an EAR/WAR deployment within a J2EE engine.

We have resolved this issue by re-writing the interface between the FusionReactor system filter and the FusionReactor JDBC Driver Wrapper to be independent of classloader. As long as the FusionReactor system filter has been loaded by the same (or higher) classloader as the FusionReactor JDBC Driver Wrapper and subsequent wrapped driver, there should be no issues concerning communication between the two.

Third-Party (OEM) JDBC Driver Jars

It is no longer necessary to move third-party driver JAR files (e.g. MySQL Connector/J, JTDS etc.) to the SERVER-INF/lib folder. After updating the system fusionreactor.jar using the procedure below, the The fusionreactor-jdbc.jar file should be installed in ColdFusion/lib alongside the third-party JDBC driver jar file. The wrapped datasource should then verify correctly.

Resolution

Customers with FusionReactor 3.5.0 or later only should perform the following procedure. This consists of installing a new system fusionreactor-core.jar (with which you should replace your existing copy of fusionreactor.jar) and a new fusionreactor-jdbc.jar. This latter file should be placed in the same folder as your JDBC drivers.

  1. Ensure the J2EE engine can locate, load and use the unwrapped data source.
  2. Locate the two new split jars within your /FusionReactor/etc/lib folder. These are named fusionreactor-core.jar and fusionreactor-jdbc.jar.
  3. Locate the existing installed fusionreactor.jar file, for example ColdFusion9/runtime/servers/coldfusion/SERVER-INF/lib/fusionreactor.jar
  4. Stop your J2EE (e.g. ColdFusion Application Server) engine.
  5. Make a copy of the installed .../SERVER-INF/lib/fusionreactor.jar and store this safely, in case a rollback is required.
  6. Remove the installed .../SERVER-INF/lib/fusionreactor.jar file and replace it with the fusionreactor-core.jar file, renaming it fusionreactor.jar after copying.
  7. Copy the fusionreactor-jdbc.jar to the same location as the jar containing your unwrapped JDBC driver.
  8. Restart the engine and attempt to verify the datasource.

Issue Details

Type: Technote
Issue Number: FRS-240
Components: JDBC
Environment:
Resolution: Fixed
Last Updated: 14/May/12 4:54 PM
Affects Version: 3.5
Fixed Version: 3.5, 4.0.0
Server: JBoss, Jetty, JRun 4, Railo, Resin, Tomcat, WebSphere, WebLogic
Platform:
Related Issues:

FRS-258: Updating a FusionReactor 3.x split-jar installation to 4.x

[frs-230] FusionReactor 3.5.x Release Notes and Resolved Issues



FusionReactor Rev. 3.5.x


RELEASE NOTES

Status: 17-Feburary-2011

Welcome to FusionReactor!

We appreciate your feedback. Please use the web form or send mail to:

support@fusion-reactor.com

These Release Notes describe what is contained in this release, provide
late-breaking news, and list additional documentation for the software.

For additional information on FusionReactor, please visit our website at:

http://www.fusion-reactor.com

For known issues and further support, please see the following web pages:

http://www.fusion-reactor.com/fr/faq.cfm
http://www.fusion-reactor.com/fr/support.cfm

To check for FusionReactor updates use the update page

RESOLVED ISSUES 3.5.5

Key Issue Type Summary
FR2001 Bug License/activation data corrupted due to concurrent access of multiple FR processes

RESOLVED ISSUES 3.5.4

Key Issue Type Summary
FR1836 Bug NullPointerException from JDBC on Railo on getMetaData in some cases
FR1958 Bug In some cases small AMF content is not flushed

RESOLVED ISSUES 3.5.3

Key Issue Type Summary
FR1744 Bug XML content in Railo breaks with a SAX Parser error (org.xml.sax.SAXParseException)
FR1747 Bug FusionReactor runs thousands of samples after it dehibernates (use schedule and not scheduleAtFixedRate)

RESOLVED ISSUES 3.5.2

Key Issue Type Summary
FR1724 Improvement AMF processor should handle a Target in the same way as a serviceName and serviceMethodName

RESOLVED ISSUES 3.5.1

Key Issue Type Summary
FR1704 Bug The Request Details button on the Slow Requests page did not work in FusionReactor 3.5.0. Pressing the Request Details button now correctly calls the Request Details page for requests shown on the Slow Requests page.
FR1706 Bug After a FusionReactor trail period had expired, FusionReactor used too many files handles and did not free them. File handles are now freed correctly. This issue did NOT affect FusionReactor installations that had a valid license, only installations where the trial period had expired and no license was uploaded.

RESOLVED ISSUES 3.5.0

Key Issue Type Summary
FR1648 New Feature Support for ColdFusion 9
FR1693 New Feature Support for Railo 3.1
FR1669 New Feature Support for JBoss 5.1
FR1692 New Feature Support for Windows 2008 Server R2
FR1681 New Feature Support for Windows 7
FR1670 New Feature Support for Mac OS X 10.6 "Snow Leopard"
FR1682 Improvement Support for Flash Player 10c and Flash Player 9 update 5
FR1676 Improvement FusionReactor Setup/Installer and Updater Support for 64 bit Windows machines
FR1667 Improvement FusionReactor's Flash content appears always on top when embedded in HTML in AIR. Use WMODE to correct the problem.
FR1666 Improvement Update Installation Guide
FR1664 Improvement Enhance FRAPI Request Surrogates to include more detail (see JavaDoc)
FR1660 Improvement Update FREM Release Candidate to the 3.5 CORE
FR1658 Improvement New AMF Deserializer implementation / Support for AMF handling Externalizable Objects
FR1650 Improvement FusionReactor Licencing support for AIX on JVM 1.5
FR1691 Bug Installer should select the "coldfusion" J2EE webapp by default when installing FusionReactor into ColdFusion 9
FR1687 Bug Crash Protection Alert Emails are not sent from FusionReactor instances installed in ColdFusion 9
FR1684 Bug Sockets used by FusionReactor's web server can enter CLOSE_WAIT indefinitely when invalid HTTP requests are received
FR1680 Bug Requests sometimes show "null" instead of the server name in CF9
FR1665 Bug Enterprise Dashboard should be able to cope with server names longer than 24 characters
FR1659 Bug Uninstall should only remove FusionReactor files
FR1657 Bug HTTP Post without headers causes a Java NullPointerException; FusionReactors web server can stop working
FR1643 Bug FusionReactor JDBC Wrapper as standalone JAR. It should be possible to place the FR JDBC Wrapper JAR in the same folder as the wrapped JDBC driver to avoid having to move JDBC drivers
FR1638 Bug Deadlock (out-of-order lock acquisition) between FusionReactor's JDBC driver and Metric Probe
FR1630 Bug JDBC Metrics are not tracked when no owning request can be found (eg. in CFTHREAD JDBC request)
FR1622 Bug Illegal State Exception / Response Has Been Closed with upstream Java app on Servet Forward/Includes in JRun. FusionReactor must not wrap a forward/include request if the the source request was already wrapped by FusionReactor.
FR1694 Bug A Race condition in stream data metrics could cause a CrashProtection Request Limit Email Notification to fail under extreme load conditions

Issue Details

Type: Technote
Issue Number: FRS-230
Components: Compression, Content Filters, CPU + Memory, Crash Protection, Enterprise Dashboard, FR Enterprise Dashboard Desktop Application, FusionReactor Settings, Installer, JDBC, License + Activation, Logging, Metrics, Request Managment, Thread Management
Environment:
Resolution: Fixed
Last Updated: 08/Aug/11 11:18 AM
Affects Version:
Fixed Version: 3.5
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, ColdFusion 9, Flex Data Services, JBoss, Jetty, JRun 4, LiveCycle Data Services, Railo, Resin, ServletExec, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003, Linux, MacOS, Solaris, Windows Vista, Windows x64
Related Issues:

FRS-214: FusionReactor 3.0.1 Release Notes and Resolved Issues

FRS-251: FusionReactor 4.0.x Release Notes

[frs-245] Hotfix FR-2069: JDBC Prepared Statements throw ‘NullPointerException’ when called with null binding values.


Hotfix 2069 for FusionReactor 3.5.5 Description

This technote describes a fix for a condition under which FusionReactor's JDBC Driver Wrapper may throw NullPointerException when used with PreparedStatements whose binding values are null

Symptoms

When using the JDBC Driver Wrapper, passing a null to a setX method of PreparedStatement throws NullPointerException.

Analysis

FusionReactor's JDBC driver expects passed binding values to be non-null. The expected method of setting null for a given parameter is the setNull(...) method, however the JDBC API does not specifically prohibit null as a binding value being passed directly to the setX methods of PreparedStatement. Internally, the wrapper does some marshaling of this value in order to log it and display it in FusionReactor, and this operation was not null-guarded.

We confirm this to be a bug in the JDBC Driver Wrapper shipped up to FusionReactor 3.5.5.

Resolution

Customers with FusionReactor 3.5.5

Customers with FusionReactor 3.5.5 only installed should apply the attached Hotfix 2069, which resolves this issue.

Instructions for applying the hotfix are supplied in instructions.txt within the hotfix zip file.

Hotfixes are cumulative: any future hotfixes on the FusionReactor 3.5.5 stream, up to but not including the next point release, will contain this hotfix (and all earlier hotfixes since the last point release).

Customers with prior versions (< 3.5.5)

Customers with versions earlier than FusionReactor 3.5.5 should update to that version using the published installer/updater prior to applying this hotfix.

Included Hotfixes

  • None. This hotfix is the first to be issued on the 3.5.5 stream.

Files

hotfix-FR-2069.zip

Taxonomy

After installation, FusionReactor's "About" page should identify itself as *"
Revision: 3.5.5, Build: FusionReactor 3.5.x Maintenance Branch.17.19877"*

~Hotfix FR-2069 (B/P FR-2070) – obf. (Stream: FusionReactor 3.5.x Maintenance Branch, build 17, SVN 19877 JRH)

Issue Details

Type: Technote
Issue Number: FRS-245
Components: JDBC
Environment:
Resolution: Fixed
Last Updated: 02/Mar/11 2:27 PM
Affects Version: 3.5.5
Fixed Version: Pending
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, ColdFusion 9, Flex Data Services, JBoss, Jetty, JRun 4, LiveCycle Data Services, Railo, Resin, ServletExec, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003, Linux, MacOS, Solaris, Windows Vista, Windows x64, AIX, Windows 7, Windows 2008
Related Issues:

[frs-222] Log messages are not written to the associated log file


Hotfix 1640 for FusionReactor 3.0.1 – Description

This technote describes a fix for a condition under which FusionReactor log files are written to STDOUT or a Resin log file instead of being written to the associated log file.

Symptoms

When FusionReactor is installed on the Caucho Resin 3.x application server with virtual hosts configured (called 'webs' by Railo) the request, jdbc and crashprotection log messages are processed by Resin only but no written to the associated FusionReactor log file.

Analysis

The issue occurs because of the way the Resin 3.1 application server manages the log handler objects used by FusionReactor. Analysis of this problem showed that these handlers could not be retrieved correctly in an environment using multiple Resin EnvironmentClassloader instances which resulted in log messages being written to the default log configured in Resin only.

Note

If you see FusionReactor messages written to STDOUT (or into a Resin log file) you may need to restrict the log configuration of the Resin server accordingly. The following definition in the resin.conf file

<!--- Logging configuration for the JDK logging API. -->
<log name='' level='all' path='stdout:' timestamp='[%H:%M:%S.%s] {%{thread}} '/>

should be changed to something like

<!--- Logging configuration for the JDK logging API. -->
<log name='com.caucho' level='all' path='stdout:' timestamp='[%H:%M:%S.%s] {%{thread}} '/>

so that the FusionReactor loggers are excluded.

Resolution

Customers with FusionReactor 3.0.1 only should apply the attached Hotfix 1640, which resolves this issue.

Instructions for applying the hotfix are supplied in instructions.txt within the hotfix zip file.

Hotfixes are cumulative: any future hotfixes on the FusionReactor 3.0.1 stream, up to but not including the next point release, will contain this hotfix (and all earlier hotfixes since the last point release).

Included Hotfixes

  • Hotfix 1623, described by technote FRS-216
  • Hotfix 1630, described by technote FRS-218
  • Hotfix 1635, described by technote FRS-219
  • Hotfix 1638, described by technote FRS-220

Files

hotfix-FR-1640-1638-1635-1630-1623.FR-HEAD-1315.12791.zip

Taxonomy

After installation, FusionReactor's "About" page should identify itself as Revision: 3.0.2, Build: FR-HEAD.1315.12791.

~Hotfix FR 1640 – obf. (Stream: trunk, build 1315, SVN 12791)

Issue Details

Type: Technote
Issue Number: FRS-222
Components: Logging
Environment:
Resolution: Fixed
Last Updated: 19/Aug/09 3:26 PM
Affects Version: 3.0.1
Fixed Version: 3.0.1
Server: Railo, Resin
Platform: Windows XP, Windows 2000, Windows 2003, Linux, MacOS, Solaris, Windows Vista, Windows x64
Related Issues: