Hi all,
I'm posting here in the hope that this list can shed some light on an issue I
keep encountering with CF 9.0.1 running on Windows Server 2008 R2.
My CF instance sometimes stops responding to and/or properly process HTTP
requests. When this happens I see the following symptoms:
- my monitoring software reports HTTP failure, 'Unable to contact web server at
website.com/index.cfm'
- Pingdom reports website as down
- the CF service is running seemingly normally
- another non-CF site on the same server works fine (more or less eliminating
IIS as a cause)
- a server restart will fix the issue (temporarily until the next 'event')
- A CF service restart often hangs so I end up rebooting the server
- (potentially unrelated: the CF service does not start up after server reboot
even though it is set to automatic, a manual start of the service works)
Last night at 00:20am UTC another outage occurred. This time I could tie it to
an external event. At precisely that time, Amazon Web Services performed a
planned update to their RDS service (MySQL basically) which CF connects to as a
datasource.
Note that I run RDS in multi-AZ mode which means that when the database shuts
down for any reason it fails over to another instance with identical
credentials. However it appears CF was never able to reconnect, not even when
the original DB came back a few mins later.
Moreover not only did the DB connection fail, but CF also stopped processing
HTTP requests - no pages (even those without cfquery tags) would load (well
they may have done, but see below for how long they suddenly take to process).
I noticed in my CF logs:
server.log (hundreds of these entries right after the DB connection failed):
"Warning","jrpp-25682","11/18/12","00:28:08",,"Thread: jrpp-25682, processing
template: C:\inetpub\wwwroot\scribblar.com\...\index.cfm, completed in 314
seconds, exceeding the 30 second warning limit"
application.log
"Error","jrpp-25680","11/18/12","00:19:54","scribblar","Error Executing
Database Query.Server shutdown in progress The specific sequence of files
included or processed is: C:\inetpub\wwwroot\....page.cfm"
"Error","jrpp-25678","11/18/12","00:20:05","scribblar","Error Executing
Database Query.Communications link failure The last packet successfully
received from the server was 53,418 milliseconds ago. The last packet sent
successfully to the server was 0 milliseconds ago. The specific sequence of
files included or processed is: C:\inetpub\wwwroot\...page.cfm"
"Error","jrpp-25682","11/18/12","00:21:29","scribblar","Error Executing
Database Query.Could not create connection to database server. Attempted
reconnect 3 times. Giving up.
[these logs then repeat a lot of times]
(notice the pages in the server.lo0g take forever to load - to a user they
don't work at all as noone waits 5 mins...)
Every single page requests after the original 'Error Executing Database' takes
several minutes according to the logs.
exception.log:
(loads of these, I picked one as a sample)
"Error","jrpp-25779","11/18/12","07:57:02","scribblar","Error Executing
Database Query.Could not create connection to database server. Attempted
reconnect 3 times. Giving up. The specific sequence of files included or
processed is: C:\inetpub\wwwroot\...\index.cfm, line: 8 "
coldfusion.tagext.sql.QueryTag$DatabaseQueryException: Error Executing Database
Query.
at coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:641)
at cfindex2ecfm507991868.runPage(C:\inetpub\wwwroot\...\index.cfm:8)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:360)
at
coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:94)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
at
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:200)
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)
Caused by:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not
create connection to database server. Attempted reconnect 3 times. Giving up.
at sun.reflect.GeneratedConstructorAccessor1575.newInstance(Unknown
Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1012)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2409)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2675)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2616)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:782)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:879)
at
coldfusion.server.j2ee.sql.JRunStatement.execute(JRunStatement.java:348)
at coldfusion.sql.Executive.executeQuery(Executive.java:1364)
at coldfusion.sql.Executive.executeQuery(Executive.java:1127)
at coldfusion.sql.Executive.executeQuery(Executive.java:1058)
at coldfusion.sql.SqlImpl.execute(SqlImpl.java:341)
at coldfusion.tagext.sql.QueryTag.executeQuery(QueryTag.java:915)
at coldfusion.tagext.sql.QueryTag.setupCachedQuery(QueryTag.java:854)
at coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:586)
... 31 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure
I read this blog post by Charlie Arehart and wondered if my issue is related:
http://www.carehart.org/blog/client/index.cfm/2010/10/15/Lies_damned_lies_and_CF_timeouts
But I still do not understand how I could prevent the issues I am seeing.
Also I'm not sure if previous issues with HTTP requests 'hanging' were related
to database connectivity issues - I'll try and establish that. What I do know
is that I've seen these symptoms many times before...
Any tips would be much appreciated. It's crucial that my site is up and running
as it provides an API for customers... :-/
Cheers
Stefan
PS: having some issues receiving email from the list, will check for replies
via web interface which may delay my ow replies a bit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive:
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:353232
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm