I never thought about catching the Zend_Db_Adapter_Exception, which is much 
better than my idea. Thanks for the idea!
Regards, Jurian

-- 
Jurian Sluiman
CTO Soflomo V.O.F.

http://soflomo.com
On Wednesday 13 Jan 2010 15:25:12 Ralph Schindler wrote:
> I would highly suggest you keep the database connection lazy-loaded if
> you either a) have a few routes that definitely don't do anything with
> the database, or b) you use caching during some routes thus saving the
> trip to the database.
> 
> For sites that might have many requests or a high amount of traffic, it
> makes alot of sense to only connect to the database when you really need
> to so that you don't (for example with mysql), hit the maximum number of
> connections to the database at any one time.  Remember, if you
> automatically open the connection to the database at the beginning of
> every request, it will general remain open for the entire request, and
> every request you get will virtually be another connection open to mysql.
> 
> -ralph
> 
> Hector Virgen wrote:
> > Another solution would be to update your error controller to test the
> > exception to see if it is a Zend_Db_Adapter_Exception. When the
> > connection can't be made, this exception is thrown, but there may be
> > other times when it is thrown (like a bad query).
> > 
> > The advantage, however, is that your DB connection will remain
> > lazy-loaded, so if you're using caching there may be times when you
> > don't need to connect to the DB at all.
> > 
> > --
> > Hector
> > 
> > 
> > On Tue, Jan 12, 2010 at 10:31 AM, Jurian Sluiman
> > 
> > <[email protected] <mailto:[email protected]>> wrote:
> >     I have this piece of code for my custom db resource, extending the
> >     zend db
> >     
> >     resource:
> >      > $db = parent::init();
> >      > try {
> >      > 
> >      >     $this->_connection = $db->getConnection();
> >      > 
> >      > } catch (Exception $e) {
> >      > 
> >      >     $this->getBootstrap()->bootstrap('log');
> >      >     Zend_Registry::get('log')->crit('Database connection not
> >     
> >     responding');
> >     
> >      > }
> >      > return $db;
> >     
> >     Now you're using the zend db resource functionality and test for a
> >     valid db
> >     connection. The log (already registered in the registry) is used to
> >     generate
> >     some output.
> >     Regards, Jurian
> >     
> >     --
> >     Jurian Sluiman
> >     CTO Soflomo V.O.F.
> >     http://soflomo.com
> >     
> >     On Tuesday 12 Jan 2010 19:22:39 scs wrote:
> >      > Hello,
> >      > How can I catch the exception and print an error message to
> >      > visitiors when there is a database connection error?
> >      > DB connection params are defined in the application.ini. and db
> >      > resource is initiated in bootstrap file.
> >      > 
> >      > something like this? :
> >      > 
> >      > //function initDatabase () {
> >      > try {
> >      > 
> >      >       $this->bootstrap('db');
> >      >       $db = $this->getResource('db');
> >      >       Zend_Registry::set('db', $db);
> >      > 
> >      > } catch (Exception $e) {
> >      > 
> >      >       echo 'db error '.$e->getMessage();
> >      >       exit; // I have to put exit here in order to prevent other
> >      >       init
> >      > 
> >      > functions running?
> >      > }
> >      > 
> >      > Also,
> >      > I have to put exit(); in catch part in order to prevent the
> >      > following init functions run. Is this the correct way?
> >      > 
> >      > Thanks
> >      > scs

Reply via email to