Accessibility
 
Home / Developer Center / ColdFusion Developer Center /

ColdFusion Article

Icon or Spacer Icon or Spacer Icon or Spacer
Macromedia ColdFusion MX
 
 
ColdFusion MX Migration Overview

This document provides an overview of the major considerations involved in migrating to Macromedia ColdFusion MX from a previous ColdFusion release. As with all major upgrades, the key to a successful migration is planning. Use this guide to develop a solid migration plan and take advantage of powerful new features in ColdFusion MX Server and ColdFusion MX.

To print this document, download the PDF (137K).

What’s New in ColdFusion MX
ColdFusion MX marks a major milestone in the evolution of ColdFusion. Rebuilt from the ground up on a completely standards-based architecture, this latest release of ColdFusion introduces significant benefits for existing applications and future projects.

In addition to increasing performance and reliability, ColdFusion MX applications can take advantage of powerful new features, such as integrated support for web services and XML, ColdFusion components (CFCs), and Macromedia Flash Remoting. Moreover, organizations can take advantage of the rich integration capabilities exposed by the underlying J2EE platform – all while leveraging the signature ease of use and productivity of the CFML environment.

ColdFusion MX also provides significant new deployment options for ColdFusion applications. ColdFusion MX Enterprise now includes a full version of Macromedia JRun, allowing you to take full advantage of the innovative ColdFusion MX architecture by running ColdFusion as a standard J2EE application within a Java application server. ColdFusion MX Enterprise can also be deployed on third-party application servers such as IBM WebSphere®, Sun ONE Application Server, and BEA WebLogic Server.

Deploying ColdFusion MX in the J2EE configuration provides many benefits for developers and administrators, including:

  • Java integration. Deploy hybrid applications that combine the power of CFML with advanced Java technologies, such as servlets and Enterprise JavaBeans.
  • Application isolation. Increase reliability by isolating ColdFusion applications in individual processes running on the same server.
  • Deployment flexibility. Create multiple, independent installations of ColdFusion on a single server and configure each according to application-specific or security needs.
  • Server optimization. Maximize hardware resource utilization by load balancing across concurrent ColdFusion processes.
  • Clustering. Deliver high-availability by leveraging load balancing and failover provided within high-end Java application servers.

Enterprises who have invested in both ColdFusion and J2EE, or organizations that want to increase the security and reliability of their ColdFusion infrastructure should strongly consider migrating to ColdFusion MX for J2EE to take full advantage of the new ColdFusion MX architecture

Planning Your ColdFusion MX Migration
Though Macromedia designed ColdFusion MX to be compatible with previous releases, we completely rebuilt the runtime engine and used a significantly different underlying architecture. Moreover, in ColdFusion MX, some language elements were changed or deprecated to introduce greater flexibility or to adhere to standards.

As a result, migrating your infrastructure and existing applications requires more planning and testing than previous upgrades. However, once you have completely migrated your applications, you can access a more powerful infrastructure and feature set in ColdFusion than before.

The following process explains a high-level overview for successfully migrating to ColdFusion MX:

  1. Gather information. Read and apply the migration resources highlighted in this overview, examine the target application and deployment environment to identify areas that will need attention.


  2. Configure a test environment. As discussed below, the installation and configuration options are different from previous releases. In addition, configuring ColdFusion with your web server, database, or security repository may differ. Use your test environment to identify and test the optimum configurations for your applications’ requirements. As with all testing environments, your test environment should be as close to the final production environment as possible.


  3. Analyze your applications. The Code Compatibility Analyzer helps you identify areas of your application that you will need to modify due to deprecated features or syntax changes. However, you should also perform functional testing on each area of the application to identify any problems caused by subtle changes in behavior or configuration. In particular, pay attention to the sections below and in Migrating ColdFusion 5 Applications.


  4. Create a test specification. Once you have identified areas that require changes, develop a plan to modify code and test the necessary changes.


  5. Implement and test changes. Modify code as necessary and unit-test all changes. After unit testing individual changes, test the entire application. If your application handles significant volume, load test and performance tune your application as well . Deploy Updated Code. Install ColdFusion MX in your production environment and deploy the tested application. This configuration should be as close to the test environment as possible to ensure consistent behavior.


  6. Capture knowledge. Document and archive the migration plan, lessons learned, and helpful hints or tips to use on future projects.

Key Migration Planning Tools
In addition to this document, Macromedia provides several resources that can help you plan and accomplish your migration to ColdFusion MX. For the most comprehensive overview of these resources, be sure to visit the Migrating to ColdFusion MX area. See also the list of reference URLs at the end of this document). Some key resources are:

  • The ColdFusion MX Architecture White Paper describes the architecture of the new server in detail. Understanding the new product architecture prepares you for potential migration issues for your particular application or environment.
  • The ColdFusion MX LiveDocs: Migrating ColdFusion 5 Applications is the most current version of the documentation, available online. It provides an in-depth overview of the technical changes in the ColdFusion server, including a list of deprecated or changed tags and functions.
  • The ColdFusion Code Compatibility Analyzer is a new utility that you can access within ColdFusion Administrator. The Analyzer scans applications, generates reports that identify code that the ColdFusion MX version may affect, and highlights syntax errors that you must address during migration.
  • In addition to these resources, you can access a wealth of articles, TechNotes, and other resources online through the ColdFusion Support Center and ColdFusion Development Center.
  • Lastly, for complex migration projects, you may wish to use Macromedia Technical Support and Professional Services. They can visit you on-site and help you plan your migration.

Deprecated Features
In addition to minor changes in the language, a few features available in ColdFusion Server 4.5 or 5 were deprecated in the ColdFusion MX release. These include:

  • SiteMinder. ColdFusion MX no longer includes an OEM version of the Netegrity SiteMinder product. As a result, you must modify applications that use cfauthenticate and its associated tags. Instead, you must use either the cflogin framework, introduced with ColdFusion MX, or a custom security framework. In addition, you can no longer create multiple RDS or administrator accounts with different access privileges. Lastly, Macromedia redesigned Server Sandbox in ColdFusion MX to take advantage of security services in the underlying J2EE platform and to provide a more easy-to-use interface.


  • SNMP. ColdFusion MX no longer provides integrated support for SNMP (Simple Network Management Protocol). To monitor ColdFusion applications, use the monitoring tools in ColdFusion administrator or work with third-party monitoring solutions such as Perfmon.


  • Hardware Load Balancing. ColdFusion MX no longer provides built-in integration with hardware load balancing devices, such as Cisco LocalDirector. For the latest information about methods for using ColdFusion MX with popular hardware load balancing devices, refer to the ColdFusion Support Center TechNotes and the Migrating to ColdFusion MX area.
  • Dynamic Data Source Names (DSNs). ColdFusion MX no longer supports dynamically creating database connections within an application. You must define all data source names in ColdFusion administrator or (if you are using ColdFusion MX for J2EE) in the underlying application server.

Differences in Installation and Configuration
There are several differences in the procedure for installing and configuring ColdFusion MX compared with previous releases of ColdFusion. Consider these issues when planning your ColdFusion MX deployment.

  • Configuration Information. The format and location of ColdFusion configuration information have changed substantially from previous releases. ColdFusion now stores the majority of information in XML files instead of within the Windows registry or the cfregistry file. As a result, you may need to modify custom scripts that change configuration information directly or applications that depend on reading ColdFusion settings previously stored in the registry.


  • Built-in Web Server. In addition to integrating with an existing web server, ColdFusion MX now has a built-in web server. Use the built-in web server for development purposes only. Do not use it in a production environment. One benefit in using the built-in web server is that you can install ColdFusion MX so that it uses the built-in web server and run another version of ColdFusion on another web server, for testing purposes.


  • Migrating ColdFusion Settings. When upgrading an existing ColdFusion server to ColdFusion MX, the migration wizard can migrate most server settings. However, it cannot migrate all server settings automatically. In particular, you must migrate the following settings manually:

    • Tag Security. In ColdFusion MX you can enable/disable tags from within the administrator. However, the interface for configuring these options has changed and the migration does not transfer the options automatically.
    • Data Sources. ColdFusion MX will migrate data sources from ColdFusion 5. However, due to differences between JDBC and ODBC, as well as changes in default settings, you may have to reconfigure select data sources after the migration.
    • Server Sandboxing. ColdFusion MX provides sandboxing that is functionally similar to previous releases; however, sandbox definitions are not compatible with previous releases and you must recreate them after you install ColdFusion MX.
    • CORBA. The migration wizard does not migrate CORBA connector settings.


  • ColdFusion MX Updater. With the ColdFusion MX release, Macromedia introduced a new way to deliver product updates—the Macromedia ColdFusion MX Updater. The updater provides a simple way to keep your ColdFusion installation up to date with all of the latest approved security fixes, bug fixes, and OEM updates. When installing ColdFusion MX, be sure to download the latest version of the updater and sign up so that we can automatically notify you when we release new versions.


  • Configuring Server Security. Due to changes in web server connectors, the method for securing ColdFusion pages with native OS security has changed. For instance, to use native Windows security to control web page access, you must configure IIS to check page access privileges prior to forwarding the request to ColdFusion. ColdFusion no longer performs this check automatically. For further information, check the Migrating to ColdFusion MX area.

Integrating with your Existing Infrastructure
There are several significant differences in the way ColdFusion MX integrates with your IT infrastructure. Note these differences in planning out your migration and configuring test and production environments.

  • Web server Integration. ColdFusion MX uses a different set of web server connectors than previous releases. As a result, pay attention to the configuration procedures and settings required for use with advanced configurations (such as with virtual hosts) and operating system-level security. Read instructions for configuring the web server connectors in the documentation.


  • Database Connectivity. ColdFusion MX no longer uses ODBC and native drivers to connect to relational databases. It relies instead on standards-based JDBC drivers. Read the documentation to get a list of supported databases and versions and get instructions for using third-party JDBC drivers with ColdFusion MX. Switching to JDBC may also affect the way you connect to a database; you may need to use trusted connections or connection strings.


  • Directory, e-mail, File Servers. While ColdFusion MX has not significantly changed the protocol tags, the underlying implementation has changed for directory, e-mail, and file server integration. As a result, you may need to modify applications that rely on these tags, as there may be minor behavioral changes.

Migrating Your Existing Applications
Before attempting to migrate your applications to ColdFusion MX, set up a dedicated testing server that will not affect applications in production. As part of the migration effort, consider each of the following:

  • Language Compatibility. As discussed previously, the majority of customers find that their existing ColdFusion applications run without issue on ColdFusion MX. However, minor language changes may require you to modify some applications. In particular, check on the following language areas:

    • ColdFusion MX is more strict than previous releases, for instance, with reserved words in CFML and SQL. Therefore, coding errors that ColdFusion previously allowed may cause ColdFusion MX to throw parsing errors. You may need to rename some variable names to account for new reserved words or illegal characters.
    • You can no longer use periods or dots in variable names. ColdFusion now uses "." as an operator to create a struct.
    • Since the ColdFusion MX application now runs within a Java virtual machine environment, the performance or behavior of operations that access native operating system functionality may differ substantially.

    For a complete list of changes to the language, read Migrating ColdFusion 5 Applications. In addition, use the ColdFusion Compatibility Analyzer to identify areas of applications that the CFML language changes may affect.

  • Extensions. Moving to a Java-based architecture means that ColdFusion extensions behave significantly different, particularly in performance and compatibility of interfaces to native compiled code, such as COM objects and C++ CFXs. On the other hand, ColdFusion MX integrates better with Java objects, including the ability to share session data with JSPs/servlets and enhances performance when calling Java objects.


  • Application Security. As discussed previously, ColdFusion MX no longer supports Netegrity SiteMinder user security functions. Though porting applications that use these tags requires you to rewrite some code, the new cflogin tag provides a much simpler and more extensible framework for implementing application security.


  • Localization and Character Encoding. ColdFusion MX now uses the UTF-8 character set as its default encoding, which may affect applications that frequently use characters in the 128-255 range. In addition, ColdFusion MX enhances locale functions. For more detail on these changes, read the documentation as well as the online overview of internationalization features in ColdFusion MX.


  • Macromedia Spectra Applications. You can migrate applications built with Macromedia Spectra to ColdFusion MX; however, you must upgrade the underlying Spectra framework to version 1.5.2. This update is available free to existing customers from SpectraSource.

ColdFusion MX in a J2EE Environment
Customers migrating existing ColdFusion applications to a J2EE environment have a few additional issues to consider. The majority of the issues result from different deployment configurations that the J2EE architecture supports.

First, in a J2EE environment, you deploy most applications to a “context root”, which is a subdirectory of the top-level domain. For instance, you may deploy your ColdFusion applications to www.mydomain.com/cfusion instead of www.mydomain.com. This may affect URLs that do not use relative paths.

Second, changes in the directory structure of the J2EE server environment may affect file system references and other code that rely on absolute paths.

Lastly, when deployed on a third-party J2EE server, some ColdFusion functionality will depend on the configuration or features of the underlying server, such as the web server connector or database drivers. Read the documentation and release notes for details.

Tuning and Managing ColdFusion MX
While results will vary by application, benchmark tests performed with the Tack2++ application suggest that many ColdFusion applications will see significant performance gains when migrated to ColdFusion MX, in some cases more than doubling throughput under load. For information about these benchmarks, consult the performance briefs available on the Macromedia web site.

As with any server, to obtain optimum performance, you must tune your environment to fit your application. Changing the underlying architecture of ColdFusion MX affects performance tuning in a few ways. To ensure you obtain the optimum performance and stability, consider the following factors:

  • Java Runtime Environment. ColdFusion relies on a Java virtual machine as its core runtime environment. The default installation of ColdFusion MX Server includes version 1.3.1 of the Sun JDK, as this was the optimum version available at the time of release. However, future releases of the JDK or alternate implementations may provide greater performance and stability in some environments.
  • Runtime Behavior. The behavior of the ColdFusion application on a particular platform varies, depending on how a platform implements the Java runtime environment. For instance, due to the way the Linux platform implements Java threading, ColdFusion MX may appear to spawn an excessive number of processes when actually it is functioning properly. Read more about specific operating system behavior in the documentation and in the TechNotes.
  • Some of the optimum operating system, web server, and ColdFusion settings for maximizing performance of ColdFusion applications have changed. For the latest recommendations regarding performance tuning, read the ColdFusion Support Center and the Migrating to ColdFusion MX area.

Additional Migration Resources
The information and resources in this document give you migration information that should help you in many situations. However, nothing substitutes for live, hands-on assistance from a knowledgeable professional. For customers with additional requirements, Macromedia Services provides a variety of offerings to meet these needs.

Macromedia Services are particularly crucial for the following situations:

  • Complex applications (such as heavy use of COM/CFX, connectivity to multiple external systems, and so forth.)
  • High-volume or business/mission-critical applications
  • Applications with deadline pressure to run on ColdFusion MX
  • ISVs seeking to bring ColdFusion-based solutions to the ColdFusion MX platform
  • All applications migrating to ColdFusion MX for J2EE

Product Support Offerings
Macromedia has customizable support plans for all types of users, ranging from per-incident support to direct access to a designated senior support engineer. For more details on specific programs, see www.macromedia.com/support/.

Professional Services Offerings
The Macromedia Professional Services team has the skill and experience to make complex migration projects run smoothly, and to improve the overall architecture, performance, and reliability of your applications. Offerings include:

  • ColdFusion MX Migration Service
  • Architecture Review
  • Performance Analysis and Tuning
  • Advanced Administration (MX and 5.x)
  • Incident Resolution

Migrating Resources

 
 

Submit feedback on our tutorials, articles, and sample applications.