[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]