|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() |
Bonsoir tout le monde,
Voilà j'ai un petit soucis actuellement sur plusieurs scripts PHP. Un script PHP qui contient plusieurs requêtes MySQL sur une base distante est éxécuté, seulement il arrive parfois que certaines de ces requêtes ne soient pas effectué sur la base distante bien que le script ne renvoi pas d'erreur, j'en déduit donc que chaque requête SQL renvoie TRUE, puisque la bonne éxécution de chacune d'entres elles est controlée. Pour ces requêtes, j'utilise un grand classique : la fonction mysql_query. Etant donné que la liaison entre le PC qui héberge et lance le script et la base de données distante est en 3G, et que cette connexion est plutôt capricieuse (nombreux Timeout + déconnexion). Je pense que certaines de mes requêtes sont mal éxécutées à cause de ça, qu'en pensez vous ? Ensuite, je me demande si de passer toutes les requêtes SQL en transactionnel ne réglerait pas le problème ? Ou sinon pensez vous que cela peut venir d'ailleurs, sachant que le même script qui est éxécuté sur la même base mais où cette fois la liaison entre les deux est une connexion ADSL plus stable, ne plante jamais ? Merci, Cordialement, BENOIT J. |
|
|
00
|
|
|
#2 | |||
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 586 ![]() |
Citation:
as tu le mysql.trace_mode d'activé ? (src stealth35 ) Citation:
Citation:
__________________
Développeur informatique contrarié... |
|||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 240 ![]() |
La requête sur ta bdd s'effectue sur le serveur et est donc indépendante de la qualité de ta liaison.
Si ta liaison est mauvaise peut être que la requête au serveur n'aboutie pas et donc la requête à ta bdd ne se fait pas, ou alors elle se fait mais le retour d'information ne se fait pas. Des modifications de tes tables quand bien même elles seraient transactionnelles ne régleront pas le pb d'une mauvaise liaison entre le pc et le serveur distant. Ou peut-être que j'ai pas bien saisi ton pb
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() |
Bah je peux difficilement monitorer le phénomène sachant qu'il est très fugace, ne se produit que 2 ou 3 fois par jour (et encore ...) et que c'est chez un client ...
Je pense qu'avec le transactionnel si aucune requête ne s'éxécute ça ne me foutra pas la merde, étant donné que rien ne sera modifié ! |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 708 ![]() |
Salut
Citation:
Le principal but d'une transaction c'est de se garantir que la Bdd conserve une cohérence au niveau des données. Si ces misent à jours qui se font que partiellement et débouchent sur de vrai incohérences et qu'après ça devient source de bug lorsqu'on exploite ces données, alors oui, mettre en place une transaction peu être utile voir même indispensable. Cependant, et si j'ai bien compris, ça pourra difficilement l'être totalement. Petit scénario juste pour exemple. 1/ On appel une 1ère page et que ça se passe bien, toutes les requêtes correctement exécutées. 2/ Un 2ème appel (même page ou autre page), un bug survient, la transaction annule le groupe de requêtes. 3/ Un 3ème appel les requêtes se font correctement. Et bien dans cet exemple on obtient quand même une incohérence : Le 2ème groupe ne s'est quand même pas fait. Vois tu, faut voir quand même. A coté de ça, ce n'est pas n'importe quelle moteur de MySQL qui intègre les transactions, InnoDB pour le plus courant, et il est dit qu'il est plus lent que MyISAM. Vu que tu as déjà des timeout, là aussi il faut voir. Comme ça au felling, je dirais qu'il serait peut être bon de commencer par faire ces manip sur un réseau plus stable, comme l'ADSL comme tu l'as suggéré. Puis peut être aussi faudrait voir les heures ou tout ça se fait. De même d'évaluer la quantité des traitements, peut être est ce déjà limite limite, qui fait qu'une petite pointe de trafic fait que le serveur ne peut plus suivre. Faut voir. Tout ça n'est pas simple, faut bien l'avouer.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() |
Bon, merci pour vos réponses, je pense que le mieux c'est encore que je fasse un test grandeur nature, parce que j'ai quand même des doutes sur l'efficacité des transactions pour ce genre de cas.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com