Accessibility
 
Home / Products / ColdFusion / Support / Release Notes
Macromedia ColdFusion Support Center Release Notes

ColdFusion MX Release Notes

Welcome to Macromedia ColdFusion MX, the next generation of ColdFusion Server!

The following release notes describe installation notes, known issues, and late-breaking news about ColdFusion MX. Use the online forums at http://www.macromedia.com/go/prod_forums to share ideas and techniques with other users.

To help you get up to speed quickly, weve assembled Getting Started information geared to fit your needs—whether youre new to ColdFusion or an experienced web developer. Follow the Getting Started links in the ColdFusion Administrator. (To access the ColdFusion Administrator in Windows, select Start > Programs > Macromedia ColdFusion MX > Administrator.)

To learn more about ColdFusion MX, see the product information and FAQ at http://www.macromedia.com/software/coldfusion and visit our MX Application Development Centers on the Designer & Developer Center.


Contents
Installing and Configuring ColdFusion MX
Migrating from ColdFusion
Late-Breaking News
Performance and Scalability
Localization
Configuring Data Sources in ColdFusion MX
Web Services
ColdFusion Administrator
Graphing in ColdFusion MX
Verity Searches
Other Known Issues

The release notes for Flash Remoting (which lets you interact with ColdFusion pages, components, and server-side ActionScript from a Flash movie), are located at http://www.macromedia.com/go/flashremoting_releasenotes.


 

Installing and Configuring ColdFusion MX

This section contains important installation information for all platforms, Windows, and UNIX. This section does not list system requirements or provide installation instructions. For this information, see Installing ColdFusion MX.

Note: In this section, cf_root refers to the directory in which you installed ColdFusion MX. By default, this is C:\CFusionMX in Windows and /opt/coldfusionmx on UNIX.

The following table lists other installation-related tasks and where you can find the information that you need to complete them:


Task Information resource
Migrate a ColdFusion application to ColdFusion MX The Migrating from ColdFusion section of this document and Migrating ColdFusion 5 Applications
Interact with ColdFusion pages, components, and server-side ActionScript from a Flash movie, using the Flash Remoting service in ColdFusion MX. Using Flash Remoting and Using Server-Side ActionScript with ColdFusion MX.
Note: You must install the Flash Remoting Components in the Flash MX authoring environment. The Flash MX authoring environment is required to build applications that connect to and interact with the Flash Remoting service in ColdFusion.
Install ClusterCATS To download the appropriate setup file for your platform, see http://www.macromedia.com/go/cfmx_clustercats.

For installation instructions, see Using ClusterCATS.

 

Installation notes for all platforms

The following table contains important information for installing and configuring ColdFusion MX that applies to all platforms.


Task Issue
Preparing to install If you installed a prerelease version of ColdFusion MX, you must uninstall the prerelease version and then do one of the following, depending on your platform:
  • In Windows, delete the cf_root directory (Neo or CFusionMX) and restart your computer.
  • On UNIX, delete the cf_root directory (neo or coldfusionmx) and stop any active ColdFusion MX processes.
    To do so, enter ps -eaf | grep cfusion  or   ps -eaf | grep neo to see if there are any active process IDs (PIDS), and then run kill -9 <PID> for each active ColdFusion MX process.
If you attempt to install ColdFusion MX without uninstalling the prerelease version, the installer will prompt you to uninstall.
ColdFusion MX uses the Java Runtime Environment (JRE) to run, and installs its own private copy of the Sun JRE 1.3.1_03 by default into the ..\runtime\jre directory on Windows and the ../jre directory on Solaris and Linux. (On HP-UX, ColdFusion MX uses the HP JRE release 1.3.1_01.)

Please make sure that your computer meets the minimum system requirements for the JRE. The SUN JRE 1.3.1_03 release notes are at http://java.sun.com/j2se/1.3/.
Installing ColdFusion MX and JRun on the same computer If you install ColdFusion MX on a computer that has JRun 3.x or 4.0 installed and JRun is configured to connect to an external web server, choosing to configure the same external web server for ColdFusion MX will cause JSP pages and servlets to be processed through ColdFusion MX instead of through JRun.
If you have ColdFusion MX installed on the IIS, Apache, or Netscape/iPlanet web server and then install JRun 3.x or JRun 4, the ColdFusion MX configuration is lost, and you must reconfigure your web server for ColdFusion MX.
Configuring web servers ColdFusion MX supports the following web servers: IIS 4.0 and 5.x (Windows only), Apache 1.3.2x and later as well as 2.x, Netscape 3.6x, iPlanet 4.x and 6.x, Zeus 4.1 (Linux SuSE only), and the ColdFusion MX built-in web server.
If you configure the Apache or Netscape/iPlanet web server to use ColdFusion MX, the ColdFusion Administrator launches on port 80 by default. If your web server runs on a different port, you must change the URL for the ColdFusion Administrator to reflect this.
If you configure an instance of Apache web server that supports EAPI for ColdFusion MX, when you start this instance of Apache server, an error similar to the following appears:
[warn] Loaded DSO c:/cfusionmx/runtime/lib/wsconfig/1/mod_jrun.so uses plain Apache 1.3 API, this module might crash under EAPI! (please recompile it with -DEAPI)
You should be able to safely ignore this error; the ColdFusion Apache module is not compiled with EAPI because it does not utilize any of the EAPI funtionality.

However, if you do encounter a problem, please contact Macromedia Technical Support.
Web servers using ColdFusion MX that use multiple host names with different document roots ("multihomed" servers) must change the cacheRealPath option of the ProxyService to false. (To do so, open the jrun.xml file for editing, located in the \servers\default\SERVER-INF directory (by default, C:\CFusionMX\servers\default\SERVER-INF\jrun.xml). The cacheRealPath attribute is nested in the XML <service> element with name="ProxyService".) Otherwise, if two sites have a script with the same name relative to their web roots (for example, /index.cfm), the web server might incorrectly render the scripts. This setting might cause slower performance; this is why the option is set to true by default.

Edit cf_root/runtime/servers/default/SERVER-INF/jrun.xml and change the value of the following option from true to false.
<!-- set this to false for multi-hosted sites -->
<attribute name="cacheRealPath">true</attribute>
You can run ColdFusion MX on multiple web servers on the same computer; for example, to compare the same templates on different web servers. To do so, configure each web server following the instructions in Installing ColdFusion MX. Then create a virtual mapping that points to the CFIDE directory.
If you have any problems with the IIS, Apache or Netscape webserver connectors, there is a log file that will have information about the failure. Please provide this to a technical support engineer to help them diagnose the problem. This log file is located in cf_root\runtime\lib\wsconfig\wsconfig.log in Windows and cf_root/runtime/lib/wsconfig/wsconfig.log on UNIX.
Deleting the cfusion directory after upgrading ColdFusion MX After upgrading an existing ColdFusion installation to ColdFusion MX on a computer that is running Simple Network Mail Protocol (SNMP), trying to remove the cfusion directory does not remove the following files:
c:\cfusion\cfam\program\ihmib.dll
c:\cfusion\cfam\program\mibmsg.dll
To resolve this, stop the SNMP and then delete the cfusion directory.

 

Windows installation notes

The following table contains important information for installing and configuring ColdFusion MX in Windows.


Task Issue
Installing on a computer with an existing ColdFusion installation


(For compatibility issues between ColdFusion and ColdFusion MX, see the Migrating from ColdFusion section of this document.)
If the ColdFusion MX installer detects an earlier version of ColdFusion on the computer, an upgrade dialog box with the following options appears:
  • co-exist – This option is selected by default. If you select it, you can run both versions of ColdFusion on the same computer. The earlier version is left in place, and by default, ColdFusion MX runs on the built-in web server on port 8500. To configure ColdFusion MX to run on a different web server after the installation, see the Configuring your System chapter of Installing ColdFusion MX.
  • upgrade – This option removes the earlier version of ColdFusion and installs ColdFusion MX.
For both options, after the installation, when the ColdFusion Administrator opens, you are prompted to migrate your settings from ColdFusion to ColdFusion MX. You must do this to complete the upgrade.
When migrating ColdFusion settings to ColdFusion MX (after upgrading from ColdFusion), the client variable data that is stored in the registry is moved to the ColdFusion MX registry locations. If you have an extremely large amount of client data in your registry from your ColdFusion installation, your registry might reach capacity during the copy operation. In this case, ColdFusion MX aborts the copy operation and continues migrating your other ColdFusion settings. In addition, you might see the following error:
Unable to set value
hkey_local_machine\software\macromedia\coldfusion\currentversion\
Clients\141363-76934365\\HITCOUNT: Windows error number 0 occurred. Insufficient system resources exist to complete the requested service.
Installing ColdFusion MX in Windows During the installation you are prompted for the location of the program files and the web root directory for ColdFusion MX. There might be a delay when you click the Next button; please do not cancel the installation. The installer is checking for any conflicting folders in the web root path (such as CFIDE or CFDOCS) and backing them up with "_0" at the end of the name (for example, CFIDE_0 and CFDOCS_0).
The Repair and Modify options have been removed and are not supported with the final release. If you have a prerelease version of ColdFusion MX installed, you must uninstall before installing the final version. If you attempt to install the final version over an existing version, you are prompted to repair, modify, or remove the program. However, only the Remove option is supported. This is a limitation of Windows Installer, which launches the remove program of the installed version rather than the remove program of the version that you are attempting to install.
Configuring IIS for ColdFusion MX

You do not need to do this if you selected IIS during the ColdFusion MX installation. However, to switch to IIS, or to reconfigure IIS after the installation, enter the following command as a single (long) line:

cf_root\runtime\jre\bin\java -cp cf_root\runtime\lib -jar cf_root\runtime\lib\wsconfig.jar -ws IIS -site "0" -filter-prefix-only -map .cfm,.cfc,.cfml,.jsp -v

The following is a sample command:


c:\cfusionmx\runtime\jre\bin\java -cp c:\cfusionmx\runtime\lib 
  -jar c:\cfusionmx\runtime\lib\wsconfig.jar 
  -ws IIS -site "0" -filter-prefix-only 
  -map .cfm,.cfc,.cfml,.jsp -v 
This is contrary to what is published in Installing ColdFusion MX (Chapter 2: Configuring your System > Configuring web servers > Configuring Internet Information Server (IIS) in Windows), which has -wd instead of -ws.

Note: Using -site "0" configures all IIS websites for ColdFusion MX; whereas using -site "1" configures only Default Web Site. You can also enter a named web site as well; for example,
-site "foo".
The web server connector for IIS creates an IIS ISAPI filter and IIS application mappings. These are both set at the IIS master properties level, so the installer configures all IIS websites for ColdFusion MX by default. Also, if you add a site to IIS, it should automatically inherit the ColdFusion MX settings. If not, you must manually apply the application mappings from the master level.
The web server connector for IIS has changed for the final release. In the prerelease versions, the ColdFusion MX connector for IIS configured the IIS master properties so that the changes applied to all sites. However, due to issues with these settings not propagating down to the site level, the connector now configures only the Default Web Site for ColdFusion MX. If you want to change this so that all IIS sites are configured for ColdFusion MX, do the following:
  1. Run cf_root/bin/Remove_all_connectors.bat
  2. Run cf_root/bin/IIS_connector.bat

 

UNIX Installation Notes

The following table contains important information for installing and configuring ColdFusion MX on UNIX.


Task Issue
Preparing to install You must stop all ColdFusion-related or JRun-related services before running the ColdFusion MX installation.
To install and run ColdFusion MX on Linux, you must first install the latest version of the glib, glibc, libstdc++, and gcc libraries. See your Linux vendor's website for these packages. For example, Red Hat 7.1 ships with glibc-2.2.2-10, but ColdFusion MX requires glibc-2.2.4-24. Also, on all versions of Red Hat 7 and above, please make sure that the compat-libstdc++ rpm is installed. You can get this and all other RPMs for Red Hat from ftp://ftp.redhat.com/pub/redhat. SuSE users can find the RPM updates at ftp://ftp.suse.com/pub/suse.
To install on UNIX you must have 400MB free disk space (500 MB recommended). This is contrary to what is documented on the product packaging and in Installing ColdFusion MX.
Installing on a computer with an existing ColdFusion installation


(For compatibility issues between ColdFusion and ColdFusion MX, see the Migrating from ColdFusion section of this document.)
The ColdFusion MX UNIX installer does not automatically detect an earlier version of ColdFusion on your computer. Instead it displays the following prompt:
Is there already a version of ColdFusion installed on this computer?
If you answer N, you are not prompted to upgrade or migrate ColdFusion settings into ColdFusion MX.

If you answer Y, you will be given the option to migrate your ColdFusion settings into ColdFusion MX after the installation, once you start the ColdFusion Administrator. Also, the installer displays the following prompt:
Would you like to upgrade the existing ColdFusion installation?
If you answer N, your existing ColdFusion installation will not be upgraded; you will be able to run both versions of ColdFusion on the computer, and by default, ColdFusion MX will run on the built-in web server on port 8500. To configure ColdFusion MX to run on a different web server after the installation, see the Configuring your System chapter of Installing ColdFusion MX.

If you answer Y, the installer removes the earlier version of ColdFusion and installs ColdFusion MX.
Installing ColdFusion MX on UNIX ColdFusion MX does not support a GUI installer for UNIX in this release.
Admin and RDS passwords are displayed in plain text during the installation.
The UNIX installer displays a status bar at the end of the installation that stops for a while. This is expected behavior; the installer has not hung. Please be patient and let the installer run to completion.
After installing, if you do not see a runtime directory under the cf_root directory, you might have run out of of temporary disk space during the installation. (The installer does not properly detect if the temporary directory has insufficient disk space for the installer to expand itself.) To remedy this, uninstall ColdFusion MX, change the temporary directory to a directory on a partition with more free disk space (400 MB minimum, 500 MB recommended), and reinstall.

To change the temporary directory, run the following commands in the order in which they are listed.
Note: '/home/tmp' in the following commands refers to a directory on a partition with more free disk space; for example, you could use /home on most Linux systems and /export/home on Solaris.

mkdir /home/tmp
IATEMPDIR=/home/tmp
export IATEMPDIR
echo $IATEMPDIR
Running the echo command should confirm what you set the environment variable to.
If you have an earlier version of ColdFusion installed on the target computer, and you choose the upgrade option during the installation, note that any native data sources that you had in ColdFusion will not be automatically migrated to ColdFusion MX on UNIX.
Running ColdFusion MX On Linux, running a 'ps' command outputs multiple cfusion processes. This is expected behavior. These are not individual processes, but threads, due to the manner in which Linux handles threads.
On Solaris, ColdFusion MX might shut down when you log out of your session. This is an issue with Java and nohup on Solaris. To avoid this issue, drop into the Korn or Bash shell (enter ksh or bash), and then start ColdFusion MX.

Back to Contents


 

Migrating from ColdFusion

The following table describes differences between ColdFusion MX and ColdFusion  that could require you to change your application in order for it to run on ColdFusion MX.

Note: These differences are in addition to those listed in Migrating ColdFusion 5 Applications.


Product Area Compatibility Issue
Double-byte character storage in SQL Server If you store double-byte data in a SQL Server database that is not Unicode in nchar, nvarchar, or ntext data types, you might need to convert your data to Unicode encoding.
Error variables The cferror variable structure has changed. A cfdump of the error variables (<cfdump var=#error#>), shows a single-level array in ColdFusion 5, while in ColdFusion MX it is a multilevel array. To access certain error variables with the "error." notation you must use additional array values. For example, ErrorCode in ColdFusion 5 is ERROR.ERRORCODE, while it is ERROR.ROOTCAUSE.ERRORCODE in ColdFusion  MX. You can use <cfdump> to see all of the values.
Variables with more than 3 dots in name In ColdFusion 5 and earlier releases, you could have a variable with more that 3 dots in its name, such as in the following example:

<cfset a.b.c.d.e = "foo">
<cfoutput>
  "#a.b.c.d.e#"
</cfoutput>
Such variables fail in ColdFusion MX with the following error:
Element B.C.D.E is undefined in A
This is because the new structure auto-creation functionality is failing to properly create structures that are more than 3 levels deep.

Any variable with less than or equal to 3 dots in its name should work properly.
Binary values In ColdFusion MX, binary strings are represented as byte arrays (assign-by-reference), so you can manipulate them using standard CFML array logic. In ColdFusion 5, binary values are immutable (assign-by-copy).
Columns with the same name In all versions of ColdFusion, when two columns with the same name are returned from a database, the choice of the column selected for the ColdFusion result set is undefined (theoretically, it is random). However, in practice you could predict the column selection in earlier versions of ColdFusion. This is no longer the case in ColdFusion MX. Do not rely on a predictable selection of identically-named columns in any case; instead, use column aliases to remove all uncertainty.
Duplicate URL parameters ColdFusion MX handles duplicate URL parameters differently than in ColdFusion 5. In ColdFusion 5, calling Test.cfm?a=1&a=2 returns the value a=2 for the URL parameter; in ColdFusion MX, it returns the value a=1,2.
Reserved words in ColdFusion MX Currently in ColdFusion MX, you can create a variable with the same name as a scope (Application, CGI, Client, Cookie, Form, Request, Server, Session, URL, or Variables). The created variable is only visible if the Variables scope prefix is explicitly used; otherwise, an error results. However, scope names are reserved in ColdFusion MX and might be enforced in a later version. Therefore, Macromedia strongly recommends that you do not use scope names as variable names.

Also, in a Query of Queries, you can no longer use SQL reserved words as variable or column names, unless they are escaped using brackets []; for example, SELECT [count] FROM MYTABLE.

For more information about reserved words in ColdFusion MX, see Chapter 2: Elements of ColdFusion and Chapter 22: Using Query of Queries in Developing ColdFusion MX Applications with CFML.
Scheduler data In ColdFusion 5, all scheduler information is stored in the registry. Each of the registry keys has a name without spaces; for example, StartDate. In ColdFusion MX, the scheduler information is stored in an XML file, and the format of what formerly were registry keys has also changed, so that all compound variable names are separated with underscores; for example, Start_Date. This only affects applications that use the scheduler information in the ColdFusion 5 registry.
Use operating system logging facilities
option in the ColdFusion Administrator
(Windows only) In the ColdFusion Administrator, on the Debugging & Logging > Logging Settings page, there is no longer an option to Use operating system logging facilities, because ColdFusion MX always uses the Windows logging facilities.
Verity searches (Windows only) If you previously added cfusion\bin or cfusion\verity\_nti40\bin to your system path for ColdFusion 5, you must remove it before upgrading to ColdFusion MX in order for ColdFusion MX to find the correct Verity DLL files.
Literal values in COM methods In ColdFusion, you could use a literal value when calling a Component Object Model (COM) method that takes a simple value that is passed by reference. ColdFusion MX has stricter rules on how variables can be passed to COM objects, and does not support this. Instead, if a method argument is passed by reference, you must use a variable as the argument in your CFML code.

For example, you might declare a COM method in Visual Basic as follows:

Public Sub SetString(sName As String) 
     _sName = sName 
End Sub
In ColdFusion, you could use code like the following to pass the name "Robert" to the SetString COM method:

<cfobject action="create" type="com" class="comtest.clstest" 
  name="otest" context="inproc"> 
<cfscript>
  otest.SetString("Robert"); 
</cfscript>
In ColdFusion MX, you must put the string value in a variable and use the variable name when you call the COM method, as follows:

<cfobject action="create" type="com" class="IEcomtest.clstest" 
  name="otest" context="inproc"> 
<cfscript> 
  stringVar = "Robert"; 
  otest.SetString("stringVar"); 
</cfscript>
Note: You must put the variable name in quotes in the method call. Doing so prevents ColdFusion MX from evaluating the variable and passing its value as a string to the method.
Japanese version,
sort functions
Sort functions such as ListSort() and ArraySort() return items in a slightly different order in ColdFusion MX than they do in the Japanese version of ColdFusion 5. This is because ColdFusion MX sorts characters by their Unicode char number, whereas the Japanese version of ColdFusion 5 sorts characters by their shift_jis char number.
LSIsDate() In ColdFusion MX, LsIsDate("3-1-2002") returns No, whereas in ColdFusion 5 it returns Yes. This function only accepts the hyphen character (-) as a date delimiter in the Dutch(Standard) and Portuguese(Standard) locales.
DateFormat(), TimeFormat()
LSDateFormat(), LSTimeFormat()
If an invalid mask is passed into one of these functions (for example, "dd-mm-yymm"), the function outputs the invalid characters in ColdFusion 5 and ColdFusion MX. However, ColdFusion 5 delimits each character of the output with an apostrophe (') character.
ParameterExists() ParameterExists() is deprecated in ColdFusion MX. Use IsDefined() instead.
cfdirectory When action=list, cfdirectory only reports the ReadOnly and Hidden attributes in Windows and on UNIX. On UNIX, it returns the mode and attributes as empty. If you need additional information about directories on a Windows local machine, use cfexecute. On UNIX, use cfexecute and ls -l.
cfheader To access the status code header for a page that was set with the cfheader statusCode attribute, use
<cfdump var="#cfhttp#"> or <cfdump var="#cfhttp.statuscode#">.
Do not use <cfdump var="#cfhttp.responseheader#"> .

Note: The statuscode value that is set with the statusCode attribute is not the same as the status_code value that is set with the name attribute.
cfloop This tag no longer returns struct keys in alphabetical order, as in ColdFusion 5. It returns struct keys in no particular order, contrary to what is published in Migrating ColdFusion 5 Applications.

Back to Contents


 

Late-Breaking News

The following table lists the changes to these release notes from the version that was installed with ColdFusion MX.


Product Area Change
Documentation The latest changes to the ColdFusion MX documentation are listed in the Documentation Updates page (TechNote 22811) and the Documentation Additions page (TechNote 22993) on the Macromedia website.
Installation Added Installing and Configuring ColdFusion MX > Installation notes for all platforms > Deleting the cfusion directory after upgrading ColdFusion MX.
Updated note about multihomed servers in Installing and Configuring ColdFusion MX > Installation notes for all platforms > Configuring web servers.
Added a note about the GUI installer for UNIX in Installing and Configuring ColdFusion MX > UNIX Installation notes > Installing ColdFusion MX on UNIX.
Updated the note about how to configure IIS for ColdFusion MX in Installing and Configuring ColdFusion MX > Windows installation notes > Configuring IIS for ColdFusion MX. (The note now clarifies that you must do this only if you did not select IIS during installation.)
Migrating Verity collections Added Verity Searches > ID 46057.
ParameterExists() Added Migrating from ColdFusion > ParameterExists().
Character encoding Added Localization > ID 44878. Fixed in Updater 1.
DB2 UDB for OS/390 Added Configuring Data Sources in ColdFusion MX > ID 45314.
Database drivers for DB2 and Informix Added Configuring Data Sources in ColdFusion MX > ID 45290.
Verity for Japanese and Korean editions on UNIX Updated Localization > ID 37650.
Example applications Added note on modifying locale for localized versions running on Solaris > ID 48101
Sandbox security Added note about sandbox security only applying to ColdFusion resources in Other Known Issues > ColdFusion Administrator Security Settings

Back to Contents

 

Performance and Scalability

The following table contains information for maximizing performance with ColdFusion MX.


Product Area Notes
Installed JRE By default, ColdFusion MX installs with the SUN 1.3.1_03 Java Runtime Environment (JRE) on all platforms except HP-UX. (ColdFusion MX on HP-UX uses the HP JRE release 1.3.1_01.) Macromedia tests show that nearly every CFML operation exceeds ColdFusion 5 in performance and scalability when ColdFusion MX uses this JRE. However, advanced ColdFusion MX users might want to experiment with other JREs (for example, the IBM 1.3.x JRE with Windows or Linux) to achieve even faster runtime performance. You can switch JREs (also known as virtual machines or VMs) in the ColdFusion Administrator on the Java and JVM page—just set the Java Virtual Machine Path option to the \JRE directory of the JRE that you want ColdFusion MX to use and then restart the server.

Caution: If you specify an invalid path, you cannot start ColdFusion MX. To remedy this problem, correct the path in the cf_root\runtime\bin\jvm.config file in Windows or the cf_root/runtime/bin/jvm.config file on UNIX.
Simultaneous Requests option By default, ColdFusion MX installs with the Simultaneous Requests option in the ColdFusion Administrator set to 10. This setting should provide reasonable performance for most applications on 1- or 2-CPU machines, but for large symmetric multiprocessing (SMP) machines, or for applications with more input and output (I/O) or CPU-bound characteristics, you can achieve significant performance gains by adjusting this setting. As a general guideline to adjust this setting, start with a value of 3-5 for each CPU, and fine-tune from there as necessary.
Trusted Cache option For maximum performance in a production environment, make sure that the Trusted Cache option in the ColdFusion Administrator is enabled.
Isolation levels Macromedia tests indicate that some database-intensive applications can improve their performance by changing the default Isolation Level of their data sources from the implicit default setting of READ_COMMITTED to READ_UNCOMMITTED.

To change this setting, edit the cf_root\runtime\servers\default\SERVER-INF\jrun-resources.xml file in Windows or the cf_root/runtime/servers/default/SERVER-INF/jrun-resources.xml file on UNIX. Add the following line to the definition of your data source (as its own line):
<isolation-level>READ_UNCOMMITTED</isolation-level>
Note: If you edit your data source definition later using the ColdFusion Administrator, the definition is saved without the Isolation Level setting; you must add this value to the jrun-resources.xml file again.
If you do not want to change the isolation level for the entire data source, you can explicitly set the isolation level for a transaction by specifying the isolation attribute with the cftransaction tag.

The default isolation level of the JDBC database drivers in ColdFusion MX might differ from the ODBC and native drivers in ColdFusion 5 that you used to connect to your database. Higher isolation levels result in stronger data consistency but less concurrency, which can impact performance. Setting the isolation level to lower levels for a transaction can improve performance.
Accessing Component Object Model (COM) objects The Java call to create a new COM object instance can take substantial time. As a result, creating COM objects in ColdFusion MX is substantially slower than in ColdFusion 5. You can work around this issue to improve COM performance to near ColdFusion 5 speed under certain circumstances: If your COM object can be shared throughout your application—that is, it does not need to be created for every request or session—create the object in the Application scope and use the same object throughout the application. This technique works only for COM objects that are designed for sharing.

Because the object can be accessed from multiple sessions simultaneously, you must also consider the following threading and locking issues:
  • For best performance, the object should be multi-threaded. Otherwise, only one request can access the object at a time.
  • Whenever your code accesses common data, for example, if all application sessions access the same Excel spreadsheet, you must lock the code that accesses the data. In general, you do not have to lock code that uses a shared object if data is not shared by multiple requests.
This technique is documented in detail in Technical Brief 22921.

You can also improve performance of all COM objects by creating Java stubs, as described in Technical Brief 22922. Java stubs do not improve processing time as much as sharing the COM object, but you can use them with all COM objects. Also, you must generate Java stubs to correctly access complex COM objects that do not properly make all their features available through the COM IDispatcher interface. Therefore, to get the greatest performance increase and prevent possible problems, combine the two techniques.

Back to Contents


 

Localization

The following table describes the known localization issues in ColdFusion MX.

Notes:

  • In this section, "double-byte" refers to specific double-byte encodings that are used for Asian languages (for example, shift_jis and euc_kr).
  • In this section, cf_root refers to the directory in which you installed ColdFusion MX. By default, this is C:\CFusionMX on Windows and /opt/coldfusionmx on UNIX.

Issue ID
When submitting data through a form using the post method, and when enctype="multipart/form-data", character encoding is not handled correctly. To remedy this, use code like the following example instead of using SetEncoding:

<cfscript>
function getMultipartFormParameter(key, encoding)
{
	param = key.getBytes(encoding);
	value = evaluate(toString(param, "ISO-8859-1"));
	param = value.getBytes("ISO-8859-1");
	return toString(param, encoding);
}
</cfscript>
44878
When using the SUN JRE 1.3.1 on an English(UK) locale, the LSIsDate function returns False for a date that has a one-digit month or day (for example, 1/1/01). To work around this, insert a zero in a one-digit month or day (for example, 01/01/01). 38440
The ParseDateTime function does not handle Japanese formatted dates in ColdFusion MX. You must use the LSParseDateTime function when using Japanese dates. 34000
ColdFusion MX does not support using double-byte characters in links. 36913
You cannot use cfinclude to include a file with a double-byte file name. 36910
If an invalid mask is passed into LSTimeFormat() or LSDateFormat (for example, "dd-mm-yymm"), the function outputs the invalid characters in both ColdFusion 5 and ColdFusion MX. However, ColdFusion 5 delimits each character of the output with an apostrophe (') character. 36388
The Encrypt and Decrypt functions do not work with double-byte character sets. If you pass a string containing double-byte characters to the Encrypt function, and later pass the encrypted value to the Decrypt function, the string is not properly decrypted. 38614
When reading and writing a binary file, you should specify ReadBinary in the action attribute of cffile and then create the new file, as the following example shows:

<cffile action="ReadBinary" variable="x" file="c:\input-binaryfile">
<cffile action="write" output="#x#" file="c:\output-binaryfile">


On computers that do not use a Cp1252 file encoding by default (like computers that are set to work with Japanese), specifying action="read" in the cffile tag for a binary file will corrupt the file.
39473
(Windows) If you are using the Microsoft Access driver or ODBC Socket driver on a multi-byte character set operating system, you must do the following:
  1. Start the ColdFusion MX ODBC Server and ColdFusion MX ODBC Agent services, if they are not already running.
  2. In a command prompt, enter the following command:
  3. cf_root\db\slserver52\admin\setcp.bat OS
  4. Stop the ColdFusion MX ODBC Server and ColdFusion MX ODBC Agent services.
  5. Start The ColdFusion MX ODBC Server and ColdFusion MX ODBC Agent service.
This is what the setcp.bat file does: This file sets the service code page for the ODBC server that is licensed with ColdFusion MX. It takes one parameter; the valid values for this parameter are OS and Default. If no parameter or an invalid value is passed, the service code page is returned to its default state—that is, no setting ServiceCodePage OS is used for multi-byte character set operating systems like Japanese or Korean. ServiceCodePage Default supports only ASCII/EBCIDIC transliteration.
39730
39735
(Windows) On a multi-byte operating system, you can change the ColdFusion MX ODBC services (SequeLink) to multi-byte code page support mode. To do so, run the following command from a command prompt:
cf_root/db/slserver32/admin/setcp.bat OS
You can go back to the default by executing the setcp.bat, either with no parameters or with Default as the parameter, as in the following sample command:
c:/cfusionmx/db/slserver32/admin/setcp.bat Default
Make sure that both the ColdFusion MX ODBC Agent and ColdFusion MX ODBC Server services are running when you execute the commands. After executing the commands, you must restart both services for the change to take effect.
38855
For the example applications to work correctly on Solaris, the
ASCII (ISO8859) locale should be used for French and German. For Japanese
and Korean, use ja_JP.eucJP, and ko_KR respectively.

Choosing (UTF-8) causes the pages to fail silently without rendering
any output in the browser.

48101
In the Japanese and Korean versions of ColdFusion MX, using Verity to index and search double-byte characters (for example, Japanese or Korean text) is not supported on Solaris and Linux. 37650

For information about localization changes from ColdFusion 5 to ColdFusion MX, see the Locales section of Migrating ColdFusion 5 Applications.

Back to Contents



 

Configuring Data Sources in ColdFusion MX

The following table lists the known issues for configuring data sources in ColdFusion MX.


Issue ID
Installing ColdFusion MX for J2EE on the same server as ColdFusion MX standalone overwrites all ODBC (SequeLink) services. 48232
A data source that was created with an early beta release of ColdFusion MX might have too short of a connection timeout period for it to function as a client variable store. Delete and recreate any data source that was created with an early beta version before you designate it as a client variable store. 36167
When using Microsoft Access as a client store, an error is generated if the cumulative size of client variables exceeds 255 characters. 45548
The (OEM) JDBC Microsoft SQL Server driver in ColdFusion MX does not support SQL Server 6.5. If you run a query using this driver, the following error is thrown:
The SQL statement [ select 1 ] caused an database query exception.

java.sql.SQLException: [Microsoft SQL Server] Login failed.
RAW_TRACE at coldfusion.tagext.lang.IncludeTag.doStartTag(Unknown Source)
PROBLEM java.lang.NumberFormatException: at coldfusion.tagext.lang.IncludeTag.doStartTag(Unknown Source)
28436
ColdFusion MX does not support DB2 UDB for OS/390. 45314
You must add the following line to the connectstring for a DB2 Data Source Name (DSN) (under Advanced Settings in the ColdFusion Administrator):
CollectionID=default;packageName=<pkgname>;CreateDefaultPackage=false
where pkgname is the name of the package (maximum of 7 characters) that the driver uses to process SQL statements.

If neither a CollectionID or packageName already exists, set CreateDefaultPackage=true for the first connection, and then modify the data source and set CreateDefaultPackage=false.
36798
For the DataDirect JDBC drivers for DB2 and Informix, there is a problem with the SetTransactionIsolation method that prevents ColdFusion MX from dropping dead connections from the database connection pool before the connection timeout expires.

If you see the following error message repeatedly when a template connects to a database, deselect the Maintain Connections option for the data source. If you do not want to do this for performance reasons, you can lower the Timeout setting for the data source from the default of 20 minutes to 1 or 2 minutes. This way, if your database connections are dropped by a database server event, your ColdFusion MX server will recover in 1 or 2 minutes instead of 20.
[Macromedia][Oracle JDBC Driver]Connection reset by peer: socket write error
Note: It is expected that this message appear once for every connection in the pool that has had its communication with the database server interrupted. However, for DB2 and Informix you continue to see the message until all the connections have timed out.
45290
The Sybase JDBC connection requires a stored procedure on the Sybase server that does not get installed by default on Sybase 11.9 or higher. ColdFusion MX ships this stored procedure in the directory <install dir>/db/sybase. If, when creating a data source, you get an error message stating that procedure 'sp_default_charset' is not found, install this stored procedure on Sybase. 32230
Sybase servers that are configured to use the CP437 character set might fail to connect. If you receive the following error message when you try to connect to your Sybase server, you must update your \lib\macromedia_drivers.jar file.
[Macromedia][Sybase JDBC Driver]Character set CP437 not found in macromedia.util.transliteration.properties.
A Technical Brief about this issue is forthcoming, which will explain the required changes.
35691
(Windows NT 4.0, Windows 2000) To work with ODBC data sources, run a recent version of Microsoft Data Access Components (MDAC) and Jet. Otherwise, you might receive the following error:
Connection verification failed for data source: exampleapps [MERANT][SequeLink JDBC Driver] [ODBC Socket][Microsoft][ODBC Microsoft Access 97 Driver] Can't open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt. The root cause was that: null
You can download these from the following locations:
 
In Windows 98/ME, there is no SequeLink driver. Select JDBC-ODBC bridge instead of ODBC Socket.  
In Windows 98 and Windows ME, you cannot use cfinsert and cfupdate against a Microsoft Access database; you must use cfquery instead. The JDBC-ODBC bridge database driver that is used for Access databases on these platforms does not work with cfinsert and cfupdate with the lastest MDAC 2.7 and JetEngine 4.0 SP 3.

The following are examples of using cfquery to insert and update data:

<cfquery>
  insert into tblEmp (employee_id, firstname, lastname, 
    department) values (#empid#,'#fname#','#lname#','#dept#')
</cfquery>


<cfquery>
  update tblEmp
    set firstname = '#fname#',
        lastname = '#lname#'
    where employee_id = #empid#
</cfquery>
45486

Back to Contents


 

Web Services

The following table lists the known issues for using web services in ColdFusion MX.

Issue ID
ColdFusion MX does not support the .NET dataset data type. Make sure that you do not have a CFML template consuming a .NET web service that expects a dataset argument. 39621
Consuming a ColdFusion Component (CFC) web service that returns a CFC instance will throw a Class Not Found error when the CFC is in the virtual path. To work around this, refer to the CFC with the absolute path, not a relative path. 45505
To consume a web service that is implemented in a technology other than ColdFusion MX, you must set the following web service options:
  • Use RPC as the SOAP binding style and use encoding as the encodingStyle
  • Use document as the SOAP binding style and use literal as the encodingStyle
The following example shows a portion of the WSDL file for the BabelFish web service:


<binding name="BabelFishBinding" type="tns:BabelFishPortType">
  <soap:binding style="rpc" 
     transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="BabelFish">
    <soap:operation soapAction="urn:xmethodsBabelFish#BabelFish" />
    <input>
      <soap:body use="encoded" namespace="urn:xmethodsBabelFish"
      encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
    </input>
    <output>
      <soap:body use="encoded" namespace="urn:xmethodsBabelFish"
      encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
    </output>
  </operation>
</binding>

The WSDL file for the BabelFish web service is compatible with ColdFusion MX because it uses RPC as the binding style and encoding as the encodingStyle.
 
You cannot use the cfinvoke tag attributes for username and password to invoke a secured web service. 37005
Avoid non-alphanumeric characters such as the underscore character (_) in ColdFusion Component names, method names, and argument names. 44924
ColdFusion MX does not have access to files under web server virtual directories. For example, if a web server has a virtual mapping /myvirtual that points to c:/myvirtual, ColdFusion MX cannot include c:/myvirtual/index.cfm using the following call:
<cfinclude template="/myvirtual/index.cfm">
Also, if there is a component file c:/myvirtual/bank/account.cfc, you can access the file directly as a web service (http://myserver/myvirtual/bank/account.cfc?wsdl), or by using URL component invocation (http://myserver/myvirtual/bank/account.cfc?method=deposit&amount=300). However, the component file cannot be referred to by another component or cfml page as myvirtual.bank.account. This is also true if such referring component would be invoked as a web service.

Either avoid web server virtual directories if the resource in these should be accessed internally by other ColdFusion MX resources, or create a ColdFusion mapping with the same name and location as the web server mapping.
44546

Back to Contents


 

ColdFusion Administrator

The following table lists the known issues for the ColdFusion Administrator:


Issue ID
The Administrator must reside in its default installation path (.../CFIDE/administrator/) in order for it to function properly.  
If your default web browser has pop-up windows disabled, the ColdFusion Administrator might not run the first time after you install. To remedy this, enable pop-up windows in your browser and run the ColdFusion Administrator. After running the ColdFusion Administrator for the first time, you can disable pop-up windows in your browser again. 45481
(Windows only) You must provide a username for Microsoft Access and ODBC Socket Data Source Names (DSNs), even if the data sources do not require any user authentication. Provide a username as follows:
  • Access DSN—Select the Use Default Username option; OR show the Advanced Settings section and enter a username in the ColdFusion Username field.
  • ODBC Socket DSN—Select the Use Trusted Connection option; OR show the Advanced Settings section and, in the Username field, accept the default username (system) or enter a username.
45484
On the System Probes page, if you change the URL, username, or password for probe.cfm, you must trigger an update for each existing probe by editing the probe and clicking Submit. 39738
You cannot archive or deploy the following: System Probes, CORBA Connectors, Web Services, and the following settings: Server Settings > Settings > Simultaneous Requests; Server Settings > Basic Security > Security Sandbox - Enable ColdFusion Security checkbox; Server Settings > Debugging > Enable Robust Exception Information, Enable Performance Monitoring, and Enable CFSTAT. This will be fixed in a future version.

You cannot deploy Server Settings > Basic Security > CF Admin Password and RDS Password. This is intended behavior.
 
You cannot use single quotes (') in named resources (for example, data sources, probes, Verity collections, and so on). Using a single quote--for example, creating a scheduled task with name="Let's Rock"--causes a WDDX parsing error when the server restarts, and the service whose data contains the single quote fails.

To remedy this, back up and edit the XML file for the failing service. For example, if the Cron service is failing after naming a scheduled task "Let's Rock", make a backup copy of cf_root\lib\neo-cron.xml and edit the original version of the file to change every instance of "Let's Rock" to "Lets Rock".
45409
Currently, when you register or edit a CORBA connector, the Classpath field is not used. Specify CORBA (and all other) classpaths on the Java and JVM page instead.  
In the Verity Collections page, when you map an unregistered collection, select the same language that was used to create the collection. Currently, if you select a different language to map to a collection, no error appears. However, if you map, or subsequently index, a collection in a language other than the one in which it was created, you might damage the collection's index and your ability to search the collection.

Examples of unregistered collections include:
  • Collections on another server
  • Collections created with mkvdk
Note: Collections that were migrated from ColdFusion 5.0 do not have this problem.
 

Back to Contents


 

Graphing in ColdFusion MX

The following table lists the known issues for graphing in ColdFusion MX.


Issue ID
In the cfgraph and cfchart tags, ColdFusion MX only uses the values in the scaleFrom and scaleTo attributes as a starting point; ColdFusion MX considers the actual data values and the number of labels that need to be displayed and then determines the actual scaleFrom and scaleTo values. For example, ColdFusion MX adjusts the user-specified scaleFrom and scaleTo values to avoid cutting off decimal labels and data. 32837
If the legend for a pie chart contains long labels, the pie chart might appear distorted. To resolve this, increase its width by setting or increasing the value of the graphwidth or chartwidth attribute. 32835
The cffile tag has changed to use a different default encoding when writing to a file. Therefore, to write a generated graph to a file using the name attribute of cfchart, you now have to add the following attribute to the cffile tag: charset="ISO-8859-1". 38867

Back to Contents


 

Verity Searches

The following table lists the known issues for Verity searches in ColdFusion MX.


If you have Verity collections in a language other than English and you must migrate them to ColdFusion MX, do the following:
  1. Install ColdFusion MX.
    At the end of the installation, select the "Skip" migration option.
  2. Download the Verity language locale files from www.macromedia.com/go/verity, and install the Verity language locale files.
    For instruction, see "Installing Macromedia ColdFusion MX".
  3. Enable the migration option again, as described in Installing Macromedia ColdFusion MX. Then migrate your settings from your previous version of ColdFusion.
46057
On HP-UX, using the cfindex tag with the attribute type="custom" does not work. (This attribute is used to index collections for database query results, QueryNew object query results, CFLDAP query results, and CFPOP query results.)
The following attributes of the cfindex tag are operational:
  • type="file" – to index a collection for a specific, fully-qualified path with a file name
  • type="path" – to index a collection for specific, fully-qualified path
45663
(Windows) You cannot index collections when the combined path and collection name for the collection exceeds 91 characters. 45654
Verity does not support VSpider on Linux. Also note that Linux does not support PDF files.  
You might receive the following error when attempting to create a Verity collection or to migrate a Verity collection:

Error: An error occurred while performing an operation in the Search Engine native library. coldfusion.tagext.lang.CFCollectionTagException: Error # -10.

To work around this issue, locate the file [installdrive]:/winnt/system32/VDK200.DLL, and rename it to VDK200.dll_old. Restart the ColdFusion server. This is a conflicting file from a previous version of ColdFusion.
38917

Back to Contents


 

Other Known Issues

The following table lists the general known issues in ColdFusion MX for this release:


Product Area Issue ID
Memory usage ColdFusion MX requires more memory to run than ColdFusion 5.
For more information, see the system requirements listed in Installing ColdFusion MX.
35820
ColdFusion Components (CFCs) In this release, within a component <cfset x = 1> puts x in the Variables scope local to the component and <cfset variables.x = 1> puts x in the Variables scope of the calling page.

Once this bug is fixed, both <cfset x = 1> and <cfset variables.x = 1> will do exactly the same thing and put x in the Variables scope local to the component.

Until this bug is fixed, avoid using <cfset variables.x = 1>, as this would conflict with <cfset x = n> in the calling page.
45387
When using components, or when interoperating with Java case-sensitive containers (for example, Hashtable), the dot notation fails to resolve the keys. For example, (newTC.foo.moo) might not be found even though it exists, as in the following code sample:

<cfset newTC = createObject( "component", testComponent ) /> 
<cfset foo = newTC.foo.moo />
To work around this, use the equivalent bracket notation; for example, (newTC["foo"]["moo"]).
45461
Initializing arrays A heterogeneous array initializer, such as a[1]["moo"][1] (where a has not been defined), throws an exception. To work around this issue, assign the heterogeneous parts in separate assignment statements, as in the following example:

<cfset a1[1] = structNew()>
<cfset a1[1]["moo"][1] = 12>
31535
Server-side validation for post forms When using ColdFusion's server-side validation to validate post forms (for example, input type="hidden" name="myInput_require"), ColdFusion MX ignores the custom message that you place in the value field, and instead displays a message indicating that the field is required. 45443
Server-side redirects Using getpageContext().forward('<your page name>.cfm') to do a server-side redirect throws an "err.io.short_read" error if there is any data in the Form scope. 45337
File Server Browser Applet The File Server Browser Applet (allaire.cfide.CFNavigationApplet) does not render icons properly in Netscape 4.x. 31958
User Defined Functions (UDFs) An error results if you have a UDF with N defined arguments, you pass N+1, and then call structKeyList with the arguments. The same error results if you have cfdump inside the function with an undeclared argument. 44635
cfhttp cfhttp has some behaviors which are subject to the performance of the underlying Java Runtime Environment (JRE). For example, when using an IBM JRE, cfhttp does not properly connect to "https" URLs, but it does when using a SUN JRE. However, when using a SUN JRE, cfhttp does not always return a 404 status code page when an http request to a URL contains a nonexistent page, but it does when using an IBM JRE.

Finally, the timeout attribute does not work with the SUN JDK versions 1.3 and 1.3.1_03. For the timeout attribute to be functional, you must use JDK 1.4.0.
37683
37684
30267
cfimport When importing custom tags using cfimport, you cannot use the namespace "CF" as this is reserved for ColdFusion custom tags. 45544
cfldap In ColdFusion MX, cfldap does not support SSL v3 client authentication (certificate authentication), as in ColdFusion 5. In ColdFusion MX, cfldap only supports SSL v2 (basic username/password authentication over SSL). 38693
Updating or modifying an LDAP server using cfldap might cause the server to hang on HP-UX 11. This is a known JNDI issue. To work around this, add the -XdoCloseWithReadPending JVM argument in the Java & JVM page in the ColdFusion Administrator. 45384
ExpandPath()
GetRealPath()
If you use ExpandPath() or GetRealPath() for a directory that exists in both the ColdFusion MX web root and the web root for an external web server, and you are using the external web server, the functions return the directory under the ColdFusion MX web root. For example, if you have C:\CFusionMX\wwwroot\foo and C:\inetpub\wwwroot\foo, and you have configured IIS for ColdFusion MX, then ExpandPath("foo") returns C:\CFusionMX\wwwroot\foo.  
CORBA invocations When using CORBA (Visibroker 4.5), an "out" call for an array of structs or multi-dimensional array throws a CORBA_UNKNOWN exception. Use "inout" instead. This is a Visibroker bug.  
When using the CORBA IOR method in CreateObject/cfobject, make sure that you use an IOR that has been obtained in the same environment as your deployment environment. Visibroker IORs are not interchangeable. If you decide to deploy your CORBA server on a different computer, you must obtain new IORs. Visibroker IORs contain IP address information. 36866
ColdFusion Administrator Security Settings If you enter a server IP address for sandbox security (under Sever/Ports) and forget the port number, you will receive an error when you try to edit this entry. To work around this issue, delete the server IP address and re-enter it with the port number. 39860
Sandbox security only applies to ColdFusion resources, such as CFML pages, CFMX data sources, and CFML tags—not to application server resources, such as data sources defined in the application server, servlets, JSPs, EJBs, and so on.  
Example applications on UNIX (Unix)You must disable security to use the Pointbase data sources for the example applications (Sandbox Security in the Enterprise edition, Resource Security in the Professional edition). 45527

Back to Contents