Anusuya R.
2010-Nov-30 17:28 UTC
How Rails handles database connection in the background??
I am trying show controller specific pages in my rails app when the database connection goes away. I do this by catching the Mysql::Error in the rescue_action method and rendering appropriate pages. When the mysql service alone is stopped , i get the Mysql::Error exception really quickly and i could render the pages without any delay. But when the server itself is shut down, rails takes 3 mins to throw the Mysql::Error and after 5-6 request the whole website becomes unresponsive. I tried to figure out, which method in rails framework takes such a long time , when the mysql server is shut down. It was a method connection.real_connect (in the active record mysql_adapter file),which took 3 mins to return with an exception when there is no connection with the database server. so i decided to timeout out this method using systemTimer gem. This monkey patch worked perfectly, when i start the website with database connection and immediately shutdown the database server. But when i start the website with database, and access the website for sometime and then shut down the database server, it doest work at all. and the whole website becomes unresponsive as before. I wonder what is the difference between the two scenarios. I think i need to know more in detail about how rails handle database connection . how it reacts when the database connection goes off. so that i could identify exact places where i can put monkey patches and make it work for my specif requirement. I havent seen any relevant article explaining this. Any help will be very useful for me Thanks, -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
A quick search for ''rails database timeout'' brought this, but it''s from 2006. Check the final answer: http://wooga.drbacchus.com/rails-and-mysql-timeouts On Nov 30, 12:28 pm, "Anusuya R." <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> I am trying show controller specific pages in my rails app when the > database connection goes away. I do this by catching the Mysql::Error in > the rescue_action method and rendering appropriate pages. When the mysql > service alone is stopped , i get the Mysql::Error exception really > quickly and i could render the pages without any delay. > > But when the server itself is shut down, rails takes 3 mins to throw the > Mysql::Error and after 5-6 request the whole website becomes > unresponsive. > > I tried to figure out, which method in rails framework takes such a long > time , when the mysql server is shut down. It was a method > connection.real_connect (in the active record mysql_adapter file),which > took 3 mins to return with an exception when there is no connection with > the database server. > > so i decided to timeout out this method using systemTimer gem. This > monkey patch worked perfectly, when i start the website with database > connection and immediately shutdown the database server. > > But when i start the website with database, and access the website for > sometime and then shut down the database server, it doest work at all. > and the whole website becomes unresponsive as before. I wonder what is > the difference between the two scenarios. > > I think i need to know more in detail about how rails handle database > connection . how it reacts when the database connection goes off. so > that i could identify exact places where i can put monkey patches and > make it work for my specif requirement. I havent seen any relevant > article explaining this. > > Any help will be very useful for me > > Thanks, > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.