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
-
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.
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.
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.
