Migration - Upgrades

How to Migrate from ColdFusion 2016 to ColdFusion 2023

Upgrading from ColdFusion 2016 to ColdFusion 2023 is more than a version bump; it’s a move to a platform with stronger Security, modern Java compatibility, improved Performance, a modular installation model, and long-term support. ColdFusion 2016 is out of mainstream support, and many third-party libraries, JDBC drivers, and operating systems have moved on. Migrating ensures your applications stay secure, maintainable, and easier to deploy—on VMs and in containers.


Prerequisites / Before You Start

  • Confirm supported platforms
    • Operating systems: Verify that your OS version is supported by ColdFusion 2023.
    • Web servers: IIS (8.5+), Apache HTTPD (2.4+). Plan for new connectors.
    • Java: ColdFusion 2023 runs on a bundled JRE and supports modern LTS JDKs; do not point CF 2023 to the old Java 8 from CF 2016.
  • Inventory and backups
    • Full VM or server snapshot (recommended).
    • Backup ColdFusion 2016 Configuration:
      • cfusion/neo-*.xml files (Administrator config)
      • jvm.config, server.xml (Tomcat), workers.properties (if used)
      • Web Server config and site folders
      • CAR archives (if you use Packaging & Deployment)
      • Scheduled tasks, mappings, Custom tags, custom logs, mail spool
      • Backup databases and validate restore procedure.
  • Dependencies and integrations
    • JDBC drivers: Replace unsupported drivers (e.g., jTDS) with supported ones.
    • Libraries and .jar files: Ensure Java 11/17 compatibility.
    • Messaging, caches, search: Redis/Memcached/Solr versions and endpoints.
    • External services: Payment gateways, S3/Azure, SMTP, SAML/OAuth providers.
  • Environments
    • Create a staging environment to mirror production.
    • Plan a side-by-side install rather than in-place replacement.
  • Licensing
    • Ensure valid ColdFusion 2023 license keys (Developer is free; Standard/Enterprise require purchase).
  • Security posture
    • Decide on the “Secure Profile” and lockdown settings during install.
    • TLS 1.2 or higher everywhere (JDBC, SMTP, HTTP clients).
  • Team and timeline
    • Change freeze during cutover.
    • Rollback plan with clear steps.
    • Monitoring access after go-live.
See also  How to Document a ColdFusion Migration Process

High-Level Differences You Should Expect

  • Runtime and container ColdFusion 2023 supports Java 11/17 and newer Tomcat versions, with official Docker images and a modular package manager.
  • Security Hardened default settings, secure profile, stricter parsing, SameSite cookie support, new lockdown Features.
  • Packaging ColdFusion Package Manager (cfpm) installs optional Features on demand.
  • Connectors New IIS/Apache connectors (old ones must be reinstalled).
  • Deprecations Some legacy tags/functions are deprecated; use Code Analyzer to update your code.

Step-by-Step Migration guide

1) Assess and Plan

  • Catalog all servers, applications, integrations.
  • Identify high-risk areas (custom jars, JDBC drivers, schedulers, SOAP/REST endpoints).
  • Decide on target topology (VM or containerized).
  • Define success criteria and test cases.

2) Bring ColdFusion 2016 Up to Latest Update

  • Apply latest CF 2016 update.
  • Remove deprecated features.
  • Export settings using CAR archives.
  • Backup jvm.config, server.xml for reference.

3) Set Up a Parallel ColdFusion 2023 Environment

  • Install CF 2023 on a new server or path.
  • Use Production/Secure Profile.
  • Apply latest updates via Administrator or command line.

4) Install Optional Features with cfpm

  • List available packages:
    cfpm.bat list available
    
  • Install needed packages before importing settings.

5) Migrate Administrator Settings

Option A: Migration Wizard

  • Auto-detects old version and offers to migrate settings.
  • Review migration summary carefully.

Option B: CAR Export/Import

  • Export CAR from CF 2016, import into CF 2023.
  • Manually reconcile security, mail, JVM settings.

6) Rebuild Web Server Connectors

  • IIS: Backup config, run wsconfig.exe, verify mappings.
  • Apache: Run wsconfig.sh, restart Apache, test .cfm.

7) Update/Validate JVM and Tomcat Settings

  • Compare jvm.config, adjust heap sizes, GC tuning.
  • Use Java 11/17-compatible flags only.
See also  How to Roll Back a Failed ColdFusion Upgrade

8) Refresh JDBC Drivers and Datasources

  • Replace legacy drivers, enable TLS 1.2+.
  • Test connections in CF Administrator.

9) Deploy Application Code


10) Run Code Analyzer

  • Scan code for deprecated functions/tags.
  • Update libraries for Java 11/17 compatibility.

11) Validate Key Features

  • Test schedulers, mail, file I/O, PDF generation, REST/SOAP endpoints, caching, search, etc.

12) Performance tuning

  • Adjust JVM heap, Tomcat connectors, CF caches.
  • Perform load testing vs CF 2016 baseline.

13) Security Hardening

  • Run Lockdown Tool.
  • Restrict admin access, enable Secure cookies, rebuild sandboxes.

14) Cutover and Rollback Plan

  • Schedule Maintenance window.
  • Final sync, DNS switch, monitor logs and metrics.
  • Keep CF 2016 available for fallback.

Practical Examples and Commands

  • IIS Backup
%windir%\system32\inetsrv\appcmd add backup "pre-cf2023"
  • Configure IIS Connector
"C:\ColdFusion2023\cfusion\runtime\bin\wsconfig.exe"
  • Configure Apache Connector
/opt/coldfusion2023/cfusion/runtime/bin/wsconfig.sh
writeOutput("OK:" & dateTimeFormat(now(),"yyyy-mm-dd HH:nn:ss"));

Risks, Common Issues, and How to Avoid Them

  • Java 11/17 compatibility → Upgrade libraries, remove obsolete flags.
  • Unsupported JDBC drivers → Replace jTDS with supported drivers.
  • Connector mismatch → Rebuild connectors with CF 2023 wsconfig.
  • File permissions → Pre-create directories with correct permissions.
  • Deprecated tags → Fix via Code Analyzer.
  • Encoding issues → Use UTF-8 everywhere.
  • 32-bit assumptions → Use 64-bit equivalents.
  • TLS/Certificates → Import required CAs to truststore.

Post-Migration Checklist

  • CF Administrator: Version check, secure profile, package installation.
  • Web Server: Connector validation, HTTPS testing.
  • Application Validation: Smoke tests, Scheduled tasks, email, reports.
  • Database: Test datasources, transactions, Slow queries.
  • Security: RDS disabled, cookies hardened, upload defenses.
  • Performance: JVM health, no recurring errors, normal latency.
  • Operations: Monitoring, backups, updated runbooks.
See also  How to Clean Legacy Code Before Migration

Additional Notes for Containerized Deployments

  • Use official Docker images.
  • Externalize settings with environment variables.
  • Use persistent volumes for logs, health checks for orchestrators.

Sample Migration Timeline

  • Week 1–2: Assessment, library upgrades.
  • Week 3: Build staging, migrate settings.
  • Week 4: Testing, tuning, security hardening.
  • Week 5: UAT, final validation.
  • Week 6: Cutover & monitoring.

Troubleshooting Tips

  • 500 errors after connector install → Check isapi_redirect or mod_jk logs.
  • PDF generation fails → Install required packages, validate fonts.
  • Outbound HTTPS fails → Import missing CAs, check TLS/SNI.
  • Scheduled tasks fail → Recreate tasks, verify URLs and credentials.
  • REST mappings missing → Re-register REST services.

FAQ

Q1: Can I do an in-place upgrade?

A: Side-by-side install is strongly recommended for safer rollback.

Q2: Do I need to recompile my code?

A: No, but update deprecated code and libraries for Java 11/17.

Q3: Which Java version should I use?

A: Use the bundled JRE or an Adobe-certified LTS JDK (not Java 8).

Q4: How long does a migration take?

A: Simple apps: days; complex integrations: several weeks.

Q5: What about Licensing?

A: Obtain valid ColdFusion 2023 keys. Developer edition remains free.

About the author

Aaron Longnion

Aaron Longnion

Hey there! I'm Aaron Longnion — an Internet technologist, web software engineer, and ColdFusion expert with more than 24 years of experience. Over the years, I've had the privilege of working with some of the most exciting and fast-growing companies out there, including lynda.com, HomeAway, landsofamerica.com (CoStar Group), and Adobe.com.

I'm a full-stack developer at heart, but what really drives me is designing and building internet architectures that are highly scalable, cost-effective, and fault-tolerant — solutions built to handle rapid growth and stay ahead of the curve.