Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour je viens d'heberger mon application zend sous hostpapa. il y a pas beaucoup de trafic car on est toujours en periode de test mais malgré ça de temps en temps j'ai l'erreur suivant:
An error occurred
Application error
Exception information:
Message: SQLSTATE[HY000] [1040] Too many connections
Stack trace:
#0 /home/btpso908/public_html/library/Zend/Db/Adapter/Pdo/Mysql.php(109): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 /home/btpso908/public_html/library/Zend/Db/Adapter/Abstract.php(459): Zend_Db_Adapter_Pdo_Mysql->_connect()
#2 /home/btpso908/public_html/library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Table_Select), Array)
#3 /home/btpso908/public_html/library/Zend/Db/Table/Abstract.php(1575): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Table_Select))
#4 /home/btpso908/public_html/library/Zend/Db/Table/Abstract.php(1390): Zend_Db_Table_Abstract->_fetch(Object(Zend_Db_Table_Select))
#5 /home/btpso908/public_html/application/models/DbTable/Ads.php(78): Zend_Db_Table_Abstract->fetchAll(Object(Zend_Db_Table_Select))
#6 /home/btpso908/public_html/application/controllers/IndexController.php(22): Application_Model_DbTable_Ads->getHomeAds()
#7 /home/btpso908/public_html/library/Zend/Controller/Action.php(516): IndexController->indexAction()
#8 /home/btpso908/public_html/library/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('indexAction')
#9 /home/btpso908/public_html/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#10 /home/btpso908/public_html/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#11 /home/btpso908/public_html/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#12 /home/btpso908/public_html/public_html/index.php(35): Zend_Application->run()
#13 {main}
Request Parameters:
array (
'controller' => 'index',
'action' => 'index',
'module' => 'default',
) .
Est ce que vous pouvez me dire comment je peux resoudre ce probleme s'il vous plait?
Amicalement
Hors ligne
Bonjour,
C'est un probleme mysql, pas zend framework....
Dans mysql, pour un utilisateur donne on peut specifier un nombre de connexion simultannee maximum, ce que hostapapa a du faire... Tu dois regarder le temps d'execution de tes requetes, et essayer de les optimiser. Si tu as des connexions persistantes, desactive les.
Hors ligne
Merci pour votre aide j'ai essayé de calculer le temps d'executions de requettes et apparement il y a pas de probleme la dessus:
Durée d'exécution : 0.0036940574645996Requête SQL : DESCRIBE `annonces`
Durée d'exécution : 0.018183946609497Requête SQL : SELECT `annonces`.*, `users`.`societe`, `users`.`pays`, `user_type`.`titre_fr`, `user_type`.`titre_en`, `photos`.`path`, `photos`.`extension` FROM `annonces` INNER JOIN `users` ON annonces.user_id = users.id_user INNER JOIN `user_type` ON users.type_user = id_user_type LEFT JOIN `photos` ON annonces.ads_id = id_annonce and main=1 WHERE (annonces.moderation = 1) AND (annonces.public = 1) ORDER BY `annonces`.`ads_id` desc
Durée d'exécution : 0.003087043762207Requête SQL : SELECT `annonces`.*, `photos`.`path`, `photos`.`extension` FROM `annonces` LEFT JOIN `photos` ON annonces.ads_id = id_annonce WHERE (annonces.top= 1)
Durée d'exécution : 0.00084686279296875Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.017509937286377Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '212') LIMIT 1
Durée d'exécution : 0.00066494941711426Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.016869068145752Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '212') LIMIT 1
Durée d'exécution : 0.00067400932312012Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.01800799369812Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '67') LIMIT 1
Durée d'exécution : 0.00065088272094727Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.017017126083374Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '140') LIMIT 1
Durée d'exécution : 0.00062799453735352Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.017092943191528Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '140') LIMIT 1
Durée d'exécution : 0.00070405006408691Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.017306089401245Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '140') LIMIT 1
Durée d'exécution : 0.00076007843017578Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.017148971557617Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '140') LIMIT 1
Durée d'exécution : 0.00065779685974121Requête SQL : DESCRIBE `pays`
Durée d'exécution : 0.017431020736694Requête SQL : SELECT `pays`.* FROM `pays` WHERE (code = '140') LIMIT 1
Durée d'exécution : 0.00063490867614746
Par contre je sais pas comment desactiver les connexions persistantes et si vous pouvez me dire comment je peux regler au niveau du bootstrap le timeout de la session .Merci
Hors ligne
Si tu utilises Zend Db sans paramètres spécifiques, tu n'as pas de connexion persistante.
Je dirais que tu as deux solutions :
1. Changer d'hébergeur
2. Changer d'hébergeur de base de données pour prendre un hébergeur distant.
Hors ligne
Je pense pas que cela est a cause de l’hébergeur parce que j'ai un ami qui utilise le même hébergeur avec une application qui a plus de tables et plus de traitement par contre je viens de voir que j'ai pas de traitement de session la dessus qu'en pensez vous?
Hors ligne