I was able to get the following code to run sucessfully. I took the database offline so CF couldn't connect to it. As a second test, I also changed the server name to an invalid on in the datasource setup, and both scenarios worked.
<cftry> <cfquery name="testme" datasource="datasource" maxrows="10" timeout="2"> Select * from testdb </cfquery> <cfcatch> <cfquery name="testme" datasource="datasource2" maxrows="10" timeout="5"> Select * from testdb </cfquery> </cfcatch> </cftry> > Hi a bit stuck at the moment, > > I am trying to implement a DB fail over to a slave database through CF > 9. I am using MYSQL as a DB. I have setup datasource in the > application.cfc to point to the main db. When i trigger a stop > service on the main db - which causes a failed db connection, i'm > trying to get CF to change the datasource to the failover database. > All that happens is the site keeps trying to connect to the main db > without updating the db datasource in the cfcatch. Note: this code > below works if i have a syntax error in the query, but not for a DB > connection failure. > > See my code below, which i am putting in the onRequestStart and i have > unchecked "Maintain Connections" in the datasource settings. > > <cftry> > <!--- Test whether the DB this application uses is accessible > by getting some data. ---> > <cfquery name="testDB" dataSource="#application.primary_datasource#" > maxrows="2"> > SELECT id FROM user > </cfquery> > > <cfcatch type="database"> > <cfset application.primary_datasource = "failoverdb"> > </cfcatch> > </cftry> > > I welcome any thoughts and assistance > > thanks in advance. > > Bas. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| 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:346112 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm