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

ColdFusion MX for J2EE Release Notes

Last Modified: December 10, 2002

Welcome to Macromedia ColdFusion MX for J2EE Application Servers. These release notes contain the following information:


Contents
Introduction
Installation and Uninstallation
Migration
Late-breaking changes and additions

 

ColdFusion MX for J2EE Known Issues is a separate document, available at http://www.macromedia.com/go/cfmxj2ee-known_issues.

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. For additional support information, see ColdFusion MX TechNotes.


 

Introduction

Macromedia ColdFusion MX for J2EE Application Servers lets you add ColdFusion MX capabilities to your Java™ 2 Platform, Enterprise Edition (J2EE™) application server. ColdFusion MX for J2EE is a J2EE application that installs on top of your existing Java application server and provides development, deployment, and management services for ColdFusion MX applications.

By adding rapid server scripting capabilities to your existing J2EE infrastructure, you can increase your productivity while enjoying full access to the power of the J2EE platform. If you are already running ColdFusion, ColdFusion MX for J2EE lets you consolidate ColdFusion and J2EE applications onto a single, standards-based server environment. In addition, running ColdFusion MX on a J2EE application server offers performance gains over ColdFusion MX stand-alone.

 

ColdFusion MX evolution

ColdFusion MX for J2EE is the next phase of the ColdFusion MX evolution:

ColdFusion MX, released in May of 2002, was a major upgrade to the ColdFusion architecture, running with an embedded J2EE application server (JRun) and offering many other innovations, including ColdFusion Components (CFCs), Flash Remoting for creating Rich Internet Applications, and web services.
The initial release of ColdFusion MX for J2EE (also called phase 1) was released in September of 2002 and featured J2EE application server-specific installers that automatically installed and deployed the ColdFusion web application. This release supported JRun 4, IBM® WebSphere® Application Server version 4, and Sun ONE™ Web Server 6. Each application server had its own installer, documentation, and box.

This latest release of ColdFusion MX for J2EE (also called phase 2), released in December of 2002, leverages the portability afforded through the J2EE standard and supports a wider variety of application servers through a standardized install process. A single installer for each operating system provides support for all application servers and supported languages (English, German, French, and Japanese). Regardless of application server, the install creates either an enterprise application archive (EAR) file or two web application archive (WAR) files. You then use application server-specific deployment facilities to deploy the ColdFusion web application and perform additional configuration steps to enable graphing, COM, CFX, ODBC, and Verity support (not all platforms support these features). This release also includes a Java installer that can be used with multiple operating systems; for more information, see the following sections.

Note: The ColdFusion MX for J2EE box includes two CDs: CD 1 contains the phase 1 release, with individual installers for JRun 4, WebSphere Application Server version 4, and Sun ONE Web Server 6; CD 2 contains the phase 2 release with installers for Windows, Linux, and Solaris, and a platform-independent Java installer.

 

Platform Support

ColdFusion MX includes functionality that uses operating system platform-specific binary files. These platform-specific binary files are provided for Windows, Solaris, and Linux, and enable support for Verity, COM (Windows-only), C++ CFX files, cfreport, and ODBC integration. However, the phase 2 release of ColdFusion MX for J2EE also includes an installer that installs Java files only, which you can use on any platform supported by your J2EE application server (without support for Verity, COM, C++ CFXs, cfreport, and ODBC integration).

For more information on platform-specific installers, including the file names, see Installing and Using ColdFusion MX for J2EE.

 

Installing ColdFusion MX on other J2EE servers

The phase 2 release and its installation procedure have several advantages over the phase 1 release, including the following:

It supports ColdFusion sandbox security.
It supports serializable ColdFusion session data, which is required to support session failover in clustered servers.

Many developers and administrators prefer to deploy applications themselves.

For information on using the phase 2 installation and deployment process to install ColdFusion MX for J2EE on J2EE application servers that are not included in Installing and Using ColdFusion MX for J2EE, see the J2EE server certification and installation page on the Macromedia website. This page lists detailed installation, deployment, and configuration instructions for the J2EE application servers that have been tested by the ColdFusion QA team. At the time of this release, Macromedia has tested installing ColdFusion MX on the following additional J2EE application servers:

Macromedia JRun 4
IBM WebSphere Application Server 4

BEA Weblogic Version 6

Sun ONE Web Server 6

Sun J2EE SDK 1.3

Tomcat 4.1.12

 

Using ColdFusion MX for J2EE documentation

All ColdFusion MX documentation is available as a PDF file on the CD. The ColdFusion MX for J2EE install includes an HTML version of Installing and Using ColdFusion MX for J2EE but does not include HTML versions of the base ColdFusion MX document set. The default cf_root/cfdocs/dochome.htm page includes a link to a ZIP file that you can download to install a local HTML version of the complete ColdFusion MX document set. You can also access all ColdFusion MX documentation from the LiveDocs website.

The J2EE server certification and installation page on the Macromedia website contains updated installation and deployment information, including instructions for installing ColdFusion MX for J2EE Servers on additional application servers and any late corrections to Installing and Using ColdFusion MX for J2EE.

 

Other resources

The following online Macromedia resources will help answer questions as you begin working with ColdFusion MX for J2EE:

Online forums - Use the online forums at http://www.macromedia.com/go/prod_forums to share ideas and techniques with other users.
Support center - To learn more about ColdFusion MX, see the product information and FAQ at http://www.macromedia.com/software/coldfusion

Designer/Developer center - To learn all types of basic and advanced ColdFusion MX techniques, read the articles and white papers on the Designer & Developer Center.

Known Issues - The ColdFusion MX for J2EE Known Issues document, available at http://www.macromedia.com/go/cfmxj2ee-known_issues lists known issues with ColdFusion MX for J2EE Servers.

Documentation changes - The latest changes to the ColdFusion MX documentation are listed on the Documentation Updates page (TechNote 22811) and the Documentation Additions page (TechNote 22993) on the Macromedia website.

 

 

Installing and uninstalling

This section includes the following information:

A description of the resources to learn how to install ColdFusion MX for J2EE
A brief overview of the installation process

Detailed instructions on installing ColdFusion MX as an EAR file on Sun ONE Application Server 7

Additional steps for uninstalling ColdFusion MX on Windows that are not in Installing and Using ColdFusion MX for J2EE

 

Installation instruction resources

To install ColdFusion MX for J2EE, read these release notes, check for updated release notes on the Macromedia website for updated information, including information on installation. Then follow the installation, deployment, and configuration instructions in the following resources:

The Installing and Using ColdFusion MX for J2EE book provides instructions for using the phase 2 installers on the following J2EE application servers: IBM WebSphere Application Server version 5, IBM WebSphere Application Server version 4 (AIX only), Sun ONE Application Server 7, BEA WebLogic Server 7. This document includes a chapter with generic instructions for installing ColdFusion MX for J2EE on any J2EE-compliant application server on any platform. It also documents using the phase 1 installers for IBM WebSphere Application Server version 4 (Windows, Linux, and Solaris), Sun ONE Web Server 6, and JRun 4.

Note: See Deploying remote development services (RDS) and Other changes in these Release Notes for changes to the installation instructions in this book.

The Installing and Using ColdFusion MX for J2EE book is available from the following locations:

  • In the box - If you purchased a box version of ColdFusion MX for J2EE, this book is included with the product.
  • The initial install directory - The install procedure creates a directory that contains one or more ColdFusion MX archive files along with Installing and Using ColdFusion MX for J2EE as a PDF file.
  • LiveDocs - The Installing and Using ColdFusion MX for J2EE book is available on the LiveDocs website.

The J2EE server certification and installation page on the Macromedia website contains updated installation and deployment information, including the following:

  • Instructions for using the phase 2 installers to install ColdFusion MX for J2EE Servers on additional application servers, such as BEA WebLogic Server 6, JRun 4, and IBM WebSphere Application Server 4.
  • Any additional late corrections to Installing and Using ColdFusion MX for J2EE.
 

Installation overview

The following instructions provide a brief overview of the installation procedure:

1. If your J2EE application server is not already installed, install it and ensure that it is running correctly.
2.

Install, deploy, and configure ColdFusion MX for J2EE Application Servers.

The install procedure creates a directory that contains ColdFusion MX and the remote development services application in either an enterprise application archive (EAR) file or separate web application archive (WAR) files. To complete the installation of ColdFusion MX for J2EE, you must deploy the archive file and perform post-deploy configuration steps to establish application-server-specify JVM arguments and application classpath specifications.

3.

Running the ColdFusion MX Administrator is a good way to confirm a successful installation. (http://server:port/context-root/CFIDE/administrator/index.cfm, case-sensitive). In addition, you should also check your installation by running some simple ColdFusion templates. For example, pass some variables from a form to a database or perform a simple cfquery. This helps to ensure that ColdFusion MX is configured properly.

 

Installing and deploying ColdFusion MX as an EAR file on Sun ONE Application Server

ColdFusion MX for J2EE also supports EAR file deployment on Sun ONE Application Server 7. To deploy ColdFusion MX as an EAR file on Sun ONE Application Server version 7, perform the following steps:

1.
Install ColdFusion MX as an EAR file.
2.

Ensure that Sun ONE Application Server is started.

3.

Open the Sun ONE Administrator (http://hostname:4848).

4.

Navigate to the server Instance in which to deploy ColdFusion MX: App Server Instances > servername > Applications > Enterprise Apps.

5.

Click Deploy.

6.

Enter the fully qualified path to the cfusion.ear file.

7.

Click OK.

8.

The EAR deployment process might take a long time. A confirmation page displays when the process completes.

9.

Click OK again in the confirmation page to save your changes and deploy the application.

10.

Run the startup wizard.

11.

Follow the instructions in "Enabling specific ColdFusion MX functionality" of the "Installing on the Sun ONE Application Server 7" chapter of Installing and Using ColdFusion MX for J2EE.

 

Uninstalling from Windows

This section provides additional additional steps for uninstalling ColdFusion MX on Windows that are not included in Installing and Using ColdFusion MX for J2EE.

When you install ColdFusion MX for J2EE on Windows systems and select to install ODBC support in the Setup wizard, the wizard installs two Windows services that support the ODBC dirvers. If you uninstall ColdFusion MX, you must remove the services from Windows as part of the uninstallation process. Use the following procedure before you undeploy ColdFusion MX from your Application server:

1.
Open a Windows command line prompt and change to the cf_root\WEB_INF\cfusion\db\SequeLink Setup directory.
2.

Enter the following command:

RemoveSequeLink.bat

 



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 5, 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.
cfprocparam The dbVarName attribute is ignored in this version of ColdFusion MX because ColdFusion MX uses JDBC 2.2, which does not support the passing of named parameters. (ColdFusion 5 used a Sybase native driver.) As a work-around, you can pass parameters by position.


 

Late-breaking changes and additions

This section contains late-breaking information that is not provided in the standard ColdFusion MX for J2EE documentation. It includes the following information:

Changes to supported platforms
Deploying RDS

Other changes

 

Changes to supported platforms

Sun ONE Application Server 7 is supported on Windows XP, in addition to the operating system platforms listed in Installing and Using ColdFusion MX for J2EE.
The Installing and Using ColdFusion MX for J2EE book incorrectly lists support for IBM WebSphere version 4 on Redhat Linux 6.2 - 7.3. IBM only supports WebSphere version 4 for Redhat on 7.1 and 7.2.
 

Deploying remote development services (RDS)

When using WAR deployment, you must deploy one or both of the following WAR files:

cfusion.war - Contains the entire ColdFusion MX web application.
rds.war - Contains the RDS dispatch servlet, which redirects RDS request to the appropriate ColdFusion page.

The Installing and Using ColdFusion MX for J2EE book recommends WAR file deployment for Sun ONE Application Server 7 and WebLogic Server 7, but Chapter 3, "Installing on Sun ONE Application Server 7" and Chapter 4, "Installing on BEA WebLogic Server 7" do not explain deployment issues for rds.war. Also, Chapter 8, "Installing on Java Platforms" does not explain rds.war deployment on other J2EE application servers that require WAR file deployment.

When deploying WAR files directly, you deploy the rds.war file only if both the following statements are true:

You want to support RDS access to ColdFusion. Macromedia recommends that you not install RDS support on production servers.
You are deploying ColdFusion at a context root other than /. If you install ColdFusion MX at the / context root, you do not need the RDS dispatch servlet.

If either of these statements is false, you only have to deploy the cfusion.war file. If both are true, use the same procedure to deploy rds.war as you use to deploy cfusion.war.

Typically, you deploy rds.war in the same parent directory as you deploy cfusion.war. You must configure rds.war at the /CFIDE (all uppercase) context root. To ensure a context root of /CFIDE, you may need to rename rds.war to CFIDE.war when using autodeploy with certain application servers.

For more information on RDS and configuring RDS support, see the "Using RDS" discussion in Chapter 10 in Installing and Using ColdFusion MX for J2EE.

 

Other changes

J2EE data sources can now be directly used from CFQuery by using the fully qualified JNDI name.
Sandbox security no longer requires post installation steps on most application servers. However, the application server must run a security manager (that is, an implementation of java.lang.SecurityManager) for full sanbox security.
With most J2EE application servers, you do not need to grant everyone full security permissions for accessing class files by editing your application server policy file to specify java.security.AllPermission. However, you still must grant these permissions to enable ColdFusion functionality, including the ColdFusion MX Administrator, on some application servers, including Sun ONE Application Server 7.
The Installing and Using ColdFusion MX for J2EE book states that WebLogic jCOM is supported as a means of calling COM objects when running on WebLogic 7. While it is technically possible to use jCOM, this technology has not been tested with ColdFusion MX for J2EE and is not supported.