Synchronized en Java servlets - Java - Programmation
Marsh Posté le 07-05-2002 à 10:16:10
en deplaçant ce "travail sur une meme table mysql" dans une classe, hors des servlets donc, qui elle sera synchronized?
Marsh Posté le 07-05-2002 à 10:17:59
ou bien en configurant ta base MySQL pour les accès concurent mais je ne suis pas sur que ce soit possible.
Sinon l'idée de Greg est intéressante. Et en plus tu centralises les opérations à un même endroit.
Marsh Posté le 07-05-2002 à 10:19:19
DarkLord a écrit a écrit : Sinon l'idée de Greg est intéressante. Et en plus tu centralises les opérations à un même endroit. |
Marsh Posté le 07-05-2002 à 10:20:07
greg@freestarthu a écrit a écrit : en deplaçant ce "travail sur une meme table mysql" dans une classe, hors des servlets donc, qui elle sera synchronized? |
le pb c'est que c'est des trucs qui seraient assez lourd a deplacer...
sinon je voyai le moyen de mettre un flag à la main sur la table "occupée" mais c'est du bricolage
Marsh Posté le 07-05-2002 à 10:22:23
si c'est lourd à déplacer c'est que tu as bricolé ton code aussi Et puis il y a des outils pour ça
IntelliJ
Marsh Posté le 07-05-2002 à 10:25:01
DarkLord a écrit a écrit : si c'est lourd à déplacer c'est que tu as bricolé ton code aussi Et puis il y a des outils pour ça IntelliJ |
oui mais bon je préfère éviter le deplacement...
sinon on m'a parlé de lock table en mysql c'est bien ?
Marsh Posté le 07-05-2002 à 11:39:50
Utilise des transactions en passant par des Procedures stockées ca permettra de faire des lock sur les tables sur lesquelles tu travaille !!
Marsh Posté le 07-05-2002 à 11:40:36
DaRoD a écrit a écrit : Utilise des transactions en passant par des Procedures stockées ca permettra de faire des lock sur les tables sur lesquelles tu travaille !! |
ça existe pas avec mysql
Marsh Posté le 07-05-2002 à 15:46:49
le truc le plus simple c'est ca :
tu créés une class verrou :
public class Verrou {
pubblic static final Verrou defaultVerrou = new Verrou();
}
ensuite, tu entoures tous tes accès à la base de donnée dans chacune de tes servlets par un bloc synchronized sur le verrou :
...
synchronized (Verrou.defaultVerrou) {
...
// le code d'acès a la base de donnée
...
}
...
et voilou.
Marsh Posté le 07-05-2002 à 17:27:38
benou a écrit a écrit : le truc le plus simple c'est ca : tu créés une class verrou : public class Verrou { pubblic static final Verrou defaultVerrou = new Verrou(); } ensuite, tu entoures tous tes accès à la base de donnée dans chacune de tes servlets par un bloc synchronized sur le verrou : ... synchronized (Verrou.defaultVerrou) { ... // le code d'acès a la base de donnée ... } ... et voilou. |
pas con je vais y penser
Marsh Posté le 07-05-2002 à 10:14:05
Est qu'il y a moyen de faire un "synchronized" qui soit pour toutes les servlets et non pas pour seulement la classe ? par exemple j'ai plusieurs servlets qui travaillent sur une meme table mysql et je veut que elle ne fassent pas leurs requetes en même temps...