[Looking for Charlie's main web site?]

FusionReactor web site improvements

If you're a user of FusionReactor or FusionDebug, or are curious about the tools, note that their web sites have had a face lift.

Besides a fresher appearance there's improved organization and navigation. There are high-level views of the products (available on the front page, with tabs along the bottom for each product) and more detailed pages on each (FR and FD), with product tours, benefits, faqs, and much more. This breakdown of high-level and detail views applies as well to discussions of the Air Enterprise Dashboard and their Services (consulting, training, etc.)

Through the updated web site you can also learn about many other resources available, including articles, videos, and blogs by them and others; product docs, screenshots, FAQs and more; info on customers and free/paid support; community tool contributions, and lots more.

The folks behind FusionReactor/FusionDebug are really great. They're very open to communications and always welcome (and act effectively on) feedback. I've been a long-time fan, so much that I work with them directly on doing training and consulting based on their products (while remaining an independent consultant.) It's their very openness and willingness to listen to feedback that brought me to working with them more and more closely over the years. I'm glad to help others take notice of the company and their great products.

FusionDebug 2.02 update available (in beta)

Those on CF8 now have an interactive step debugger, but for those on CF 6 or 7, or for those who cannot use RDS (on which the CF8 debugger is based), you should consider FusionDebug. There's a new update in the works, 2.0.2, now available in beta.

Among the features now available in the beta are new abilities:

  • to run to a particular line, from a breakpoint
  • to break when your program throws an exception
  • to work with custom file extensions (such as if you configure CF to run .htm or other file extensions *)

It also contains some fixes to previous issues. Also, see the README.txt in the download for known issues regarding new features.

They indicate that some functionality is still under heavy development and has not been fully included in this release. Feedback is appreciated to help make FD work better for you.

This release is just one a series of updates planned for the next 12 months. Of course it's encouraging to see continuing development of FusionDebug.

If you're wondering why a third party debugger would still make sense in the face of CF8's inclusion of one (other than the point I made at the outset above), see this blog entry I did in the past on that subject. For an online presentation about both debuggers (CF8's, which is only for CF8, and FusionDebug, which is for 6, 7, and 8), see the recording of my CF Meetup talk from December 2007.

Finally, for more on FusionDebug in general, see fusiondebug.com. You can also see past blog entries I've done, listed at the bottom of this entry.

*BTW, If you're wondering how to configure CF to run files with other extensions (than .cfm, .cfml, etc.), as mentioned above, here's a reference on Adobe.com. Though it's in an article on modifying the internal web server, the technique applies just as well if using external we servers, too, like IIS and Apache. You can find more on the extra steps to make that happen in at least one blog entry that explains how to do both steps.

Discount Code Available for FusionReactor, FusionDebug

Ah, August, when thoughts turn to vacations...and end of summer sale-a-thons. :-) I want to share that the fine folks at Intergral, makers of FusionReactor and FusionDebug, are offering a 10% discount coupon code, CFCOMMUNITY, good through the end of this September.

I've written about both these tools quite a lot in the past, if you're interested in exploring my respective blog entry categories: FusionReactor and FusionDebug.

I've also written about them in the FusionAuthority Quarterly Update, if you happen to get that great magazine. Most recently I did, "FusionReactor: ColdFusion Server HealthCare (and What's New in Version 3)", in Volume ii Issue iv (Summer 2008), and a couple of years ago I did, "FusionDebug Explained: Interactive Step Debugging for CFML", in Volume i Issue ii (Fall 2006).

I'll also have news coming up about more cool stuff coming from the folks, including FusionAnalytics and FusionReactor Enterprise Monitor, both discussed in the FusionReactor Labs, as well as the recently released AIR Enterprise Dashboard, recently promoted from the labs to an available product.

Until then, go enjoy the discount code to get these great products, which help you with debugging and monitoring whether you run on CF 6, 7, or 8. (For more on why they still matter even with CF 8, see this previous entry.)

My two articles in the latest FAQU

I'm keeping my streak alive of having written in each of the first 5 editions of the FusionAuthority Quarterly Update. In the latest "CF 8 Special Edition"", where I have two articles:

  • The ColdFusion 8 Debugger Explained: Interactive Step Debugging for ColdFusion 8
  • Tipical Charlie: Hidden Gems in ColdFusion 8

The first is a 10-page overview of getting started with the CF 8 Debugger. It follows on to the earlier article I'd done in the Fall 2006 edition on FusionDebug. As both articles show, I'm a fan of both tools, and I just want to help people become aware of both.

The second article continues my tips column that's at the end of each issue, and this is a quick one-page summary of some of the best of the hidden gems I've identified in my past user group talks of the same name.

Note that the articles are not available online so you must get the print edition to read them (though I've been in talks with Judith and Michael for some time to get at least just the tips columns online, perhaps only some time after publication. We shall see.)

I'm offering FusionReactor and Fusiondebug training, online

Interested in learning more about FusionReactor and FusionDebug? I'm teaching inexpensive half-day classes (of my own design) every few weeks for Intergral, the makers of the tools. They organize the dates, take the registration and payment, and provide the GotoMeeting account that we use to present the training (over the web and phone). You can learn more about the training at their site.

Many know I'm also a big fan of the CF8 monitoring and debugging tools, but I've been talking about FD and FR for over a year. I've also written previously (since the release of CF8) on why there's still a place for all these kinds of tools. Perhaps the biggest point is that not everyone is ready to move right away to CF8, as good as it is. More important for some is that to monitor your production servers in CF8, you need CF8 Enterprise.

FD and FR work on all editions of ColdFusion 6, 7, and 8, and even offer some features not found in the built-in tools (though the reverse is true as well).

Here are the courses, which are 3 hours each for the full classes, and 1 hour for the free webinar.

FusionReactor FastTrack I - Introduction

The "FusionReactor FastTrack I - Introduction" class is more than just an introduction to the tool. It shares lots of tips and techniques for using the monitor to help solve real problems. More important, it shows many features that you might otherwise easily miss. Even experienced FusionReactor users would likely learn a lot.

FusionReactor FastTrack II - Advanced Techniques

The "FusionReactor FastTrack II - Advanced Techniques" class moves beyond learning how the tool works to how to use it to solve common ColdFusion performance and reliability challenges, including how to configure and leverage FusionReactor features to increase your server's performance, reliability and availability. It also covers how to access FusionReactor and its logs during and after critical periods, as well as common troubleshooting analysis approaches.

FusionDebug FastTrack I - Introduction

The "FusionDebug FastTrack I - Introduction" class introduces the tool, shows how easy it is to use, and demonstrates its advantages over traditional debugging techniques as well as tips and traps in using the tool. It includes debugging CFML code called from client-side applications like Flex and Ajax. In fact, someone interested in learning about the CF8 debugger could get a lot from the class (since they're so similar), though it's just focused on FusionDebug.

Free FusionDebug Webinar

The Free FusionDebug Webinar in an online seminar where you can learn about how to debug CFML with FusionDebug.

Step Debugging in CF 6/7/8 with the CF8 Debugger and FusionDebug

I wanted to share the availability of a recorded presentation I did a couple of months ago on "Step Debugging in CF 6/7/8 with the CF8 Debugger and FusionDebug". As the title indicates, I cover both the CF8 debugger and FusionDebug (for 6, 7, and 8).

This particular talk was recorded at a joint meeting of two Australian CFUGs in September, though I also presented the talk at CFUnited in June.

Anyway, if you're interested in either or both of these debuggers (or even if you're ambivalent about them), do check it out.

(Though the recording has been available online for some time, the host had left it marked as requiring a username/password. When someone pointed that out, we resolved the problem and that's why I'm pointing it out now.)

Get FusionDebug for free (through November), with purchase of FusionReactor Enterprise

Here's news that will interest those who may have become interested in interactive step debugging in CFML, since CF8 includes it. If you're not ready to move to CF8, you can get CFML debugging for free with CF7 (or 6 or 8), with FusionDebug, the commercial tool from Intergral which was the first to give us step debugging in CFMX.

It's just through November, but if you buy their sister product, FusionReactor (the Enterprise edition), you'll get a free copy of FusionDebug. For more, see:

http://www.fusion-reactor.com/fr/offer.cfm

You can learn more about FusionDebug from several blog entries I've done in the past (see the "related entries" area at the bottom of this entry), including one on why I don't think CF8 is a death knell for either FusionDebug or FusionReactor.

(So no, I don't think anyone should read this as a move of desperation on Intergral's part. Rather, it's natural that the release of CF8 will cause some to say, "well, I could wait for CF8", but then for many shops moving up to a new release isn't trivial. That's why I said above: this may be most compelling for those whose interest in CFML step debugging has been piqued, but they can't for some reason move to CF8, whether Enterprise, Standard, or Developer. And of course, there are times when even a developer edition doesn't help if you need to debug a central development or test server. See my past blog entries on pros and cons of debugging a shared server. There are also some differences between the two that may even keep some using FD on CF8. More on that in a future entry, perhaps.)

CF8 monitor doesn't run on CF8 Standard, or any 6 or 7. What to do?

I'm surprised to still see people lament when they learn that CF8's server monitor does not run on CF8 Standard, or that it doesn't run at all against CF 6 or 7. My surprise is that their comments often make no mention of being aware of alternatives. On one list, someone said they might even be willing to pay double CF Standard's price to get monitoring in Standard. They just didn't like paying 6 times more (for Enterprise).

Well here's the thing: you can indeed get CF server monitoring, whether added to CF8 or made available in CF 6 or 7, and for far less than even double the cost of CF Standard. Some of you know where I'm going, but in case it needs to be said...

Check out FusionReactor and SeeFusion, both tools that I've written about before (see the "related entries" links at the bottom of this entry.)

Both these tools not only run on 8 (any edition), but they run on 7 and 6 as well, which CF 8's monitor does not. Further, FusionReactor can monitor not just CF but also any J2EE servers or app (including LiveCycle Data Services, for instance), and SeeFusion has a sister product, SeeJava, that can do this as well.

I've been a huge fan of both tools for a couple of years. No, they're not identical to CF8's monitor, and CF 8's monitor has access to a lot of information that those tools don't (for now, though they could be modified to access it as well, via the Admin API if running on CF8 Enterprise). But even until then there are features each of them has that CF's monitor doesn't, and vice versa.

I know some instead want Adobe to offer the monitor somehow to those on Standard, whether at some price or in some new edition. The chances of that seem seem pretty slim for now, though certainly interested folks should make their concern known. And certainly, it's worth noting that one can run the CF8 monitor on the Developer edition.

But some rightly point out that they want CF server monitoring in production and they can't use Adobe's on CF8 standard (or on 6 or 7). (And they're asking for more than just monitors to tell if the server's up or down, etc. Sure there are plenty of tools to tell that, but they want real insight into the processing of requests, threads, queries and more, which only these tools can do.)

I just want to make sure those folks know there are indeed good, professionally managed alternatives to get that on CF8 standard and earlier versions of CF, and those options are at low costs and come with free trials. (Same goes for step debugging. While the new debugger in CF8 works only with 8, FusionDebug, from the same company that makes FusionReactor, works in 6, 7, and 8.)

As I wrote before, I don't feel that the availability of the CF8 monitor (or debugger) diminishes the value of the third party tools for those on CF8. Keep an eye on the monitoring category here in my blog as I'll continue to write more about all 3 monitors in the future. They each have their strengths and their place.

New FusionReactor (and FusionDebug) Support resources

If you're a user of (or are considering using) FusionDebug or FusionReactor, two tools I've written about before, I want to point out that they have some new support resources.

Mailing Lists

First, there are now mailing lists (Google Groups) for each. This is something I pressed for since last year, and thankfully now they're enabled and there are good discussions already taking place.

http://groups.google.com/group/fusionreactor

http://groups.google.com/group/fusiondebug

Knowledgebase, Searchable and Browsable

There is also a new Knowledge Base where they've put many tech notes and answers to questions (other than those already in the FAQs). You can search it via the main support page, indicating which product and type of docs to search (it also searches the Google groups as well).

Finally, I'll share a little hidden gem. If you'd rather not search the KB, you can instead browse it. Here's a URL for each product:

Browse FusionReactor KB articles

Browse FusionDebug KB articles

I should note that they don't currently offer these links on the site, and in fact they may change in the future (since they're not published yet), but I don't think they'll mind me sharing it for now.

They're presented in numerical order, which isn't really chronological order, but clearly mixed in are discussions relevant to both old and new releases of the products, to be sure to note that indicator in the info at the bottom of each technote, if you have any question. There's some good stuff in there, and I'll be mining it for tips to share (here or on the mailing lists).

CF8 Debugger and Monitor: What's it mean for FusionDebug, FusionReactor, and SeeFusion?

So by now most have heard that Adobe announced at cf.Objective() that Scorpio (now CF8) would include an interactive step debugger. And many may know I've long been a fan of FusionDebug, having written quite a bit about it, as well as the monitoring tools, Integral's FusionReactor and Webapper's SeeFusion.

A natural question on the minds of many is whether Adobe's entry into these markets is a death knell for these vendors? I don't think so, at all. Here are just a few reasons why. I'm sure I (and others) will think of more. Comments are indeed welcome.

  1. Are you running 6, 7, or 8? - First of all, it's vital to keep in mind that the new CF 8 tools work only with CF 8. If you're still on CFMX 6 or 7, then you can't use the CF 8 debugger or monitor. I've heard some who thought that the new CF 8 Debugger might work worth the earlier releases. It does not. Of course, it's indeed another strong incentive to move up to CF 8, and there are more and more reasons being released all the time. But until you do, you can't benefit from them. Both SeeFusion and FusionReactor/FusionDebug work with CF 6, 7, and 8 (and the monitor tools also work with BlueDragon/J2EE and should work with Railo, Smith, and others.)

  2. Do you have more than just CF to monitor? - Indeed, another point in the favor of the third-party monitoring tools is that more than just CFML servers, they indeed work with any Java server. And that's not just tools like Tomcat, JBoss, WebLogic, and WebSphere, but also includes other Adobe-specific tools that are also J2EE server-based, like Flex/LiveCycle Data Services, the older Flex 1.5, and more, and of course the Adobe J2EE server, JRun. FusionReactor's installer and "add server" feature will both recognize any of these automatically so that the one FusionReactor Enterprise Dashboard monitor can watch all such services, while SeeFusion offers a separate SeeJava product for watching such J2EE servers.

  3. Does one size really fit all? - Another point to keep in mind is that each of the tools still do something that the other does not. I've said the same when contrasting SeeFusion and FusionReactor, and I can now say the same of them and the new CF 8 tools. Each can have their place in a developer/administrator's toolbelt. I could even argue that one could/should have them all, for whatever benefit each offers. The prices are low enough that it's not much of an issue.

  4. CF 8 monitor API is public - With regard to the new monitor in CF8, Adobe has made it clear that it's just a particular (albeit very nice) Flex interface on top of an underlying API of admin CFCs that anyone can call. Naturally, this means that the other monitor tools could easily add whatever feature they (or users) may think must be added. (The FusionReactor folks will announce plans at CFUnited for integrating CF8 monitoring features into FusionReactor, so we should see some benefits and cooperation taking place.) Again, though, perhaps the reasons above may diminish the significance of needing to "keep up". Perhaps they can peacefully coexist.

  5. If a tree falls in Times Square, it will make a sound - One can argue that a benefit of the new CF 8 monitor and debugger tools is that they will raise the profile of--and interest in the CF community for--such tools. And of course competition also breeds innovation. I think we already saw that between the two monitor tools themselves (and indeed between CF and BD, and others). In fact, still another outgrowth of this will be an increase in the opportunities for skilled folks (like those at these companies) to help CF developers make the most of the mass of information that these tools all provide. That will serve both companies well, since they each do training and consulting.

  6. The past is prologue - Further to the last point, let's keep in mind that we can only compare the new CF 8 tools to the current versions of their third-party counterparts. Both Intergral and Webapper have told me (and others) that they've known these things were coming and have been considering enhancements for quite some time. The companies will be in a great position to watch and see what things people like (or don't like) about the CF 8 tools. I mentioned Intergral's plans above, and the SeeFusion folks are talking about extending their product to provide actual problem-solving intelligence, beyond just exposing metrics. Of course, we can expect Adobe will continue to evolve the tools as well (both before the final release and in later ones).

  7. An abundance of riches - Finally, consider how fortunate we are in the ColdFusion community to have third party vendors who take risks to enhance the CF toolset and bring new and exciting professional tools to market--even before Adobe! We should support them if indeed they provide solutions to our problems. To the degree that we do (and they do), they will continue to survive.

Clearly I'm high on the entire CF tools market and think there's a place for all the companies and their tools.

Even so, there are some things that the CF8 monitor and debugger do add that are not currently in the other tools, and there's no doubt that for many, if they're moving to CF8 they may be happy with what they get built into those tools.

But it's not a zero-sum game with only one possible winner. Even if only a small fraction of the market remains interested in and using the 3rd party tools, whether because using the older CF releases, or for the features they offer, that's still a decent market for the toolmakers. And as they (and the market) evolve, the third party tools should continue to gain new fans.

I'll be writing (and speaking) quite a bit about both of the new CF 8 tools, as well as those from the other vendors, and how they all compare now and into the future.

It's just more testimony of why it's now really a great time to be involved in CFML.

Corrected version of my Sept CFDJ article available online

While it may seem old news, I want to point out that if you've received the print version of the September edition of the CFDJ (which came out in October), you may have seen my article on "FusionDebug Tips, Tricks, and Traps". Due to some glitches, the version printed was not the final, edited version I had offered.

I was able to arrange to get the corrected article posted in the electronic version of the article, free for you to read, on the CFDJ site. If you're interested in the topic and/or the article, please do check it out online.

Switching among source windows in Eclipse/CFEclipse

Those who know me well know I'm a big fan of keyboard shortcuts. I could give a whole session on them (and perhaps someday will), so I want to share one that I learned and which is useful if using Eclipse, CFEclipse, or FusionDebug. While many know ctrl-tab will swap among windows in many programs, that doesn't work in Eclipse. Try ctrl-F6 instead, which will show a drop down list of open files and let you scroll forward through them. To go backwards in the list, use Shift-ctrl-f6. Cheers.

PS For other keyboard shortcuts I've shared, going beyond things related to CF, check out the category/tag on the topic at my other (older) blog, tipicalcharlie.com: http://www.tipicalcharlie.com/tags/?/keyboard%2Bshortcuts (domain gone, page recovered from Archive.org)

PPS The entry above on ctrl-f6 is just one more point to be made about looking at Eclipse as a whole when using either CFE or FD. Don't just focus on what those plug-ins add, but rather also on the built-in features of the Eclipse interface which may help you with day-to-day functionality.

Update: Since writing this in 2006, note the several comments below where people offered still more. And of course since then CFBuilder has come out, and with its built-in Aptana offers still more of them. Indeed, in a talk I did on hidden gems, I list other shortcuts for switching windows.

My latest 2 CFDJ articles

Check out the 2 latest articles I've done in the CFDJ (you can read them online for free): one is on FusionDebug Tips and tricks, and the latest is on using the nifty (free) LogParser tool with CF.

Sys-con has been working hard to catch up on late delivery of the magazine, as well as to bolster the content with topics that will appeal to a wider CFML audience. I'm glad to be a part of that effort after being quite absent myself for must of the past 3 years. (See the more than 50 other CFDJ articles I've done in the past 7 years.)

On my European swing for 2 weeks of speaking at CFUGs, classes, and Conference

As I alluded to a couple of weeks ago, I'm now in the midst of a two week swing through Europe speaking at user groups and the CFDevCon conference, as well as teaching a couple of day-long classes. See the links below for more info. But here's where I'll be. If you're in the area, please come by and say hello:

Mon Oct 30, Zurich, CF User Group
Thurs Nov 2, Munich, CF User Group
Fri Nov 3, Munich, Day-long class on FusionDebug and FusionReactor
Mon Nov 6, Rome, Rome Adobe User Group
Thurs Nov 9, London, CFDevCon
Fri Nov 10, London, Day-long class on FusionDebug and FusionReactor

More info:

"Interested in a day of training on FusionDebug and FusionReactor? Join me in Europe"
http://carehart.org/blog/client/index.cfm/2006/10/11/presenting_all_day_fd_fr_class_in_europe

"Considering the London CF DevCon? It just got better: Ben Forta will be speaking"
http://carehart.org/blog/client/index.cfm/2006/10/16/ben_at_devcon

"More benefits for those who come to my FusionDebug/FusionReactor class the day after London CFDevCon"
http://carehart.org/blog/client/index.cfm/2006/10/18/london_training_offer

More benefits for those who come to my FusionDebug/FusionReactor class the day after London CFDevCon

If you've been on the fence about attending the day-long class I'm doing (on FusionDebug and FusionReactor), the day after the CFDevCon in London (and Munich), here's good news and even more reason it's a great value.

First, while the original offer was that attendees would get a free license for FusionDebug for attending (basically making the day of training free), some have asked if they could have FusionReactor instead. Since they're about the same price, Intergral has agreed that you can have a license to FusionReactor instead, if you'd like. Many thanks to them! This applies to both the Munich and London classes, and you can choose which you will have on the day.

Second, regarding the London class specifically, if you've not yet registered for the DevCon itself the day before, here's better news: those who sign up now will get a free ticket to the Devcon as well. (Sorry, no refund available if you've already purchased your Devcon ticket.)

Again, the thanks for this go to Intergral for their generous offers of these bonuses.

That said, if you have any questions or concerns about these two offers, please direct them to David Tattersall. It's their offer, not mine. I'm just creating and presenting the class. They're handling all the organizational details. :-)

Interested in a day of training on FusionDebug and FusionReactor? Join me in Europe

Hey folks, if any of you will be going to the http://www.cfdevcon.com/ in London on Thurs, Nov 9 (where I and several other folks will be speaking on various CF topics), I want to point out an additional training opportunity.

The next day (Friday), I'll be giving an all-day training session on FusionDebug and FusionReactor, sponsored by the fine folks at Intergral, makers of the tools. I'll spend the day introducing the tools, sharing tips and tricks, and more. For more details, and to signup, see http://www.fusion-reactor.com/fastTrack.html.

The price is £249,00 (or about $312), but note this:

Each attendee gets a free copy of FusionDebug (full license), which lists at $299, so the training is really low-cost.

And for anyone near Germany, note that we'll be doing the same class in Munich on Nov 3, also detailed on the page above.

Please share the word with anyone you know who may be interested in these two tools. Those who know me know that I enjoy opening the fire-hose of information, so I hope you'd be sure to find it good value. :-)

We may well bring the classes to the US (and elsewhere) next, depending on how things go. So far, we have several signups and have only just started announcing it.

I'll be speaking tonight (Tues) and Thursday night in CFUG Breeze meetings on FusionDebug

For those who may have missed previous chances to see my CFUG presentation on FusionDebug, I'll be giving it 2 more times this week, and both are open for you to join in via Breeze.

(While I've arranged to give away 2 copies of the product at each meeting, I don't know if the groups are setup to enable remote attendees to take part in the draw. Please respect their approach and enjoy the chance they're offering to have remote participants. Otherwise, if you missed the news, note the new reduced prices and Community edition available through October as I mentioned previously.)

Here are the details on each of the meetings.

Mid-Michigan CFUG Tonight, on FusionDebug

The first is at the Mid-Michigan CFUG, tonight (Tuesday, Oct 10) at 7pm EST. The Breeze meeting URL is:

http://adobechats.adobe.acrobat.com/r95948645/

ColdFusion Meetup Thursday Night, on FusionDebug

The second is at Steven Erat's ColdFusion meetup online CFUG, Thursday (Oct 12) at 6pm EST (note that his early announcements mistakenly said 7pm). He asks that you RSVP here:

http://coldfusion.meetup.com/17/calendar/5130559/

where you'll also find additional details about the meeting and the group. The URL for the meeting itself will be:

http://stevenerat.breezecentral.com/fusiondebug12102006/

He has over 82 RSVPs so far, so it will be a busy group. If you want a quieter environment to join in online, I'm sure the number of folks online for the Mid-Michigan meeting will be much smaller. I'm giving the exact same presentation to both.

Watching the recordings

I'm sure both groups will post URLs for watching the recordings when they're available, and I'll try to add that here (as a comment) as well as on my carehart.org/ugtv/ list of recorded presentations from CFUGs all over the world.

(I do notice that the Mid-Michigan group's breeze meeting URL looks a lot like the URL for most recorded presos, so until we get it posted, you may just want to try changing the "r" to a "p".)

FusionDebug Part 4 - Tips and Traps

While the first 3 entries in my FusionDebug series of posts have been making the case for using the tool, the fact is that like any tool there are tips and traps that you'll do well to note. In this entry, I share several of these from my experience. First I'll share a few tips on using the tool, then a few on setup of the tool.

Tips and traps on Using the Tool

Favor "Step Over" versus "Step Into", when on tags/functions that don't open files

As you are at a breakpoint about to step to a new line of code, I'll recommend that you use "step over" in favor of "step into". The latter should be used only on tags like CFINCLUDE, CFINVOKE, CFC method calls, and other tags/statements that would open a new file. It allows you to follow the flow of control into that new file (opening it, and stopping at the first line of code within that file.)

Why would I recommend you do not use it on other tags and statements? Well, recall that CFML is built on Java underneath. I've found that sometimes "step into" will cause the Eclipse debugger to take a longer time while stepping through the underlying Java of a given tag or statement. Also, some CFML tags are built in CFML.

FusionDebug doesn't show you the underlying lines being stepped over in such Java or CFML files (it's configured not to by default), but the execution will take longer than if you had used "Step Over". I've found the problem happen with tags like CFDIRECTORY and CFDUMP as well as createobject() and findnocase(). When it happens, things will just seem to be hung, but be patient.

I'm stepping, but nothing happening

Related to the above, if you are doing stepping and things seem hung, for whatever reason, with nothing seeming to happen, watch for the term "Stepping" in the Stack Trace pane (at top right). That just means that it's working, and taking some time to do whatever you've asked. Simply be patient. Control should come back.

"I don't see the 'current instruction pointer' moving while stepping"

This is quite a gotcha, which threw off myself and the FusionDebug guys. In one circumstance, as I hit the "step over" and "step into" buttons, nothing seemed to be happening. The "current instruction pointer" wasn't changing. I thought it wasn't stepping at all.

I looked at the "stack trace" pane, and rather than show "stepping", it did indeed show that the execution was proceeding from one line to the next as I'd hit the buttons.

It turned out to be a problem related to my having opened the file using the file system, rather than via an Eclipse "Project". The docs explain how to open files "properly". Forewarned is forearmed.

Be careful holding breakpoints within CFLOCK or CFTRANSACTION tags for too long

You may not think of or notice this, but if you hold a breakpoint or do stepping within tags like CFLOCK or CFTRANSACTION, you could have a negative impact on other users in your environment.

In the case of CFLOCK, you could keep someone else (who's trying to obtain that lock) from being able to get that lock.

In the case of CFTRANSACTION, you could keep someone (even outside of ColdFusion) from being able to read or update the database you are updating within the CFTRANSACTION. The degree of impact will be influenced by the ISOLATION attribute you use (or its default) in the CFTRANSACTION.

If a runtime error occurs, FD will also seem to stop

Something to keep in mind is that if you find FusionDebug just seem to stop debugging, the problem may be that you've hit a runtime (or even compile time) error in the code, which will cause CF to send an error screen to the browser but will not send anything to the debugging stream that FusionDebug is watching. As such, FusionDebug will just lose its connection to the running program.

If debugging just stops, CFMX admin's "request timeout" may be killing the page

It's easy to forget that when you're in the midst of a debugging session, you're causing the page to take likely several seconds (perhaps even minutes) to run to completion. Recall as well that CFMX has an admin setting called "Timeout Requests after x seconds" which if enabled will cause ColdFusion to detect and halt a page if it takes longer than that time to execute.

Naturally, if it is enabled and you debug a page for longer than that duration, ColdFusion will intercept the request and send an error to the browser. In that regard, this is similar to the previous issue.

Something to noticed, however, is that this "timeout requests" setting is not enabled by default in CFMX 6.1, while it is enabled by default in CFMX 7. As such, this problem of timeouts will more likely happen in CFMX 7, though again either can be configured to support it. Just be aware.

You could also override this timeout setting in a given page by using the CFSETTING tag with its RequestTimeout attribute. (You can of course also affect an an entire application by placing that in the application.cfm.)

If breakpoints fail to fire as expected

If you have any other sort of problems with breakpoints firing, note that the FusionDebug folks have written a tech support article on the topic.

Tips and Traps on Setup

Beware of the impact of debugging on shared servers

Though you certainly can turn on debugging against a central shared server (such as test, staging, or even production), you should be aware of the potential impact.

As has been discussed before, when any user requests a page that's being debugged and their execution would hit a breakpoint, the page will appear to them to be hung until the debugging developer steps through the code to completion.

Beware of the impact of the JVM config changes

As discussed in the FusionDebug User Guide, in the section on setting up tool, one of the changes you make in the jvm.config file is to remove the UseParallelGC option. That change in the garbage collection process could have an impact on the running of the server.

This is one more reason to think twice about running the tool on production.

Understanding the "ports"

When you configure that jvm.config entry, another modification is to name the port that you want the JVM debugging feature to broadcast on. Of course, you want to point to a free port when you name that (you can use "telnet servername portnumber" at the command line to determine if a port is free).

But another point to note is that this port is NOT something you then use when you request pages, nor should it be specified as the value of your web server. Instead, this port number is then used when setting up the FusionDebug interface within Eclipse. All this is well explained in the User Guide.

Using FusionReactor? (Intergral's CF monitor tool)

If you are using FusionReactor, which is Intergral's CF monitoring tool, be sure to disable its "crash protection" feature, while doing debugging. The two features are not compatible.

Summary

Those are a few gotchas. I hope they help you. If you hit others, again, I recommend you check out the FusionDebug web site. They have the docs, faqs, articles, Captivate videos, and more. Most important, they offer free support at support@fusion-reactor.com.

I've just been in the "CF Hot Seat" on the ColdFusion Weekly Podcast. Come listen.

Here's fun news. This week I was the guest in the "CF Hot Seat" on the ColdFusion Weekly Podcast. It was a real treat, especially being the show's 25th ("anniversary") episode. As another treat, those who haven't listened to the show from the beginning will learn during the interview just who was the very first voice heard on the very first episode of the podcast. (If you can't wait, give a listen to the first show.)

In the interview, the focus is FusionDebug (yes, my topic of choice in recent weeks). It's a 30 minute interview, as we had planned. Matt and Pete were great, and I really enjoyed the opportunity. I certainly look forward to it again, and was tickled to hear them mention on the show (after the interview) that they'd be open to having me back in a couple of possible ways.

The interview takes place from about minute 26, though I recommend you listen to the entire podcast. I'm a huge fan of all the CF-focused podcasts, as I mentioned them on the show--and again, Mark Kruger, where's the "muse"?! :-) Anyway, I hope folks are listening to the various CF-based podcasts. I'll share some more thoughts about them and about listening to podcasts in general in a future note.

I have to point out that sadly, during my interview, there's a very unfortunate problem of a "hiccuping" sound that lasts for about 20 seconds on an interval of about every minute for a few minutes, a couple times during the show. I'm working with the guys to see if we can correct that, and I've even pulled in the able assistance of Bruce Williams, host of the "Building the Pod" show about Adobe Audition. He's not had any solution yet. If anyone else is open to the challenge, here's a small clip, and you can hear the problem after 10 seconds. I'd welcome any thoughts.

Of course, I also welcome feedback on the interview itself.

FusionDebug - Great news: discounted pricing and community edition announced today

Here's great news for FusionDebug fans--and those who've complained about the price. Check news of discounted pricing (starting at $239) and even a new community (non-commercial) edition at $99! Awesome news. The guys from Intergral are great at listening to customers! :-)

See the details at: http://www.fusion-reactor.com/fusiondebug/buy.html

Note that (according to the footnotes on the page) that the special pricing and community edition offer end on Oct 31. Get it while it's hot!

And to learn more about FusionDebug, see my previous entries on FusionDebug.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.005. (Want to validate the html in this page?)

Carehart Logo

Managed Hosting Services provided by
Managed Dedicated Hosting