[Looking for Charlie's main web site?]

Off to the UK for a few days next week to do some on-site training and consulting

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
I don't generally chronicle all my travels, but I thought I'd throw out there that I'll be in the UK (suburban London) next week. I'll be teaching a couple of on-site classes on FusionDebug and FusionReactor for some Intergral clients, as well as doing a day of consulting (CF troubleshooting) with one of them.

Sadly, it's really an in and out visit, so not much time for sight-seeing or even socializing. (Well, not too sad, as it means I spending as little time as needed away from my lovely wife of seven years, and love of my life, Kim.)

Just wanted to explain the visit, in case any of my friends in London might hear I am (or was) there and wonder why I couldn't make any social calls. I won't even have a car.

"Beware the troubles"

I'm sure some will wonder if now's a good time to be going over there (regarding the recent terrorist threats). Hey, at least I'm just visiting (and in the suburbs). My heart goes out to those who have to live with that threat daily.

Mark Drew mentioned to me at CFUnited that his office was very near that first failed bomb. Yikes.

I remember that fear living in DC after 9/11. It's a very uneasy tension, balancing "getting on with life" with a very real daily threat. Fortunately, these things do pass (as the real "troubles" did in the UK a generation ago).

Let's just all continue to pray that things settle down over there, for their sake. As for me, my faith is in God's Providence and Will, as He directs my steps.

Still more CFEclipse Resources

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
I've found yet a few more CFEclipse resources (adding to those I've talked about) that may interest some. Rather than just add them as comments to that entry, I figured I'd create a new entry.

CFEclipse Wiki

First and foremost, I wonder if you, like me, may miss the many valuable resources in the CFEclipse wiki, based at the cfeclipse.org site. The thing is, it's not mentioned very prominently there, even on the support page (something I've just pinged Mark about, so perhaps that will change by the time you read this). It's only mentioned on the support page within the paragraph describing trac (which is primarily for project mgt and bug tracking).

On the wiki, you'll find several articles on installation, plugins, configuration (including shortcuts), features, troubleshooting, and more.

Old Spikefu CFEclipse Resources

On a related subject, you may come across links to a reference at www.spike.org.uk/cfeclipse/space/, setup by Spike Milligan, formerly of the CFE team, whose SpikeFu site had quite a few CFE resources. Requests for these now fail, but for any who like to see such historical info, I've found it archived at the great web.archive.org site at http://web.archive.org/web/20060621220649/www.spike.org.uk/cfeclipse/space/.

Similarly, you can find the archive of Spike's blog with many historical references to the evolution of CFEclipse.

Ryan Stewart's Getting Started Guide

In early 2006, Ryan Stewart put together a guide to "Getting Started With CFEclipse", available in both HTML and PDF.

Prismix CFEclipse Seminar Notes

Finally, I came across this page of notes that I'd not seen before. I don't think there's anything there that's not elsewhere, but just in case, here it is:

http://www.prismix.com/blog/resources/SeminarNotesCFEclipse/index.htm

Some More Resources for Getting Started with CFEclipse

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Late last year I did an entry on Resources for Getting Started with CFEclipse. Since then I've learned of a few more:

I found these while putting together yet another resource on CFE, which I'll be blogging about very soon. Yep, with all my work using FusionDebug and the new CF8 debugger, I've gotten more and more comfortable using CFE.I want to help others who have taken a long time to make the move. :-)

Resources for getting into the Multiserver (multiple instance) implementation of CF

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
You may have heard of the new Multiserver deployment option that was introduced in CFMX 6.1, also known as "multiple instances". It can bring tremendous performance and reliability improvements, allowing you to segregate apps on a single server either by function, or reliability, and so on. It can also help you manage memory more effectively.

Since many people may only be considering the feature now (either only now moving to 6.1 or 7, or 8), I want to share some resources if you're new to it. (The question came up on a list, and I offered the info there, so thought I'd pass it along here.)

First, there are a couple of articles from that time 6.1 frame:

"Introducing Multiple Server Instances in ColdFusion MX 6.1", by Tim Buntel

"Using Multiple Instances with ColdFusion MX Enterprise 6.1" video (sadly, seems no longer available)

Now, CF7 did introduce the new Instance Manager within the Admin, and that (and instances in general) is covered in the CF manual:

Configuring and Administering ColdFusion MX (Chapter 7, "Using Multiple Server Instances")

Finally, there is also a new Adobe article as of CF7:

Multiple Server Instances using ColdFusion MX 7 Enterprise Edition

(Update: There's also now a CF8 version of that: Multiple server instances using Adobe® ColdFusion® 8 Enterprise Edition. The technical content seems identical, but it appears to have had considerable editorial updating.)

There are certainly other articles folks have done in the CFDJ or at CommunityMX.com, but these should get you started.

Even though it's old news to some, it does seem that like many things, use of instances is something that may have been missed by folks. I've been contemplating a new user group presentation on the topic. Nothing new for CF8, but it seems people are considering things now that they may have ignored when 6, 6.1, or 7 came out (which is why I did my daylong class at CFUnited on what was new in 6 and 7 that folks may have missed).

One last point, if those don't make it: if you're running on Windows, don't try to create an instance with a JVM heap greater than about 1.3 GB. Though Windows should allow 2GB per app, this is just a number many found that beyond which CF won't start. Hope that all helps.

CF8 Admin Changes: A compendium of new/changed features since 7.02

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.

Are you aware of all the changes that have been made in the CF Admin as of CF8? You may have seen mentions of little changes in CF8 (indeed, I've done a full hour user group talk on hidden gems), and while I mention some changes in the CF8 Admin (as I or others have noticed them), I've not seen any definitive list (from Adobe or the community) of all the changes (small and large) that might have occurred in the CF Admin interface. I figured I'd take up that challenge.

I've gone through and compared the CF Admin between 7.02 admin 8, and found changes that reflect:

  • new major features you've probably heard about (whether to enable "per app settings"; limits on the number of cfthread threads; options to enable/control the new interactive step debugger; support of the new Server monitor; support of per-user access to the Admin and RDS)
  • new minor features you may have missed (options to "disable CFC type check" and "disable access to internal CF java components"; options to limit the number of simultaneous requests from Flash Remoting and web services clients and CFC methods called from a URL; options to set request queue timeouts and set jrun request limits; new options to control mail server authentication; new db drivers; new option to log activity on enterprise databases; new option to perform a validation query when a connection from the pool is first used/reused; new ajax debugger window; ability to pause a scheduled task; 3 new flex-based gateways; minor additions in CAR file creation)
  • realignment of related settings (request tuning settings)
  • renaming of various pages and settings

Here are all the changes I could find, discussed per page:

A. Server Settings Section

Settings Page

  • "Maximum number of simultaneous requests", "Maximum number of report threads", moved to new Request Tuning Page
  • "Maximum size of post data" moved to bottom of this same page
  • New "Enable Per App Settings", "Disable CFC Type Check", "Disable access to internal ColdFusion Java components", and "Watch configuration files for changes" (latter for WebSphere ND)

New Request Tuning Page

  • (Enterprise only) Besides holding the "Maximum number of simultaneous requests" setting (renamed here in CF8 as "Template" requests) moved from the old Settings page, this page now permits setting limits on number of simultaneous requests from flash remoting and web service clients, as well as CFC function requests (not calls to CFC methods from CFML but those made via a URL, such as from a browser or Ajax client, etc, when not using ?wsdl)
  • Besides holding the "Maximum number of simultaneous report threads" setting (renamed here in CF8 to add "simultaneous") moved from the old Settings page, this page also permits setting limits on number of simultaneous CFTHREAD threads
  • (Enterprise only) Page adds 2 new "Queue Timeout" settings
  • (Enterprise only) Page adds 2 new "JRun Master Request" limits

Mail Page

  • New Username and password fields to hold SMTP server authentication info (previously, had to know how to add it to the mail server name using username@password:servername in the mail server field). Use of password field offers protection of password from someone watching over your shoulder.
  • New "Connection Timeout" and "Enable SSL Socket connections to mail server" and "Enable TLS connection to mail server" options, each permitting greater security and control over authentication to SMTP servers (particularly Google mail servers)

B. Data & Services Section

Data Sources Page

  • New driver types: "Apache Derby Client", "Apache Derby Embedded", to support the newly available Apache Derby database, and "MySQL 4/5" (in addition to existing MySQL 3) and "PostgreSQL"
  • In "Advanced Settings", new "Log Activity" option (to log database activity to DB) for Enterprise drivers (SQL Server, Oracle, Informix, Sybase, and DB2).
  • In "Advanced Settings", new "Validation Query" option (called when a connection from the pool is reused), available for use with all driver types

Verity K2 Server Page

In "Advanced Settings", new option to enter K2 Admin Username and Password.

C. Debugging & Logging Section

Debugging Output Page

  • Page name changed from just "Debugging Settings" (due to addition of new "Debugger Settings" page listed below).
  • New "Enable AJAX Debug Log Window" option, which allows display of the AJAX debug log window when the cfdebug flag is passed in the URL (also relies on IP address settings to control who sees this)
  • "Enable Debugging" option renamed to "Enable Request Debugging Output"

New Debugger Settings Page

Enable, configure, and control interactive step debugger in Eclipse.

Scheduled Tasks Page

New option to pause a given scheduled task (new button in list of buttons to left of each scheduled task)

Systems Probes Page

Field for "Notifications Sent From" renamed to simply "E-mail".

Code Analyzer Page

Changed to list CF8 tags and functions in "Advanced Options" page.

D. New Server Monitoring Section

(Enterprise only) Offers links to the new Server Monitor and Multiserver Monitor.

E. Event Gateways Section (used to be Enterprise-only)

Gateway Types Page

New Flex-based gateways: "DataManagement", "DataServicesMessaging", "FMS"

F. Security Section

Administrator Page (renamed from "CF Admin Password" page)

(Enterprise ony) Offers new interface to use either a single Admin password (as before), or separate username/password (per authorized admin user, as enabled in new "User Manager" page listed below), or no password required at all

RDS Page (renamed from "RDS Password" page)

(Enterprise only) Offers new interface to use either a single RDS password (as before), or separate username/password (per authorized RDS user, as enabled in new "User Manager" page listed below), or no password required at all

Security Sandbox/Resource Security Page

"CF Tags" and "CF Functions" tabs for adding/editing a sandbox have been changed to list CF8 tags and functions.

New User Manager Page

(Enterprise only) Enables adding users who should be given access to either RDS, CF Admin, or Admin API functionality.

G. (Enterprise only) Packaging & Deployment Section

ColdFusion Archives Page

When adding/editing an archive, the popup window that is shown offers several sections, and the following changes have been observed:
  • Server Settings: "Locking" section has been removed, while "Watcher Settings", "Server Monitor Settings", and "System Probes" have been added
  • New "Web Services" settings page, with provided "pre-restore" and "post-restore" lists

(Enterprise only) J2EE Archives Page

When adding/editing an archive, there is a new "Previous Serial Number (if upgrade)" option.

Where to learn more

To find out more about these changes, see the online help available in the CF Admin, available on each admin page.

Or see the ColdFusion documentation manual, "Administering and Configuring ColdFusion 8", available at CF docs page.

I realize that some reading this will be moving from CF 6, 6.1, 7, or 7.01. I'm afraid I can't detail here all the changes between those releases. I have, however, got a day-long class I offered at CFUnited on "New in CFMX 6/7: What you may have missed", where I do outline changes in each of those releases (and intervening updaters). If you're interested in taking that class, drop me a note or leave a comment here. I am thinking of offering it as an online class (and plan to do the same regarding all changes in CF8--outside of the Admin). Hope all this helps others.

Ever tried the SMS client simulator in CF7 and above? If it fails to launch, here's why

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
If you never paid much attention to the hubbub about SMS gateways when they came out in CF7, you may have missed that there is an available SMS Test Server and even a client (phone) simulator for working with this feature, both built into CF7 (and 8). You can learn more about these at the URLs below.

But I want to pass on a tip about something that tripped me up when I first tried to "play with" the new phone simulator. I would launch the SMSClient.bat file (in the cfusionmx7/bin directory), and a DOS window would open (and stay open) but I'd never see the simulator.

I finally figured it out: you need to have started the SMS Test Server (done in the "Event Gateways">"Settings" page in the CF Admin).

I also just noticed that there are also a couple of log files created in the same directory as the bat file, which probably would have clued me in. (Even though I've now stopped the test server, I can't get the client to recreate the problem--it now always shows up. I'm sure a restart would solve it and the log may then have told me what to do, but I missed the log before, so I still think this info worth passing along.)

To learn more about the SMS client and server simulators in CF7 (and 8), see:

Kevin Schmidt's Dev Center article

The CF docs

CF 8 Hidden Gem: Incredible Info from the Server Monitor, with Zero Overhead

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
OK, I'm playing a little trick here, and it's the first time I've ever felt the need to do it in 5 years of blogging (or 10, depending on how you count it). Anyway, I don't have any new content here.

It's just that I just noticed that the traffic for my 2nd blog entry on server monitoring was much lower than the first, yet it was posted about the time--and is just as important, if not more so for most people, than the first. So I've used a different title here to try to catch your attention. Looks like it worked! :-)

Please do go read the other, if you have still not. And let me know what you think, if you did. I'd also like folks to confirm what I'm seeing, as it seems almost too good to be true.

What's in a title? Everything, it seems

I can't help but fear that the title I used, "CF 8 Hidden Gem: Using the Server Monitor even without "starting" any collection...yes, TANSTAAFL", just confused people. "What's he mean by a collection?" And "TANSTAAFL"?

Actually, I wanted to say "Using the Server Monitor even without 'starting monitoring'", but obviously that would have been confusing, too. Indeed, I allude to this in the entry, about how the feature called "start monitoring" can lead people to think that the monitor doesn't do anything until you at least enable that. Not true, and that was the point of the entry! There's some amazing stuff "with zero overhead".

(Perhaps I also lost people with my play on the acronym, TANSTAAFL ("there ain't no such thing as a free lunch"), where I was referring to how there IS a "free lunch" here. Serves me right for being tricky. Again, I was scrambling to come up with a title because of the "start monitoring" challenge.)

Don't miss the features--truly hidden gems!

Anyway, the point is that if you're interested in the new CF 8 Server Monitor, whether for production user or not, you really ought to check out what I pointed out. I do think you'll be amazed.

Drop your comments on it over there, please. Not here. Don't want to create any further confusion! In fact, I'll disable comments on this one (another first).

CF 8 Hidden Gem: Using the Server Monitor even without pressing "start" buttons...yes, "free lunch"

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
In my previous entry, I explained how different features of the CF8 monitor have different levels of overhead. I also pointed out that there was value even if you didn't enable any of the features at all. I can't stress that point enough. So yes, there "is" such a thing as a free lunch.

Some Cool Info: at ZERO COST

Even without pressing the buttons to start "monitoring", "profiling", or "memory tracking", you can see:

  • how many pages are having errors, and details on each
  • jvm memory used, and a detailed graph
  • template cache status (how many pages, and total size of the cache), graphed over time
  • query cache status (yep, the cached query count and total size)
  • and more

Big deal, I may hear some say. Well, it is a big deal. That template cache and query cache status info is gold, and something that many of us have long lamented to have. Talk about opening up the black box. And with no overhead.

But wait (to quote the old Ginzu knives commercials from the 80's), there's more! And I mean, seriously cool info--again at zero cost.

Some Amazing Info! Again, at ZERO COST

Even without enabling ANY of the three buttons, you'll still be able to see all this really cool new info:
  • active sessions (yes, a list of all sessions currently active, and if you click on each, the session variables and values currently assigned!)
  • application scope memory usage (yes, as above!)
  • server scope memory usage (yes, as above!)
  • and more

All I can say is "wow". That is just so cool to get that, for free.

Don't we need to enable "memory tracking"?

I'm sure some are asking, "Well, isn't that what the 'start memory tracking' would be about?" Apparently not!

The help page for the monitor (the ? at its top right) describes the memory tracker as reporting "the queries and sessions that have used the most memory... and profiling information on the largest variables on the Requests by Memory Usage report". I'm willing to do without those in exchange for the info above, most of the time.

Now, on the other hand, the ellipses in my quote above (the "...") refers to where it also said the memory tracker provides "the memory usage of all application and server scopes". Hmm. Well, I'm seeing that without enabling it. Or maybe it's referring to some other aspect of the reports. There are indeed many reports in the monitor which had no data if none of the "start" buttons were enabled.

So what, then is the "start monitoring"?

As for the "start monitoring", according to the help it provides info on "active requests, slowest requests, active sessions, cumulative server usage, highest hit counts, template cache status, request throttle data, requests that timed out, requests with errors, and server alerts." Again, I'm not so sure about that. I'm seeing a few of those without using that feature.

I'll leave it to you to read what the "start profiling" says it enables.

I do think an argument could be made that the "start monitoring" button probably may contribute to confusion. I'm sure some will try to convey what I've written and talk about what you can get from "the monitor", and some will assume it's tied to enabling that button, when clearly it isn't. Maybe it could be called something else. Probably too late for that.

Joy in Mudville

So if you hear someone say, "we won't use the monitor in production", slap them roundly on the cheek...I mean, point them to this blog entry (and the last one). Seriously, it's tragic if someone would miss out on the value of the monitor simply because of an overinflated sense of fear.

But do have them check for any comments below, too. Maybe someone will correct me. Maybe my setup is somehow unique, but I've run many tests without these other features on and observed in real time the display of all the above.(And I have not had the "start" features enabled since I installed the RC a week ago, though I did have them enabled in previous betas. I can't believe that's having an impact.)

Finally, I'll point out that even if you don't want to (or can't for some reason) use the Server Monitor interface, you can get all the same information by way of the Admin API, and a new servermonitoring.cfc. Ray Camden's done a blog entry on it. Indeed he makes a similar observation about how he was able to get some of the methods to return data even if the docs said that a particular monitor feature must be enabled.

Check it out for yourself, and feel free to report here your corrections, or your delight. Hope that's helpful.

CF Server Monitor: what's the impact on production? you may be surprised

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
The CF Enterprise Server monitor is more powerful than many may realize, yet naturally some are immediately concerned about its potential overhead, especially if they're considering running it in production. Things aren't quite as obvious as they may seem, or as many may assert.

Update: I've updated this entry now 5 years later, in 2012, to give a bit more context to what I said originally. No change in the message, just a little more info and perspective. (There's also no change in the impact of it, pro or con, in CF 9 or 10.)

First, it's indeed true that depending on what you enable, it *could* be very resource-intensive and could even bring down a server under load. But conversely it also can have ZERO impact--yes, even in production. I'll discuss that in my next entry.

But before that, I just want to take a moment and explain the key 3 features that control what impact, if any, it will have.

Note that there are three buttons at the top of the monitoring page which "start" different monitoring features. (If you don't see these buttons, just refresh the browser again to get them to appear.)

So what are the implications of starting each of the optional monitoring features?

  • start memory tracking: this has the highest potential impact for overhead, which can be very substantial, even to the point of crashing your instance. And even on a low-traffic developer machine, you might see a big hit from running this. More on this in a moment.
  • start profiling: this has much less overhead. It primarily enables tracking of database activity. The help page for the monitor calls its overhead "minimal", but I will note that on a CF server with tremendous DB activity, its overhead could be more substantial.
  • start monitoring: This is the least impactful button. It's needed to at least see running requests, as well as to have Alerts fire. But even on a busy server I've rarely seen it have a negative impact. That said, you don't need ANY of the 3 buttons enabled to see at least some info. More below.

Definitely check out that help page (from the front page of the monitor) or discussions in my 4-part series of articles on the monitor to learn more about what each button does as well as more about the monitor itself and its many features.

About the Memory Tracking feature

You'll note that I hedged above on the impact of the Memory Tracking. Conventional wisdom is that it is indeed a potential server killer, and I can confirm that I've seen it many times in my CF server troubleshooting consulting practice. But I can also report that I've seen it running on production machines and having virtually no seeming impact. I kid you not.

I suspect it has to do with how many objects are in memory, how complex they are, how busy the server is, etc.

Now, some might propose that you use it only for brief periods (minutes, seconds) to gather some info for analysis, perhaps only in emergency. (I even said this in my initial version of this blog entry.) But many have found that things go horribly wrong on some CF instances the moment it's enabled. So it's probably best not to use it at all on live prod server.

You might be able to do it in a test/dev server, and you may get value form that in looking at the impact at least of individual or small numbers of requests. But beware also that some problems simply don't present themselves except under load (and often only in production, not even with load testing), so using it in dev/test may not help spot/understand/resolve all problems.

So does that mean there's no value if you can't use this feature in prod? Well, no. Remember, this is one of 3 buttons. The other two have less overhead (especially "start monitoring"). More than that, you can get value from the monitor with NONE of the buttons turned on.

Any value if none turned on?

Yes, don't miss this vital point: there is value to using the monitor even with none of the start buttons enabled. That is deserves its own entry. Who says there's no such thing as a free lunch? :-)

So if you hear someone say "don't use the monitor in production", please make sure they're clear on all this. There are 3 features you can enable, or none at all, and each provides different info at different costs--some of it zero.

Postscript: The buttons stay enabled after closing the monitor, and even over restart

I know I've discussed this elsewhere, but while I'm updating this entry let me reiterate the point: it's vital that you understand that if you turn on any of these buttons, they STAY TURNED ON, even if you close the monitor. And EVEN IF YOU RESTART CF. In fact, this is important enough to deserve its own entry. I'll post that now (as I update this in 2012), CF911: Using the #ColdFusion Server Monitor? Be aware that the "Start" buttons remain enabled.

CF 8 Hidden Gem: new Sleep() function to pause a current request

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Ever wanted to pause a currently running request? You can now, in CF8, using the new sleep() function. CF8's chock full of hidden gems. Indeed, I make note of nearly 50 of them in a user group talk I've started doing. One of them is this new Sleep() function.

Some will recognize it as an easier way to call the java thread.sleep method (as many have noted, and I wrote about back in 2002). It's been added primarily as part of the multi-threaded processing (CFTHREAD) feature, such as when one thread needs to wait upon another.

But it can be useful sometimes on its own, such as when you want to simulate a long-running request for any reason. (And it's a whole lot more server-friendly than doing a huge cfloop, since a sleep call doesn't really spin the CPU. It literally halts the current request, putting it to "sleep".)

As with the sleep method in java, sleep() takes a number in milliseconds, so for 5 seconds, use 5000. You can use it in CFSCRIPT, or in a simple CFSET:

<cfset sleep(5000)>

Why might you want to simulate a long-running request? There are many reasons. Perhaps to test some logic in how CFLOCK failures work, or to cause a page to appear in the new CF8 server monitor--or one of the long-existing monitor tools (to make sure you're seeing what you think you should be seeing).

Still another reason to use it has to do with another hidden gem, this one in CF7. I'll write about that shortly.

More Entries

Copyright ©2024 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting