Find and Fix ColdFusion issues with FusionReactor

Install & Configure

The idea of installing FusionReactor can be daunting for some administrators. Don’t panic!

Install the JDBC wrapper on all your datasources. We have a handy tool to help you JDBC Wrapper Tool

After configuring the JDBC wrapper, enable the JDBC logging option.

FusionReactor log files are rotated on a file-size basis. If you have a busy server you should increase the file-size of the logs to retain a longer period of data.

Logging can be increased by the number of log files stored OR the size of each log file.

  • When you wish to log more data, increase the size of individual log files, not the number of log files stored. This reduces the load required to rotate log files improving performance!

Visit the FusionReactor Support Page for additional User Guides, Knowledge Base Search, Online Forum and more!

Watch requests run – in real time

Using "Running Requests", select "5s" or less from the "Refresh every…" drop down in the top right corner of the page.

Watch the requests coming through and make sure they’re getting processed.

  • The oldest and thus longest running request will be at the bottom of page.

Using the magnifying glass icon, view a Java stack trace of the request.

  • This tells you exactly what line of code the request is running at that point in time. You can click the refresh button (in the top right) on this page to update the stack trace.

If you refresh the stack trace a few times (maybe 5 or more) and the stack trace does not change, it is likely the request is stuck at that line of code. Review the code. Would you expect the server to be stuck on that line for a long time? (eg Are you waiting for results from a DB call or CFHTTP/webservice request?)

Use the "System Metrics" to identify the problem

Is the problem thread bound?

  • Can often be identified by the number of running requests at or close to maximum simultaneous request count

Is the problem DB bound?

  • High JDBC Request/sec level (requires knowledge of normal operating levels)
  • High avg JDBC time (requires knowledge of normal operating levels)

Is the problem heap memory bound?

  • Can be seen in FR graphs as "used memory" very close to "allocated memory" level AND allocated level very close to max level

Is the problem system memory bound?

  • Can sometimes be identified through allocated memory NOT close to maximum allowed but "out of memory" errors occur

Application server CPU bound

  • High instance CPU level (almost 100% almost all of the time)

Check client variable storage purges

Another process using all the CPU time?

  • High system CPU level with low instance CPU level. Another process is taking all the CPU power.

Use "top" (*nix) or "Task Manager" (Windows) to see which process is using the CPU.

Check virus scanner configuration

Could it be time to move to a dedicated DB server?

Logs, logs and more logs

FusionReactor, ColdFusion and the JVM log a lot of information to disk.

FusionReactor
<FusionReactor>/instance/<instance name>/log

ColdFusion
<ColdFusion>/logs
<JRun4>/servers/<instance name>/<instance name>-ear/<instance name>-war\WEB-INF\cfusion\logs

JVM
<ColdFusion>/runtime/logs
<JRun4>/logs

Get familiar with their locations so you know where to look for more detailed error messages when there’s a problem.

Even if you have to restart ColdFusion, you can still review past metrics by looking at the FusionReactor log files.
You can use our new tool FusionAnalytics.

Request history by return code

If a customer calls saying they had an error page, do you know what’s happened? Do you know the details of their request? Could you find the error without any code alterations?

At the bottom of the "System metrics" page you can access the request history by return code. Codes in the 500’s are problems you should investigate.

Know your system!

Continuous server analysis is your best friend when fire-fighting problems.

If you "know" the normal operating trends of your server (Request, DB, Memory, CPU) then you will stand a much better chance of knowing what’s happening.

Request content capture

Having difficulty reproducing an error? Need to be able to see HTTP requests headers, HTTP response headers AND response content?

Enabling Request Content Capture for a short period of time can help speed your diagnosis. (Requests → Request Settings → Request Content Capture)

Enabling this feature can use a lot of disk space very quickly even on a quiet server as every response is stored on the disk.

Flash Remoting (AMF Protocol) Support

Ever wondered what’s being passed in your remote calls?

Enable Flash Remoting Support (Requests → Request Settings → Flash Remoting Support → AMF Decoding) allows FusionReactor to see what methods and parameters are being requested on your server.

Spotlight »

Adobe Solution Partner »

Adobe Solution Partner Adobe Certified Professional ColdFusion MX 7 Adobe Certified Professional Flex Developer