Meeting Archived: ColdFusion MX 7 on Unix and Linux

Thanks to everyone who attended tonight's presentation from the Online ColdFusion Meetup Group. The Breeze presentation was recorded and is available for viewing here:

Running ColdFusion MX 7 on Unix and Linux [Slides]

Please consider joining the Online ColdFusion Meetup Group by officially registering as a member on the Meetup website.

As I think of errata from tonight's meeting, I'll publish corrections in the comments for this blog entry. Further questions can be posted to this blog, too.

Otherwise, here are some links mentioned in the talk:


No more data available to read

The following is a reply I made to the CFGURU mailing list describing my experience with the "No more data available to read" error in CFMX server.

At least as of Macromedia drivers bundle version 3.3, the "No more data available to read" error is generated in SQL Server datasources when an existing connection in the connection pool isn't valid anymore. A request checks out an existing connection and attempts to use it, but if the connection isn't good anymore then this error is thrown and the connection is removed from the connection pool.


Example of a code induced memory leak that crashes CFMX

Recently I helped someone who reported a rapid memory leak in ColdFusion MX 6.1 server where memory for the jrun.exe process grew from 300 MB upon startup to 1200 MB within about 15 minutes, followed by a JVM crash.

A thread dump was obtained from when the memory was peaking and reviewed along with the ColdFusion and JRun log files.

The thread dump showed several jrpp threads where the individual stack for a jrpp was hundreds and hundreds of lines, composed primarily of a repeating sequence. The repeating sequence appeared to be a type of long or infinite loop where cfm A called cfm B which called cfm C which called cfm A again. The sequence repeated until it used the maximum heap available to the JVM, 1.2GB, and then crashed the server.


Server stability: Of Diligence, Anecdote, and Fallacy

Today I continue my previous post and the CF Server Stability thread on CFTalk in reply to Micha's comments.

I reiterate; I don't believe that casting a broad net for specious reports, incomplete data, and hyperbole will serve to solve whatever particular difficulty ails a given server. I think most every case is rather unique, although where common threads are drawn they get turned around into Technote advisories, documentation, or possibly bug reports. I think each case needs to be founded in contextual information. In other words... Show me the data!


Troubleshooting Tips For ColdFusion MX

I'm posting a CFTalk thread that I'm currently engaged in regarding general CFMX troubleshooting techniques, as well as my reply to Dave Watts' follow-up questions

ColdFusion configurations and environments *vary widely* among users. I don't think that casting a broad net for specious reports, incomplete data, and hyperbole will serve to solve whatever particular difficulty ails your server, although there is certainly much to be said for a controlled gathering of data "from the field" for careful analytic review [in order to quantify trends in the developer community].

Some things to consider [for a particular server problem] might be the following:


JRun Closed Connection

If you've noticed an increase in the frequency of "JRun Closed Connection" errors since having migrated to ColdFusion MX 6.1, then you may want to know one factor that is very likely contributing to that increase.

Speaking generally, web requests from the client browser are recieved by the web server and passed to the JRun webserver connector stub. The webserver connector stub communicates with the JRun server on the JNDI port over TCP/IP, typically port 51010. The web request is sent from the connector to the JRun server, and the JRun server will either assign the request to a JVM thread in the running request pool for immediate execution or JRun will assign the request to a thread in queued request pool if the running pool is full.


ColdFusion MX and Client Variables in the Registry

Yes, even CFMX users should watch out for client vars that are stored in the Registry. In CF5 and earlier this practice would make ColdFusion progressively slower, causing it to often crash. In CFMX the symptom of this is that CFMX will spin the CPU very high at 60 minute intervals.

The first recommendation is that you shouldn't store client variables in the Registry, but should configure a datasource for that purpose instead. However, even after that configuration change is made the server may be left with a very fat Clients key in the Registry which will gradually be purged according to the setting in the CFAdmin. The problem is that there is a bug where unchecking the little Purge checkbox won't stop CFMX from trying to purge the Registry anyway. If there are thousands and thousands of client keys there then CFMX will get stuck temporarily while trying to read through them all when a background thread kicks in every hour to handle purging. The solution could be to manually remove all the client keys from the Clients registry key or call support and ask for the hotfix. The key that may contain the many client subkeys is:


Application server is busy, PROXY_BUSY, JRun too busy

This blog entry will attempt to describe the symptoms and likely causes of a collection of error messages often found to occur together in a given context.


[Browser Error Message, CFMX 6.0]:

Server Error
The server encountered an internal error and was unable to complete your request.
Too many concurrent requests, jcp.endpoint.main.max.threads exceeded.

[Browser Error Message, CFMX 6.1]:
Server Error
The server encountered an internal error and was unable to complete your request.
Application server is busy. Either there are too many concurrent requests or the server is still starting up.

Here, the error message changed between CFMX 6.0 and CFMX 6.1 to be somewhat more accurate regarding the cause. Essentially, there are three possible conditions in which you can get either of these errors.


Help! My ColdFusion MX Server is Slow!!!!

Determining Root Cause for Slow Application

I've often seen ColdFusion users complain that their server/application is running very slowly, not handling requests as fast as normal, or just plain "hung". Many would suggest examining log files to determine the status and recent history of the ColdFusion server in order to find clues that might reveal what the server was actually doing. While this troubleshooting step can be useful, it can only get you so far.


CFUN03 Celebrity Squares Trivia

CF Celebrity Squares At the recent CFUN03 conference, I was asked again this year to create the trivia questions to be used in the game show parody, this year entitled Celebrity Squares. The following is a list of questions prepared for the game.

1) The CFML tags CFDUMP, CFLOG, and CFFLUSH first became available in what version of ColdFusion?
Answer: ColdFusion 5 (a little bathroom humor to warm up !)
2) CFMAIL can be used to send large volumes of unsolicited mail, often known as spam. How did junk email come to be known as "spam"?


Previous Entries