Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je ne sais pas si c'est vraiment du Zend framework enfin bon, je vous expose mon probleme :
J'ai une tache planifiée (cron) qui execute une suite de script php ZF faisant des insert dans la bdd :
en gos :
$db = TableManager::getDbInstance(); // db est un Zend_Db_Adapter_Pdo_Mysql $db->beginTransaction(); ...... try{ /// on fait plein de db->query avec des insert ........ }catch(Exception $e){ echo "KO\n"; ///... on log des conneries ... $db->rollBack(); return; } }
voila mon soucis: la tache crash 1 fois tous les 36 du mois (cause inconnue)
Il n'y a apparemment AUCUN appel au rollback (ca crash avant ).
Resultat : une partie des insert a bien disparu mais j'ai une ligne en base qui est restée (comme ci elle avait ete commitée !?).
Question : une transaction en cours est-elle maintenu en base si elle n'ai pas commiter et s'il n'y a pas eu d'appel a rollback() ?
question 2: avez vous des idées pour empecher ce "pseudo rollback" partiel. autrement dit si le script crash ou meme le serveur, comment garantir l'intégrité de la base ?
Avez vous des retours sur l'utilisation des transactions avec :Zend_Db_Adapter_Pdo_Mysql.
Si quelqun a une piste, je suis preneur. (comprendre help me !!! ;-) )
Dernière modification par ichevc02 (24-11-2008 16:24:36)
Hors ligne
Hello,
Y as pas un AUTO_COMMIT_MODE à mettre à false (je suis pas sûr que cela existe pour tous les BDD).
A+
Hors ligne
Bonjour,
Désolé pour le temps perdu je suis un boulet :
J'ai 2 connections, une sur des serveur mysql slave qui me servent pour les lectures.
Une autre sur un master qui me sert pour les écritures.
J'ai apparemment tout simplement fait ma transaction sur la mauvaise connection.
dsl à ceux qui m'ont lu de leur avoir fait perdre du temps.
Dernière modification par ichevc02 (24-11-2008 16:25:49)
Hors ligne
Pages: 1