FusionReactor Observability & APM

Installation

Downloads

Quick Start for Java

Observability Agent

Ingesting Logs

System Requirements

Configure

On-Premise Quickstart

Cloud Quickstart

Application Naming

Tagging Metrics

Building Dashboards

Setting up Alerts

Troubleshoot

Performance Issues

Stability / Crashes

Low-level Debugging

Blog / Media

Blog

Videos / Webinars

Customers

Video Reviews

Reviews

Success Stories

About Us

Company

Careers

Contact

Contact support

Installation

Downloads

Quick Start for Java

Observability Agent

Ingesting Logs

System Requirements

Configure

On-Premise Quickstart

Cloud Quickstart

Application Naming

Tagging Metrics

Building Dashboards

Setting up Alerts

Troubleshoot

Performance Issues

Stability / Crashes

Debugging

Blog / Media

Blog

Videos / Webinars

Customers

Video Reviews

Reviews

Success Stories

About Us

Company

Careers

Contact

Contact support

The Runtime service is not available – ColdFusion 2018

[vc_row][vc_column][vc_column_text]

The Runtime service is not available – ColdFusion 2018

A few days ago I got an error with my ColdFusion 2018 server which I had not seen in many years:

[/vc_column_text][vc_column_text]

coldfusion.server.ServiceFactory$ServiceNotAvailableException: The Runtime service is not available. at coldfusion.server.ServiceFactory.getRuntimeService(ServiceFactory.java:121) at coldfusion.graph.InteractiveGraphingServiceImpl.load(InteractiveGraphingServiceImpl.java:445) at coldfusion.graph.InteractiveGraphingServiceImpl.start(InteractiveGraphingServiceImpl.java:425) at coldfusion.server.CFService.setupGraphing(CFService.java:402) at coldfusion.server.CFService.start(CFService.java:688) at coldfusion.server.j2ee.CFStartUpServlet.startCFService(CFStartUpServlet.java:567) at coldfusion.server.j2ee.CFStartUpServlet.init(CFStartUpServlet.java:510) at javax.servlet.GenericServlet.init(GenericServlet.java:158) at coldfusion.bootstrap.ClassloaderHelper.initServletClass(ClassloaderHelper.java:121) at coldfusion.bootstrap.BootstrapServlet.init(BootstrapServlet.java:111) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1124) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1079) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:971) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4886) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1425) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1415) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:941) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:839) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1425) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1415) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:941) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:258) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at com.adobe.coldfusion.launcher.Launcher.run(Launcher.java:957) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at com.adobe.coldfusion.bootstrap.Bootstrap.init(Bootstrap.java:100) at com.adobe.coldfusion.bootstrap.Bootstrap.main(Bootstrap.java:185)

[/vc_column_text][us_separator size=”small”][vc_column_text]

I had seen this error when running ColdFusion 9 many years ago but not for some time. I could not figure out what I had broken.

After some Googling, it seemed to be that I could have done something when I had installed ColdFusion 2018 Update 4. I could only find old articles on the web like: Why is ColdFusion throwing a 500 Internal Server error after APSB14-23 hotfix installation? but nothing specific, so I tried the following:

[/vc_column_text][us_separator size=”small”][vc_column_text]

cd /opt/coldfusion2018/cfusion/hf-updates/
../../jre/bin/java -jar hotfix-004-314546.jar

[/vc_column_text][us_separator size=”small”][vc_column_text]

After following the updater I checked the update.log which lives in the logs directory. There didn’t seem to be any issues with the update so I tried to start the CF servers again. It did not work. I was presented with lots of exceptions like above and the server didn’t function. I was unable to access the CF admin UI but the logs didn’t tell me what could be wrong. I was very close to reinstalling CF 2018. After some investigation and lots of frustration, I remembered what I had been investigating when I last ran my CF 2018 server. It was the Redis session storage with CF 2018. Specifically related to Performance issue with Redis session management on Adobe ColdFusion servers with FusionReactor or Adobe Performance Monitoring Toolset (PMT). I had configured the session manager as shown below:

[/vc_column_text][us_separator size=”small”][us_image image=”57711″][us_separator size=”small”][vc_column_text]

I no longer had the local Redis server running (and had uninstalled it), but this was not just affecting sessions, it was completely breaking the CF admin UI preventing me from disabling the Redis session storage.

After some help, I found that I could remove the Redis session manager by editing the lib/neo-runtime.xml file.

I changed the var from:

[/vc_column_text][vc_column_text]

<var name='sessionStorage'><string>redis</string></var>

[/vc_column_text][vc_column_text]

to:

[/vc_column_text][vc_column_text]

<var name='sessionStorage'><string>memory</string></var>

[/vc_column_text][vc_column_text]

Now the ColdFusion 2018 server starts 🙂

[/vc_column_text][/vc_column][/vc_row]