By Scott Stroz
Have you ever wanted to peer into your server and see how it is really performs when running your applications? Have you ever wished you could watch your ColdFusion code execute one line at a time? Thanks to two products from Intergral, you can accomplish these, and much more. With the recently upgraded FusionReactor 2.0 (http://www.fusion-reactor.com/), and the soon to be released FusionDebug (http://www.fusion-reactor.com/fusiondebug/), ColdFusion developers will have the ability to monitor and debug their applications in ways that, until recently, seemed out of reach.
FusionReactor 2.0
, Darren Pywell, CTO of Intergral, explained, helps increase application availability, reduce response times and identify performance problems before they impact critical business processes.
With FusionReactor you can see exactly what ColdFusion is doing, capture runtime data, cancel hanging requests and even collect data for retesting. With advanced features such as crash protection, or self-healing
as Pywell describes it, request management and the new Enterprise Dashboard, FusionReactor will become essential for production sites. Features like a JDBC wrapper, stack traces and metric gathering make FusionReactor a must have for development as well.
The user interface for FusionReactor should be familiar to most ColdFusion developers. It has a strong resemblance to the ColdFusion administrator, and that is no accident. As David Tattersall, CEO of Intergral, explains, We want to stay aligned with ColdFusion, and one way to accomplish that is to have an environment with which developers are comfortable and familiar.
Enterprise Dashboard
![]() |
| Figure 1: The Enterprise Dashboard |
With the Enterprise Dashboard, you can monitor the state of of one or more ColdFusion server installations. The Enterprise Dashboard allows you to view information on individual server instances, or to view several servers as a group or cluster. Server instances can also be defined in more than one group. The Enterprise Dashboard displays real-time data such as memory usage, CPU usage, average request time, number of requests and request count and, Pywell said, can monitor remote servers anywhere on your network.
Each physical server that is monitored by the Enterprise Dashboard is required to have FusionReactor installed. The Enterprise Dashboard can also monitor other J2EE servers such as Tomcat, JBoss and Flex Data Services. Geared more towards a production environment, the Enterprise Dashboard makes FusionReactor a valuable tool for hosting companies with shared hosting environments.
Crash Protection
![]() |
| Figure 2: Crash Protection gives detailed metrics on memory, requests, and much more. |
FusionReactor's crash protection, which encompasses memory and request monitoring, allows you to keep an eye on your server even when you are away from it. FusionReactor can be configured to alert you when the server is using too much memory, when too many requests are made, or when a request runs longer than desired. You can have each of these monitoring components send you an email when a potential problem is discovered, and you can specify how to handle the issue, such as blocking or queuing new incoming requests, and even canceling long running requests. The notification can also be configured to include a full stack trace of the event causing the problem. The FusionReactor API allows developers to create complex configurations for self-healing,
explained Pywell. The FusionReactor API (FRAPI) also allows you to override or ignore requests that would typically take a long time to execute, such as indexing search collections.
JDBC Wrapper
The JDBC wrapper, which replaces a typical ColdFusion datasource driver, will log information about every query run during a request. Important information, such as how long the query ran on the database server, how long it took to retrieve the data, how many rows of data are returned, and even the values of cfqueryparam tags, is stored in log files. The log files are CSV files,
said Pywell, so they can be imported into a database and used for analysis to help determine potential performance issues.
The JDBC wrapper also tracks the ColdFusion page, and where in the page the queries are located, making it easy to track down a query if there is a performance issue.
![]() |
Figure 3: The Memory Graph gives a graphic perspective on the memory usage of your server over time. |
![]() |
| Figure 3: The Memory Graph gives a graphic perspective on the memory usage of your server over time. |
Global Filters
Global Filtering is one FusionReactor feature that seems out of place in a server monitoring tool. Global Filtering can be configured, using plain text or regular expressions, to replace incorrect or out-of-date content in all requests. This makes it possible to quickly correct mistakes that may lead to broken links or broken pages. In most cases this is meant more as a band-aid, rather than a permanent solution,
explained Pywell. Global Filtering helps ensure that the proper content is being sent to the web browser until a permanent fix can be provided by the development team.
With all this monitoring and logging going on, you might expect performance to suffer. However, the impact on your server's performance is minimal. If your server can normally handle 200 requests per second, with FusionReactor installed, that may drop to 197 requests per second,
said Pywell. As more options are enabled, the processing time for FusionReactor increases, with most of that time being used to write to the log files,
he explained.
FusionReactor is compatible with ColdFusion MX 6.1 and higher, with support available to configure FusionReactor for use with ColdFusion MX 6. It is available in two versions, Standard and Enterprise. The Standard version licensing starts at $249 per physical server and includes the JDBC wrapper. The Enterprise version licensing starts at $599 per physical server and includes the Enterprise Dashboard and Instance Manager. For more information and to download a free ten-day demo of FusionReactor, visit http://www.fusion-reactor.com.
FusionDebug is an upcoming addition to Intergral's Fusion product suite and one of the most anticipated ColdFusion products around. A plug-in for the Eclipse IDE, FusionDebug allows for interactive debugging of ColdFusion applications. "FusionDebug empowers ColdFusion developers by allowing them to interactively debug applications, similar to Java developers," explained Tattersall. With FusionDebug, you can set breakpoints in a page, step over code one line at a time, and even 'step into' custom tags or CFCs.
'Breakpoints' can be set within a .cfm or .cfc page and when the page is executed, the JVM is suspended at that point and the developer gains control over the execution. After hitting a breakpoint, the developer has the ability to execute, or step over, the ColdFusion code one line at a time.The 'step into' feature provides the ability to step into any custom tags or CFC methods that exist within the current page. Conversely, the 'step return' allows developers to return to the current page from within a custom tag or CFC method.
FusionDebug gives you the ability to 'watch' variables, and see their values, throughout the execution of the page.
Full stack tracing is available to allow a developer to find from which page, and line, the current page was called. It is even possible to select each individual stack frame.
FusionDebug fully integrates with Eclipse, and any product which is based on Eclipse, such as CFEclipse and Flex Builder. This enables developers to write and debug code using just one editor.
Currently, FusionDebug is only supported within the Eclipse IDE, but Pywell stated, If the demand is there, we may release a stand-alone version as well as a version that works with other IDEs, such as Dreamweaver.
FusionDebug is currently in Beta, and is scheduled for release at the end of July, 2006. Pricing details have not been finalized. Tattersall stated the price will definitely be under $400.
For more information on FusionDebug, and to view a video demonstration, please visit http://www.fusion-reactor.com/fusiondebug/.
Scott Stroz is a Senior Web Developer for AboutWeb, LLC, http://aboutweb.com. He has been a ColdFusion developer since version 5. He is the creator of Flogr, a Flex-based ColdFusion log reader. His blog at http://www.boyzoid.com is about 90% technical and 10% about life in general. He is married with two children, and resides in Wild, Wonderful West Virginia.