Welcome!

You will be redirected in 30 seconds or close now.

ColdFusion Authors: Yakov Fain, Jeremy Geelan, Maureen O'Gara, Nancy Y. Nee, Tad Anderson

Related Topics: ColdFusion

ColdFusion: Article

ColdFusion Server Recovery

ColdFusion Server Recovery

Have you ever built that "killer" ColdFusion app only to have server problems bring your application to a grinding halt? Fortunately, armed with a little knowledge and a few batch files, most issues in ColdFusion 4.0-5.0 are easily resolvable in less than 60 seconds.

Many of these scripts are taken directly from the edgewebhosting.net internal support archives and have been created after many years of troubleshooting ColdFusion servers. The batch files in this article as well as several other scripts and utilities used for recovery can be downloaded at: http://edgewebhosting.net/quickfix.

Even if you don't have a dedicated server, you should still know how to perform basic ColdFusion server recovery procedures. You may need to recover an in-house server, or offer a little friendly advice to the support tech on the line who may not know how to resolve a problem with your shared hosting service.

This article assumes a Windows-based platform utilizing Microsoft IIS as the Web server, one of the most common environments for hosting ColdFusion Web sites.

Problem 1:
Applications are running very slowly, and opening Task Manager reveals cfserver.exe utilizing 90-100% CPU Utilization

  • Situation 1: The CFMAIL Bug
    The most common problem we have seen to date has been around since version 4.0 and exists through version 5.0. It's called "The CFMail Bug."
    Background: Every time a CFMail tag is called, a mail file with an extension of CFMAIL is saved into a folder on the CF Server's local drive c:\cfusion\mail\spool. If ColdFusion is unable to complete writing this file, it will generate a file less than 1Kb in size that either has no data or just empty spaces.

    At this point the dll used by the server to process and send mail, dart.dll, will lock up and go into an infinite loop. This causes the cfserver.exe (ColdFusion Application Server) to lock at 90-100% CPU utilization. Restarting the ColdFusion Application Server service or rebooting the computer seems to have no effect since the affected file remains in the mail spooler's folder.

    Solution:
    1) Open the Services dialog
    a. NT40 Control Panel -> Services or
    b. Windows 2000 -> Control Panel -> Administrative Tools -> Services
    2) Stop the ColdFusion Application Server Service
    3) Stop the ColdFusion Executive Service
    4) Open a DOS window and cd to your \cfusion\mail\spool folder
    5) Remove all of the files from this location (del *.*) or move them to a different folder for review later
    6) Restart the ColdFusion Application Server Service
    7) Restart the ColdFusion Executive Service
    8) Review the files in the temp folder you just created, removing any invalid files (these files may be opened with NotePad)

    You can also save and run the following batch file. Make sure to replace the path with the correct path to your CFusion folder on your server.

    REM Contents of fixmail.bat
    NET STOP "Cold Fusion Application Server"
    NET STOP "Cold Fusion Executive"
    CD \CFUSION\MAIL\SPOOL
    MKDIR TEMP
    MOVE *.* TEMP
    NET START "Cold Fusion Application Server"
    NET START "Cold Fusion Executive"

  • Situation 2: Variable Deadlocks
    Background: Variable deadlocks occur when several processes or users try to update the same memory in a Server, Application, or Session variable at the same time. On a site that receives a large amount of traffic, variable deadlocks on one site can cripple performance for the entire server. As I am sure you have read in several CFDJ articles, I cannot stress enough the importance of utilizing CFLOCK effectively within your applications. (For example, see "Super Wizards: Using ColdFusion for Data Manipulation and Processing," by Courtney E. Payne; CFDJ, Vol.4, issue 12.)

    Solution: If you suspect that you have variable deadlock conditions causing your server to go haywire, log in to your CF Administrator and enable "Full Checking" on the Server, Application, and Session scopes in the Locking section of the configuration. After you have made this change, ColdFusion will throw an error if you try to use a shared access variable without a lock. It's not perfect, but it will catch most missing locks.

    Another option is to simply use Studio's multiple file search for the strings "server", "session", and "application" and ensure that you are using CFLOCK with all of your shared variables. This may take a while, but consider it a painful reminder that you must lock your code. A quick browse of your Application.log (\cfusion\log\ application.log) will quickly reveal which CFM files and variables are causing the problem. You can then disable "Full Checking" and fix the code within the application causing the problem.

  • Situation 3: ColdFusion and Microsoft SQL Server installed on the same server
    Background: ColdFusion and MS SQL server are both very resource-intensive applications. In a high-traffic environment, both applications start to contend for the available resources on a server.

    Solution: If you can possibly avoid it, do not put ColdFusion and SQL server on the same machine if you intend to run in a mission-critical production environment. You will have a significantly more stable server if SQL is on a separate machine, even if that SQL machine maintains a higher CPU load than your CF Server. If this situation is unavoidable, modify the properties of your SQL server configuration to reduce the amount of available memory resource and CPU worker threads available to SQL Server in the Memory and CPU tabs within the SQL Server Properties in Enterprise Manager. Set the values to a necessary level for your application to avoid overloading your server. Usually 75% of the default values will produce effective results.

    Problem 2:
    The dreaded 500 IIS Internal Server Error

    Background: A 500 Internal Server Error is a generic error thrown by the server when it decides it cannot access an internal resource it thinks necessary to display your page. Although this is a much more common problem when developing applications using Active Server Pages, it does occur sporadically on all versions of ColdFusion Server. Although it is not specifically a ColdFusion problem, but an IIS problem, it still occurs often enough that CF developers should know how to solve it.

    Solution: The following steps should resolve the issue:
    1. Open Internet Services Manager
    a. NT40 Start->Programs->Windows NT 4.0 Option Pack->Internet Information Server -> Internet Services Manager or
    b. Windows 2000 -> Control Panel -> Administrative Tools -> Internet Services Manager
    2. Right click and open the Properties of the Web site with the problem
    3. Click on the Home Directory Tab
    4. Click the Unload Button

    If you are hosting in a shared environment, call your Web host and ask them to "Unload your site in IIS." They should be familiar with the process.

    Problem 3:
    ODBC Errors

    Background: There are several bugs in ODBC that can cause ColdFusion to stop processing one or all MS Access databases on your server. You may receive errors such as:

  • The Microsoft Jet database engine cannot open the file "(unknown)". It is already opened exclusively by another user, or you need permission to view its data.
  • Not enough space on temp drive
  • Memory allocation error

    Several other errors may occur while accessing your MDB file.

    Solution: Although this can be caused by several different conditions, most often all that is required is a restart of your ColdFusion Application Server service. If that does not alleviate the problem, most likely your MDB file is corrupt, the database requires a password, or the ColdFusion Server does not have the correct NTFS permissions to access the MDB file. If restarting the service does not resolve your issue, see http://edgewebhosting.net/quickfix/mdb for a set of utilities to repair MDB files or identify the presence of an MDB password.

    Please be aware that Macromedia and Microsoft do not recommend using Microsoft Access databases for production environments. We've found that once you start receiving more than 25 concurrent users to your Web application, this problem will reappear much more frequently.

    For more information, see Macromedia's notes on the subject: www.macromedia.com/v1/Handlers/index.cfm?ID=1540.

    Problem 4:
    Cannot access the system registry

    Background: Any time you attempt to access client variables, add a new data source, or configure just about any setting in the CF Administrator, you receive the error "Cannot access the system registry." As terrifying as this error may sound, it is easily resolvable in most cases.

    This problem occurs if your server is configured to store client variables in the system registry. By default, the variables are not purged for up to 90 days. On a server that receives moderate to heavy traffic, the registry can become full quite quickly. Once you have reached Windows' maximum allowable registry size, no applications on the server will be able to write additional data into the registry.

    Solution: The first step of this solution is to purge the client variables from the registry. This may be accomplished by downloading Macromedia's utility on their support site: www.macromedia.com/v1/handlers/index.cfm?ID=20340.

    Unfortunately, the Macromedia-provided utility may run for several hours to clear the entire client variables registry key. We have written an application to perform this process much more quickly:
    http://edgewebhosting.net/quickfix/registry.

    The second step is a little more difficult. It is highly recommended by Macromedia that you not store client variables in the registry in a production environment. Client variables should always be stored in a database when used in a production environment; preferably a SQL Server database. If this option is not available to you, use the Macromedia TechNote to update your registry to ensure that your variables expire in a timely fashion: www.macromedia.com/v1/Handlers/index.cfm?ID=22419

    Conclusion
    Although CF recovery techniques and problems can be significantly more complex than the most common problems listed in this article, you'll find that with the tricks included here and the utilities provided on our Web site, you should be able to quickly recover from the majority of server problems. ColdFusion has matured as a development environment. Since its inception, each new release has added a new level of stability. Part of building any stable application platform involves understanding the problems to which your environment is susceptible, as well as the recovery procedures, in case the worst happens. I hope this article will help bring a higher level of reliability to your applications.

  • Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    IoT & Smart Cities Stories
    The challenges of aggregating data from consumer-oriented devices, such as wearable technologies and smart thermostats, are fairly well-understood. However, there are a new set of challenges for IoT devices that generate megabytes or gigabytes of data per second. Certainly, the infrastructure will have to change, as those volumes of data will likely overwhelm the available bandwidth for aggregating the data into a central repository. Ochandarena discusses a whole new way to think about your next...
    CloudEXPO | DevOpsSUMMIT | DXWorldEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
    All in Mobile is a place where we continually maximize their impact by fostering understanding, empathy, insights, creativity and joy. They believe that a truly useful and desirable mobile app doesn't need the brightest idea or the most advanced technology. A great product begins with understanding people. It's easy to think that customers will love your app, but can you justify it? They make sure your final app is something that users truly want and need. The only way to do this is by ...
    Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
    DXWorldEXPO LLC announced today that Big Data Federation to Exhibit at the 22nd International CloudEXPO, colocated with DevOpsSUMMIT and DXWorldEXPO, November 12-13, 2018 in New York City. Big Data Federation, Inc. develops and applies artificial intelligence to predict financial and economic events that matter. The company uncovers patterns and precise drivers of performance and outcomes with the aid of machine-learning algorithms, big data, and fundamental analysis. Their products are deployed...
    Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
    Cell networks have the advantage of long-range communications, reaching an estimated 90% of the world. But cell networks such as 2G, 3G and LTE consume lots of power and were designed for connecting people. They are not optimized for low- or battery-powered devices or for IoT applications with infrequently transmitted data. Cell IoT modules that support narrow-band IoT and 4G cell networks will enable cell connectivity, device management, and app enablement for low-power wide-area network IoT. B...
    The hierarchical architecture that distributes "compute" within the network specially at the edge can enable new services by harnessing emerging technologies. But Edge-Compute comes at increased cost that needs to be managed and potentially augmented by creative architecture solutions as there will always a catching-up with the capacity demands. Processing power in smartphones has enhanced YoY and there is increasingly spare compute capacity that can be potentially pooled. Uber has successfully ...
    SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
    When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...