 |
| 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, we’ve assembled Getting
Started information geared to fit your needs—whether
you’re 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. |
|
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:
- Run cf_root/bin/Remove_all_connectors.bat
- 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:
- Start the ColdFusion MX ODBC Server and ColdFusion MX
ODBC Agent services, if they are not already running.
- In a command prompt, enter the following command:
cf_root\db\slserver52\admin\setcp.bat OS
- Stop the ColdFusion MX ODBC Server and ColdFusion MX
ODBC Agent services.
- 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 DSNSelect the Use
Default Username option; OR show the Advanced Settings
section and enter a username in the ColdFusion Username
field.
- ODBC Socket DSNSelect 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:
- Install ColdFusion MX.
At the end of the installation, select the "Skip"
migration option.
- 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".
- 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:
| | | |