Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1280 connectés 

  FORUM HardWare.fr
  Programmation

  ******** Gestion des scripts PHP sous Apache ********

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

******** Gestion des scripts PHP sous Apache ********

n°30640
linux2000
Posté le 11-05-2001 à 11:45:40  profilanswer
 

Lorqu'un script PHP s'execute côté serveur(Apache), peut t'on être sûr que le script va s'executer de A à Z sans interruption.  
Va t'il garder la main ? Un exemple :
Voici un script qui réalise les étapes suivantes :
1) Récupération des données X1 et X2 dans une table.
2) Selon X1 et X2, executer l'Action_mise_à_jour 1  
ou l'Action_mise_à_jour 2.
Si les valeurs X1 ou X2 venaient à changer pendant l'execution du script, l'action à réaliser serait totalement différente.

mood
Publicité
Posté le 11-05-2001 à 11:45:40  profilanswer
 

n°30654
nicotine
Posté le 11-05-2001 à 11:58:39  profilanswer
 

pas tout compris ....


---------------
Do androïds dream of electric sheep ?
n°30658
duch
Posté le 11-05-2001 à 12:00:27  profilanswer
 

cela dépends de ton curseur, si tu utilise un curseur statique, cela ne devrait pas poser de problème, par contre ce qui était vrai au moment où tu as fait ta requête ne le seras plus forcément une seconde plus tard.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
n°30662
linux2000
Posté le 11-05-2001 à 12:07:00  profilanswer
 

nicotine a écrit a écrit :

pas tout compris ....




 
Lorsque plusieurs scripts sont envoyés au serveur dans un laps de temps très court, est-ce que le serveur les execute un par un et dans l'ordre d'arrivée ?

n°30664
nicotine
Posté le 11-05-2001 à 12:10:15  profilanswer
 

bonne question que je ne m'etais jamais posé ........
mais dans quel cas as tu besoin de cette ordonnance ?


---------------
Do androïds dream of electric sheep ?
n°30668
kadreg
profil: Utilisateur
Posté le 11-05-2001 à 12:13:00  profilanswer
 

nicotine a écrit a écrit :

bonne question que je ne m'etais jamais posé ........
mais dans quel cas as tu besoin de cette ordonnance ?




 
Le serveur execute plusieurs accès pages php en même temps (je les voit dans mon top). Si tu a besoin de garantir l'intégrité dans le temps, utilise des transaction (très bien), ou des semaphores (bien si le temps est très court).


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°30669
nicotine
Posté le 11-05-2001 à 12:13:36  profilanswer
 

je ne pense pas ....  
 
ex : 2 scripts dont un avec un sleep ...  
 
le 2eme s'executera avant le 1er a moins que le 2eme n'ai besoin du 1er !


---------------
Do androïds dream of electric sheep ?
n°30670
nicotine
Posté le 11-05-2001 à 12:14:09  profilanswer
 

kadreg > c'est quoi les semaphores ?


---------------
Do androïds dream of electric sheep ?
n°30671
linux2000
Posté le 11-05-2001 à 12:15:02  profilanswer
 

Je crée une base de données de support médias (vidéos, posters, diapos...) Je gère les emprunts.
A un moment donné, deux personnes ne peuvent pas emprunter la même vidéo.

n°30674
linux2000
Posté le 11-05-2001 à 12:17:01  profilanswer
 

MYSQL ne gère pas les transactions.

mood
Publicité
Posté le 11-05-2001 à 12:17:01  profilanswer
 

n°30675
nicotine
Posté le 11-05-2001 à 12:17:16  profilanswer
 

rollback et commit ?


---------------
Do androïds dream of electric sheep ?
n°30676
duch
Posté le 11-05-2001 à 12:18:34  profilanswer
 

as-tu calculer la probabilité que deux personnes choisissent la même vidéo à la même seconde (voir moins), si celle-ci est quasi-nulle est-ce bien nécessaire de se prendre la tête


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
n°30677
linux2000
Posté le 11-05-2001 à 12:19:10  profilanswer
 

Rollback et commit ?
Je ne sais pas. Avis aux autres programmeurs...

n°30679
linux2000
Posté le 11-05-2001 à 12:20:20  profilanswer
 

La proba est très petite mais ca foutrait la merde dans la BD !

n°30682
linux2000
Posté le 11-05-2001 à 12:34:06  profilanswer
 

Voici un bout de la doc MYSQL qui pourrait me servir et vous servir car je pense que ma question n'était pas bête...
MYSQL ne gère pas les transactions et ROLLBACK. Cela va changer dans les prochaines versions. Par contre on peut vérouiller les tables. Je n'y avais pas pensé.
 
7.23 LOCK TABLES/UNLOCK TABLES
LOCK TABLES Nom_table [AS alias] {READ | [LOW_PRIORITY] WRITE}
[, Nom_table {READ | [LOW_PRIORITY] WRITE} ...]
...
UNLOCK TABLES
LOCK TABLES verrouille une table dans le thread courant.  
UNLOCK TABLES ouvre tous les verrous posé par le thread courant. Toutes les tables verrouillé par un thread sont automatiquement déverrouillée quand le thread émet un autre LOCK TABLES, ou à la fin de la connexion au serveur.
Si un thread obtiens le verrou de lecture (READ) sur une table, le thread (et tous les autres threads) ne peut
que lire dans la table. Si un thread obtiens le verrou de lecture (READ) sur une table, le thread qui a le verrous
est le seul à pouvoir lire ou écrire dans la table.
Les autres threads attendent (sans limite) que le verrous se libère.
Le verrous d'écriture a une priorité supérieure au verrou de lecture, afin que les processus de mise à jour
puisse se faire dès que possible. Cela signifie que si un thread obtiens un verrou de lecture, et qu'un autre
thread obtiens un verrou d'écriture, alors le thread au verrou de lecture devra attendre la libération du verrou
d'écriture. Il est possible d'utiliser des verrous d'écriture de basse priorité (LOW_PRIORITY WRITE), mais il
faut être sur qu'il y aura un moment ou aucun thread ne sera en train de lire la table.
Lors de l'utilisation de la commande LOCK TABLES, il faut verrouiller toutes les tables qui vont être
utilisées. Si il y a des alias dans une requête, il faut aussi avoir les verrous pour les alias! Cette politique
assure que la table ne se verrouille jamais, sans pouvoir être déverrouillée.
Il ne faut jamais verrouiller une table qui va accepter une insertion reportée (INSERT DELAYED). Car, dans
ce cas, l'insertion sera faite dans un autre thread, qui n'aura pas le verrou.
Généralement, il n'y a pas besoin de verrouiller les tables, car les mise à jour UPDATE sont atomiques : aucun
autre thread ne peut interférer avec la commande en cours d'éxécution. Il y a toutes fois, quelques cas où il est
bon de verrouiller une table

n°30683
kadreg
profil: Utilisateur
Posté le 11-05-2001 à 12:36:29  profilanswer
 

linux2000 a écrit a écrit :

Rollback et commit ?
Je ne sais pas. Avis aux autres programmeurs...




 
Pas accessibles depuis PHP dans le cadre de mySql.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°30686
kadreg
profil: Utilisateur
Posté le 11-05-2001 à 12:39:05  profilanswer
 

nicotine a écrit a écrit :

kadreg > c'est quoi les semaphores ?




 
La possibilité de créer des zones critiques dans un programmes, et tu est sur que, a tous moment, une seule instance de ton programme sera dedans.
 
Si une seconde instance à besoin de rentrer dans la zone critique, elle attendra que la première en sorte.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°30688
nicotine
Posté le 11-05-2001 à 12:40:17  profilanswer
 

lock/unlock : veilles a bien de-locker tes tables avant chaque nouvelle action !!!!  
 
je suis deja tombé dans le panneau !!  un oubli diront nous ;)


---------------
Do androïds dream of electric sheep ?
n°30689
kadreg
profil: Utilisateur
Posté le 11-05-2001 à 12:43:12  profilanswer
 

nicotine a écrit a écrit :

rollback et commit ?




 
Tiens, au fait, quelqu'un peut m'expliquer cette page de la doc de mySql, c'est lié :
 
http://www.mysql.com/doc/C/O/COMMIT.html


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°30690
kadreg
profil: Utilisateur
Posté le 11-05-2001 à 12:44:18  profilanswer
 

nicotine a écrit a écrit :

lock/unlock : veilles a bien de-locker tes tables avant chaque nouvelle action !!!!  
 
je suis deja tombé dans le panneau !!  un oubli diront nous ;)




 
Attention à la montée en charge du serveur, j'ai eut des surprise avec le script timeout :D


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°30729
nicotine
Posté le 11-05-2001 à 14:09:28  profilanswer
 

kadreg a écrit a écrit :

 
 
Tiens, au fait, quelqu'un peut m'expliquer cette page de la doc de mySql, c'est lié :
 
http://www.mysql.com/doc/C/O/COMMIT.html




en positionnant le flag autocommit à 0 , tu es en safe mode , cad que tu peux revenir a l'etat precedent en utilisant rollback.
 
honnetement : je ne m'en suis jamais servi meme si a l'air bien pratique ;)
 
j'avais quand meme fait une tentative : je devais faire un log analyzer mais il y avait enormement de requetes sql que j'executais au coup par coup (au lieu de les stockes dans un fichier et de faire une seule action finale).
Le probleme , j'etais en cours de dvlpt et a chaque bug , je devais purger les derniers entrées ......
ma methode etait un dump avant de lancer le binaire.
 
avec le commit/rollback , tu t'affranchis de cette methode


---------------
Do androïds dream of electric sheep ?
n°30738
kadreg
profil: Utilisateur
Posté le 11-05-2001 à 14:18:35  profilanswer
 

Je me suis mal expliqué.
 
mysql supporte cette technique que dans le cas de tables transactions safe. Qu'es-ce qu'une table transactions safe ?

n°30740
nicotine
Posté le 11-05-2001 à 14:21:40  profilanswer
 

les manip' sont stockés (si j'ai bien compris) dans un fichier de log binaire.  les tables ne sont pas mises a jour avant un ordre final.
 
mais j'ai jamais reussi a faire correctement la manip (ca remonte a un an).


---------------
Do androïds dream of electric sheep ?
n°30745
nicotine
Posté le 11-05-2001 à 14:26:01  profilanswer
 

mais je sais pas si ca repond a ta question :(


---------------
Do androïds dream of electric sheep ?
n°30752
ajnag
where no man has gone before
Posté le 11-05-2001 à 14:31:11  profilanswer
 

linux2000 a écrit a écrit :

MYSQL ne gère pas les transactions.




 
te plains pas tu bosses sous mySQL y'en a qui bosse sur SQLserveur 7 ....
 
 
:lol:

 

[edit]--Message édité par ajnag--[/edit]

n°30772
kadreg
profil: Utilisateur
Posté le 11-05-2001 à 15:03:16  profilanswer
 

ajnag a écrit a écrit :

 
 
te plains pas tu bosses sous mySQL y'en a qui bosse sur SQLserveur 7 ....




 
Y'en a qui bossent sous cloudscape :lol:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  ******** Gestion des scripts PHP sous Apache ********

 

Sujets relatifs
Gestion des évènements avec les MFCGestion des évènements avec les MFC
Problème d'accès au un répertoire avec Apache[PHP] acces
PHP et librairie GDPhp serveur SSL (Ca marche mais le cadenas ne s'affiche pas)
PHP et Expressions régulières : un pb tout simple.javascript : quels outils pour signer des scripts
Apache sous Windows Me[PHP] phpBB
Plus de sujets relatifs à : ******** Gestion des scripts PHP sous Apache ********


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR