Copy link to clipboard
Copied
On my production server (Windows Server 2008 R2 Web edition 64 bit, 4 GB RAM, Coldfusion 9.0.1 32 bit) every 4-5 days all websites aren't available, the error message is:
ERROR 500:
ROOT CAUSE:
coldfusion.server.ServiceFactory$ServiceNotAvailableException: The Metrics service is not available.
at coldfusion.server.ServiceFactory.getMetricsService(ServiceFactory.java:159)
at coldfusion.CfmServlet.processTimeout(CfmServlet.java:296)
at coldfusion.CfmServlet.service(CfmServlet.java:216)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
javax.servlet.ServletException: ROOT CAUSE:
coldfusion.server.ServiceFactory$ServiceNotAvailableException: The Metrics service is not available.
at coldfusion.server.ServiceFactory.getMetricsService(ServiceFactory.java:159)
at coldfusion.CfmServlet.processTimeout(CfmServlet.java:296)
at coldfusion.CfmServlet.service(CfmServlet.java:216)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:70)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
After a server reboot all work fine for 4-5 days and the problem comes again. The metric service is enabled (http://kb2.adobe.com/cps/191/tn_19120.html), somebody have an idea to solve this problem?
My CF configuration is:
-server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=256m -XX:+UseParallelGC -Dcoldfusion.rootDir={application.home}/../ -Dcoldfusion.libPath={application.home}/../lib
Thanks
Copy link to clipboard
Copied
Also, shouldn't you be using 64-bit ColdFusion 9.0.1 on 64-bit Windows Server 2008 R2 Web edition?
Copy link to clipboard
Copied
Hextra: Non i don't use in J2EE environment and CF is Enterprise edition
>Is it multiserver installation?
Hextra: No is a standalone installation.
A contradiction?
Copy link to clipboard
Copied
@BKBK
Sorry but i am new on coldfusion. How can i see if i use a J2EE environment or not?
Copy link to clipboard
Copied
hextra wrote:
Sorry but i am new on coldfusion. How can i see if i use a J2EE environment or not?
The question is whether you're on the Enterprise multiserver or on the Single-server edition.
Copy link to clipboard
Copied
>Also, shouldn't you be using 64-bit ColdFusion 9.0.1 on 64-bit Windows Server 2008 R2 Web edition?
I use 32 bit version of coldfusion because i need to create Micorsoft Access Datasource (on 64 bit this feature not work because the Access driver is only 32 bit)
> The question is whether you're on the Enterprise multiserver or on the Single-server edition.
Single server edition
Copy link to clipboard
Copied
hextra wrote:
>Also, shouldn't you be using 64-bit ColdFusion 9.0.1 on 64-bit Windows Server 2008 R2 Web edition?
I use 32 bit version of coldfusion because i need to create Micorsoft Access Datasource (on 64 bit this feature not work because the Access driver is only 32 bit)
> The question is whether you're on the Enterprise multiserver or on the Single-server edition.
Single server edition
OK. I think there are 2 things, and that they may be related: 1) starting or disabling the Metrics Service. 2) The JVM Xmx settings.
I was busy with some dicy experimentation some hours ago, when my installation stopped responding. When I get it sorted, I will try to reproduce the metrics issue. It seems to be significant.
Copy link to clipboard
Copied
Hi,
Metrics:
Agree Metrics message is curious and maybe is related to issue. Perhaps a copy of JRun.XML (\ColdFusion\runtime\servers\coldfusion\SERVER-INF) would be interesting to look at.
Xmx value:
Maximum JVM Heap Size (MB): 1024 early in the thread.. With 32 bit CF could be trouble trying to increase that more. Probably not a memory issue since TASKMAN is steady at 650Mb.
Perhaps there is a lot going on and issue is a bit beyond the scope of resolving via forum thread. There are good people who do hands on so may do well to engage with someone (eg http://www.cf411.com/#cfassist). Sure will cost however good chance you will get a result.
HTH, Carl.
Copy link to clipboard
Copied
carl type3 wrote:
Xmx value:
Maximum JVM Heap Size (MB): 1024 early in the thread.. With 32 bit CF could be trouble trying to increase that more. Probably not a memory issue since TASKMAN is steady at 650Mb.
I would use:
-Xmx1024m -Xms1024m
Copy link to clipboard
Copied
Just to get one other matter out of the way. Before disabling the metrics service in jrun.xml, did you also verify that the setting Enable CFSTAT (in Debugging & Logging section of the Administrator) was unchecked?
Copy link to clipboard
Copied
@meensi: I have enabled the metric service after some crash
Copy link to clipboard
Copied
Error 500: The Metrics service is not available.
The MetricsService might have been disabled in a configuration file, whereas your installation requires the service.
The place for you to be is the configuration file, jrun.xml. Search your server for this file. On a single-server installation, there are 2 possible locations: C:\ColdFusion9\runtime\servers\admin\SERVER-INF and C:\ColdFusion9\runtime\servers\coldfusion\SERVER-INF. It should be easy for you to find the equivalent locations for multi-server.
Before you proceed, make a back-up of the jrun.xml file(s). Open the file(s) in a text editor. Search the text for MetricsService.
There are 2 relevant XML elements to locate. The first is:
<service class="coldfusion.server.jrun4.metrics.MetricsServiceAdapter" name="MetricsService">
<attribute name="bindToJNDI">true</attribute>
</service>
If it had been commented out, then uncomment it, so as to enable the MetricsService.
The second XML element to locate is
<attribute name="metricsEnabled">false</attribute>
Change the value from false to true. Save the file jrun.xml. Restart Coldfusion.
Copy link to clipboard
Copied
@BKBK: The metric service is enabled in my jrun.xml, but the problem is not solved
Copy link to clipboard
Copied
After some weeks of tests, the "Error 500: The Metrics service is not available" is ended. I resume my settings:
-
My "Request Tuning":
Request Limits | |
The number of CFML page requests that can be processed concurrently. Use this setting to increase overall system performance for heavy load applications. Requests beyond the specified limit are queued. | |
The number of Flash Remoting requests that can be processed concurrently. | |
The number of Web Service requests that can be processed concurrently. | |
The number of ColdFusion Component methods that can be processed concurrently via HTTP. This does not affect invocation of CFC methods from within CFML, only methods requested via an HTTP request. |
JRun Master Request Limits (restart required) |
Maximum number of JRun handler threads that will run concurrently. This is the number of request threads that the underlying JRun J2EE application server will run at the same time. This includes any non-ColdFusion requests such as JSP pages. Generally this value should be greater than the sum (currently 49) of the request limits above . |
Maximum number of requests that JRun can accept at any one time. This is the number of requests that the underlying JRun J2EE application server accepts at the same time. |
Tag Limit Settings | |
The maximum number of ColdFusion reports that can be processed concurrently. | |
The maximum number of threads created by CFTHREAD that will be run concurrently. Threads created by CFTHREAD in excess of this are queued. |
Queue Timeout Settings | |
seconds If a request has waited in the queue for this long, timeout the request. This value should be at least as long as the Request Timeout setting (currently 60 seconds). | |
Specify a relative path from the web root to an HTML page to send to clients when a template request times out before running, for example /CFIDE/timeout.html. The page you specify cannot contain CFML. If you do not specify a page, clients receive a 500 Request Timeout error when their request does not run. |
But now i have another problem:
The sites using Microsoft Access Database, randomlly, go in timeout. This is due to the fact that "ODBC Server" lock the database (in the db folder there are the .ldb file). If I restart the "ODBC Server" service, the database is released and the site works. Do you have any idea how to resolve this issue?
Copy link to clipboard
Copied
hextra wrote:
But now i have another problem:The sites using Microsoft Access Database, randomlly, go in timeout. This is due to the fact that "ODBC Server" lock the database (in the db folder there are the .ldb file). If I restart the "ODBC Server" service, the database is released and the site works. Do you have any idea how to resolve this issue?
You will solve this quicker if you start a new thread in the section Database Access.
Copy link to clipboard
Copied
CF normally locks Access databases, so this is not the cause of your problem. While restarting the service may fix the problem, it's not because of locking but rather some other problem with the service or with CF, and your Access databases.
You might try using the "Microsoft Access with Unicode" datasource type, which doesn't rely on ODBC at all. It has its own problems, but those problems may not affect you.
Also, as BKBK suggested, you're better off starting a new thread in the right forum, since this one has nothing to do with your current problem.
Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/
http://training.figleaf.com/
Copy link to clipboard
Copied
@hextra
>the "Error 500: The Metrics service is not available" is ended
Can you share any details as to solution? Where any suggestions
from CF forum members here "on the money"?
Ta, Carl.
Copy link to clipboard
Copied
I have modified the values on the "Request Tuning" section as i decribed above. I think the section "Queue Timeout Settings" is very important, before changes the time waiting in the queue was less than request timeout parameter
Copy link to clipboard
Copied
Just Delete Applications/ColdFusion10/<Instance Name>/lib/neo-monitoring.xml and restart your Coldfusion 10 instance:
C:/ColdFusion10/cfusion/bin/coldfusion restart
Coldfusion will create a new neo-monitoring.xml file for you.