Troubleshooting

How to Fix ColdFusion Service Not Responding After Patch

Overview of the Problem

When the ColdFusion service is “not responding” after a patch, you typically see one or more of the following: the Windows or Linux service appears to be running but the ColdFusion Administrator and sites time out; the service fails to start; CPU spikes and the service becomes unresponsive; or the built-in web server on port 8500 and/or web server connectors (IIS/Apache) no longer respond. This often follows a cumulative update (hotfix) applied via the ColdFusion Administrator, CF Package Manager (cfpm), or the offline installer.

Why it happens: ColdFusion bundles Tomcat and depends on a specific Java version, service wrapper, connectors, file permissions, and Configuration files (jvm.config, server.xml). A patch can adjust these components, cause version mismatches, lock files, update connector binaries, or alter startup parameters. Any misalignment can prevent Tomcat from starting correctly or handling requests, leading to a “Service not responding” condition.


Possible Causes

  • Java/JDK mismatch after update (unsupported Java version or wrong java.home in jvm.config).
  • Insufficient memory or invalid JVM options (e.g., unsupported flags after Java upgrade).
  • Port conflicts (e.g., 8500 or AJP/HTTP connectors in server.xml already bound by another process).
  • Broken IIS/Apache connector or outdated wsconfig Integration.
  • File permission issues (service account lost access to the ColdFusion directories).
  • Locked or partially applied update (stale lock files or failed post-install tasks).
  • Corrupted/colliding libraries or classpath issues (e.g., log4j conflicts, tcnative/OpenSSL changes).
  • Service wrapper problems (Windows prunsrv or Linux jsvc issues).
  • Security changes (FIPS mode, TLS/certificate truststore changes) impacting startup.
  • Misconfigured instance or wrong instance targeted by service.

Symptoms by Category

  • Service won’t start: immediate stop after start attempt, errors in Windows Event Viewer or journalctl/systemd logs.
  • Service starts but unresponsive: ports open late or not at all; admin/site timeouts; thread or memory issues.
  • Works on built-in port but not via web server: connector problem (IIS/Apache mappings, permissions, or binaries).
  • Works locally but not remotely: firewall, Windows Defender, SELinux, or network dependency issues.

Step-by-Step Troubleshooting Guide

Step 1: Confirm the Service and Instance Status

  • Windows:

    • Open Services (services.msc) and verify the specific instance, e.g., “Adobe ColdFusion 2021 Application Server” or a named instance (cfusion or a custom instance).

    • Use elevated PowerShell:

      sc query type= service state= all | findstr /I “coldfusion”
      Get-EventLog -LogName Application -Newest 50 | where {$_.Source -like “ColdFusion“}

  • Linux:

    • Check service status:

      sudo systemctl status coldfusion
      sudo journalctl -u coldfusion -n 200
      ps -ef | grep -i coldfusion

    • Verify instance control scripts:

      /opt/coldfusion/cfusion/bin/coldfusion status

See also  How to Fix Missing CFIDE Folder Errors

If the service flaps (starts then immediately stops), jump to logs and JVM checks.


Step 2: Review Logs for Immediate Clues

Key log locations (instance “cfusion” shown; adjust for named instances):

  • ColdFusion logs:
    • Windows: C:\ColdFusion[version]\cfusion\logs\
    • Linux: /opt/coldfusion/cfusion/logs/
    • Files: coldfusion-out.log, coldfusion-error.log, server.log, application.log
  • Tomcat/runtime logs: cfusion\logs and runtime\logs (varies by version)
  • Web server connector logs:
    • IIS ISAPI: isapi_redirect.log in connector folder
    • Apache mod_jk: mod_jk.log

Look for errors like:

java.net.BindException: Address already in use: bind

java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger

Error: A fatal exception has occurred. Could not reserve enough space for object heap

The system cannot find the path specified: …\jre\bin\server\jvm.dll

Tip: If logs are not updating at all, the service wrapper may not be able to find Java or lacks permissions.


Step 3: Verify Java/JDK Version and jvm.config

ColdFusion is sensitive to Java versions. After a patch, the required minimum Java version may change, or the jvm.config’s java.home may be reverted.

  • Check Java runtime:

    java -version

  • On Windows, ensure the service is not still pointing to an older JRE folder that was removed.

  • Confirm jvm.config:

    • Location (typical): C:\ColdFusion[version]\cfusion\bin\jvm.config or /opt/coldfusion/cfusion/bin/jvm.config
    • Verify java.home is correct and exists.

Example snippet (jvm.config):

java.home=/opt/Adoptium/jdk-11.0.22+7

or on Windows

java.home=C:\Program Files\Eclipse Adoptium\jdk-11.0.22.7-hotspot
java.args=-Xms1024m -Xmx4096m -XX:+UseG1GC -Duser.timezone=UTC -Djava.Security.egd=file:/dev/urandom

  • Remove unsupported options for your Java version (e.g., PermGen flags on Java 11+).

H5: Supported JDK Versions by CF Release (Quick Guidance)

  • ColdFusion 2018: Java 11 supported in later updates (Java 8 originally).
  • ColdFusion 2021 and 2023: Java 11 or 17 (verify Adobe’s matrix and your update level).
  • If you upgraded Java, ensure the matching Visual C++ redistributables and PATHs are present on Windows.

Step 4: Check Ports and server.xml

If the service starts but does not respond, a port conflict or misconfigured connector may be the culprit.

  • Check bound ports:

    • Windows:

      netstat -ano | findstr “:8500”

    • Linux:

      sudo ss -lntp | grep -E “:8500|:8012|:8080|:8009”

  • Review server.xml (Tomcat config):

    • Location: cfusion\runtime\conf\server.xml (varies by version)
    • Ensure ports are unique and not blocked.

Example snippet:



If you see “Address already in use,” change the port or stop the conflicting process.


Step 5: Repair Web Server Connectors (IIS/Apache)

A patch can invalidate connectors. Symptoms: built-in port responds, but IIS/Apache sites hang or return 500 errors.

  • Rerun the Web Server Configuration Tool (wsconfig):

    • Windows (run as Administrator):

      “C:\ColdFusion2021\cfusion\runtime\bin\wsconfig.exe”

    • Linux (sudo):

      sudo /opt/coldfusion/cfusion/runtime/bin/wsconfig

  • For IIS: verify ISAPI Filters and Handler Mappings are present and enabled. Ensure the Application Pool identity can read the connector folder.

  • For Apache: confirm mod_jk or the connector module is loaded and mod_jk.conf includes the right worker settings.

Check connector logs (isapi_redirect.log or mod_jk.log) for load or routing errors.

H5: Where Connector Files Typically Live

  • Windows IIS: C:\ColdFusion[version]\config\wsconfig[n]\
  • Linux Apache: /opt/coldfusion/config/wsconfig/[n]/

Step 6: Clear Caches and Stale Locks

After failed updates, cleanup helps:

  • Stop ColdFusion.
  • Delete temporary caches:
    • cfusion\wwwroot\WEB-INF\cfclasses
    • cfusion\jetty or Tomcat work/temp dirs (work, temp, cfclasses).
  • Remove stale lock files in the updates directory if present:
    • cfusion\hf-updates\hf-[version]\ (look for .lck files)
  • Restart service.
See also  How to Troubleshoot Slow ColdFusion Queries

Step 7: Validate Permissions and Service Account

  • Windows:

    • Verify the “Log On As” account for the ColdFusion service still has read/execute on the ColdFusion installation and write on logs/temp.
    • If changed, re-enter the password (service logon sometimes breaks after patch).
  • Linux:

    • Ensure ownership and permissions:

      sudo chown -R cfuser:cfuser /opt/coldfusion
      sudo find /opt/coldfusion -type d -exec chmod 755 {} \;
      sudo find /opt/coldfusion -type f -exec chmod 644 {} \;

    • If SELinux is enforced, restore contexts:

      sudo restorecon -R /opt/coldfusion


Step 8: Right-Size and Sanitize JVM options

  • If the service dies during startup with memory errors, reduce or adjust heap:

    • In jvm.config, set e.g.:

      -Xms1024m -Xmx4096m

    • Avoid excessively high Xmx relative to system RAM.

  • Remove deprecated flags (PermSize/MaxPermSize) on Java 11+.

  • Consider G1GC with modern JDKs:

    -XX:+UseG1GC -XX:MaxGCPauseMillis=200


Step 9: Security Libraries, TLS, and Native Components

  • OpenSSL/tcnative: if APR/native libraries mismatch, Tomcat can fail to start. Check for tcnative warnings in logs.
  • TLS/cacerts: if outbound calls during startup fail due to truststore changes, adjust cacerts or -Djavax.net.ssl.trustStore in jvm.config.
  • FIPS or policy changes: ensure any security flags or providers match the JDK and CF update.

Step 10: Reinstall or Recreate the Service Wrapper

  • Windows:

    • Uninstall/reinstall the service wrapper:

      “C:\ColdFusion2021\cfusion\bin\coldfusion.exe” -uninstall
      “C:\ColdFusion2021\cfusion\bin\coldfusion.exe” -install

    • Run as Administrator, then start the service.

  • Linux:

    • Recreate unit or instance scripts if missing:

      /opt/coldfusion/cfusion/bin/coldfusion stop
      /opt/coldfusion/cfusion/bin/coldfusion start
      sudo systemctl daemon-reload
      sudo systemctl enable coldfusion
      sudo systemctl start coldfusion

If the patch itself is broken or partially applied, roll back.


Step 11: Roll Back or Reapply the Update

  • ColdFusion hotfix folders typically include uninstall scripts.
  • Check cfusion/hf-updates for the specific update:
    • Run the uninstaller or restore the backup directory created during the update.
  • Reapply the update:
    • Use CF Admin Update page or cfpm, but run as Administrator/root and ensure no file locks.
    • Offline installer: stop CF, extract, run installer, verify logs, start CF.

Quick reference: Causes and Solutions

  • Java mismatch or invalid java.home → Update jvm.config to a supported JDK path; align with CF Version support.
  • Unsupported JVM flags → Remove deprecated options (e.g., PermGen) and use G1GC on JDK 11+.
  • Port conflict (8500/8009/8080) → Change ports in server.xml or stop the conflicting service.
  • Broken IIS/Apache connector → Rerun wsconfig; check ISAPI/Handler Mappings or Apache modules and logs.
  • Stale cache/locks → Clear cfclasses, work, temp; remove .lck files in hf-updates.
  • Permissions or service account issues → Restore service account rights; chown/chmod; fix SELinux contexts.
  • Native library or TLS problems → Update tcnative/OpenSSL; adjust truststore; verify security flags.
  • Corrupt update → Roll back using hf-updates uninstaller; reapply patch cleanly.
  • Service wrapper issues → Reinstall Windows service or re-enable systemd unit for CF.

Common mistakes and How to Avoid Them

  • Not backing up jvm.config/server.xml before patching → Always copy critical config files first.
  • Mixing Java versions without checking support → Verify Adobe’s support matrix for your CF version/update level.
  • Applying updates while CF files are in use → Stop CF and web servers before offline updates to avoid locked files.
  • Forgetting to rerun wsconfig after updates → Reconfigure connectors and restart IIS/Apache.
  • Editing the wrong instance → Confirm you’re changing cfusion vs. a named instance; service names must match.
  • Over-allocating heap memory → Keep Xmx within reasonable limits; ensure system RAM suffices.
  • Skipping logs → The first place to look is coldfusion-out/error.log and connector logs; they often pinpoint the issue.
See also  How to Fix JVM GC Performance Problems in ColdFusion

Prevention Tips / Best practices

  • Maintain a staging environment to test updates before production.
  • Snapshot or back up the ColdFusion install and config files (bin/jvm.config, runtime/conf/server.xml, cfusion/neo*.xml) before patching.
  • Standardize Java: install a supported Temurin (Adoptium) JDK and set a stable java.home; avoid pointing to transient JDK folders.
  • Automate pre/post-patch checks:
    • Pre-patch: Health check, port checks, disk space, memory headroom.
    • Post-patch: service status, log scan, connector validation, application smoke tests.
  • Use cfpm (CF Package Manager) for package-level updates on CF 2021/2023 and keep a record of installed packages.
  • Pin service accounts and permissions; document the “Log On As” user and required folder ACLs.
  • Implement health checks and monitoring:
    • Local admin URL Health check.
    • Connector-level checks via IIS/Apache.
    • Log-based alerts for BindException and NoClassDefFoundError.
  • Control change windows with rollback plans; keep the update installer and uninstallers accessible.
  • Configure service start dependencies:
    • Windows: ensure TCP/IP and IIS start before CF if needed.
    • Linux systemd unit: After=network-online.target and appropriate restart policies.

Example Windows service recovery:

sc failure “Adobe ColdFusion 2021 Application Server” reset= 0 actions= restart/60000

Example systemd override:

sudo systemctl edit coldfusion

Add:

[Unit]
After=network-online.target

[Service]
Restart=on-failure
RestartSec=30


Key Takeaways / Summary Points

  • Most “Service not responding” issues after a ColdFusion patch come down to Java path/version, ports, connectors, or permissions.
  • Start with logs, verify jvm.config and server.xml, and confirm supported JDK settings.
  • Rerun the web server connector tool after updates and restart IIS/Apache.
  • Clear caches and remove stale update locks if the patch partially applied.
  • Keep backups, test in staging, and have a rollback plan to minimize downtime.

FAQ

How do I roll back a ColdFusion update if the server won’t start?

Check cfusion/hf-updates for the specific hotfix folder. Use the provided uninstaller or restore the backup directory created during the update. If unavailable, restore from your file/system snapshot. After rollback, verify jvm.config and connectors, then reattempt the update in a controlled window.

The service is “Running,” but the ColdFusion Administrator won’t load. What should I check first?

Check coldfusion-out.log and coldfusion-error.log, then verify that the expected port (e.g., 8500) is listening. If 8500 works locally but not through IIS/Apache, rerun wsconfig and check connector logs. Also confirm that firewall rules haven’t changed and that the service account has proper permissions.

I upgraded Java and now ColdFusion won’t start. What’s wrong?

Your jvm.config may point to an incompatible or removed JDK folder, or you may have deprecated JVM flags. Update java.home to a supported JDK for your CF version, remove unsupported options (PermGen flags for Java 11+), and check that required Visual C++ runtimes are installed on Windows.

How do I fix “Address already in use: bind” errors on startup?

Identify the conflicting process using netstat/ss. Change the HTTP/AJP port in runtime/conf/server.xml or stop the conflicting service. Ensure the edited server.xml belongs to the running instance (cfusion vs. a named instance).

Where are the ColdFusion logs that show startup failures?

Commonly:

  • Windows: C:\ColdFusion[version]\cfusion\logs\
  • Linux: /opt/coldfusion/cfusion/logs/
    Look at coldfusion-out.log, coldfusion-error.log, server.log, and connector logs (isapi_redirect.log or mod_jk.log). If these are empty, also check Windows Event Viewer Application logs or journalctl for service wrapper errors.

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.