Executer un dumping de table MySQL toutes les x heures

Executer un dumping de table MySQL toutes les x heures - Java - Programmation

Marsh Posté le 28-09-2004 à 10:41:07    

Hello!
 
Je réalise actuellement une appli d'emploi du temps en J2EE avec servlets et jsp.
 
Une des fonctions de cette appli est la sauvegarde automatique des bases de données (utilisateurs, rendez-vous) toutes les x heures (par defaut toutes les 24 heures).
 
Je voudrais savoir comment faire pour lancer ma fonction toutes les x heures de façon automatique, je n'ai aucune idée de la manière dont procéder.
 
D'ailleurs, est-ce possible uniquement à l'aide de jsp / servlets ?
 
Si je suis pas clair demandez de reexpliquer :)


Message édité par Nenelle le 29-09-2004 à 12:43:44

---------------
http://chilax.com/forum/index.php?showforum=46 => !!!
Reply

Marsh Posté le 28-09-2004 à 10:41:07   

Reply

Marsh Posté le 28-09-2004 à 10:46:00    

utilise java.util.Timer, c'est fait pour ça. (attention, ne confond pas avec javax.swing.Timer)

Reply

Marsh Posté le 28-09-2004 à 10:50:25    

et bah voila merci je vais regarder de ce coté :)
 
tu gères El_gringo :)


---------------
http://chilax.com/forum/index.php?showforum=46 => !!!
Reply

Marsh Posté le 28-09-2004 à 11:23:20    

euh ouais par contre faire ça "à l'aide de jsp / servlets" ça risque d'etre méchamment bancal...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 11:27:38    

tiens, comment on ferait ca proprement dans un environnement J2EE ?
 
y a moyen de balancer un evenement à un composant de façon périodique ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-09-2004 à 11:50:33    

en j2ee, tu peux utiliser des mbeans 'schedulés'.(une "operation" est appelée periodiquement)... je n'en sais pas bcp plus, je me demande si c'est pas propre à jboss en fait, mais je suppose que la plupart des serveurs offrent ce services.
mais en ejb-2.1 il semblerait qu'ils auraient ajouté un truc à ce sujet?? à confirmer?
 
sinon y'a des api comme quartz; je pense que lorill l'a déjà utilisé.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 11:55:32    

bah en fait je voudrais dumper une base sql (en gros faire un export de toutes les tables de la base uniquement les donnees sans la structure c'est a dire tous les INSERT qu'il faut)
 
et ce dumping devrait se faire automatiquement toutes les 24 heures et aller dans un fichier sql.
 
je vais continuer a regarder mais ca a pas l'air simple
 
de plus j'ai un autre pb plus petit celui la : je n'arrive pas a ecrire dans un fichier depuis ma servlet qui fait le dumping. si vous avez des idees...


---------------
http://chilax.com/forum/index.php?showforum=46 => !!!
Reply

Marsh Posté le 28-09-2004 à 12:02:13    

Pourquoi Timer poserait problème dans un environnement de servlets au juste ?

Reply

Marsh Posté le 28-09-2004 à 12:04:05    

peut etre parce que t'es pas supposer y créer de threads ? [:jofusion]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 12:04:27    

Nenelle a écrit :

bah en fait je voudrais dumper une base sql (en gros faire un export de toutes les tables de la base uniquement les donnees sans la structure c'est a dire tous les INSERT qu'il faut)
 
et ce dumping devrait se faire automatiquement toutes les 24 heures et aller dans un fichier sql.
 
je vais continuer a regarder mais ca a pas l'air simple
 
de plus j'ai un autre pb plus petit celui la : je n'arrive pas a ecrire dans un fichier depuis ma servlet qui fait le dumping. si vous avez des idees...

utilise un process externe.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 12:04:27   

Reply

Marsh Posté le 28-09-2004 à 12:19:56    

the real moins moins a écrit :

peut etre parce que t'es pas supposer y créer de threads ? [:jofusion]


 
J'savais pas !
ça gêne en quoi de créer ses propres thread dans un environnement de servlets, si on les gère correctement ?

Reply

Marsh Posté le 28-09-2004 à 12:21:58    

je vois pas comment tu pourrais les gérer correctement puisque tu n'as aucun controle sur les threads de tes servlets.
(à moins peut etre de jouer avec ça dans des ServletContextListener, et encore, tu serais obligé de garder une ref vers tes threads dans le context[:mlc])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 12:35:13    

ben, on pourrait par exemple gérer des threads  "visiteurs" avec les "session listeners" ou des thread d'appli, avec les "context listeners", ...

Reply

Marsh Posté le 28-09-2004 à 12:56:03    

the real moins moins a écrit :

utilise un process externe.


 
en fait c'est dans le cadre d'un projet purement J2EE donc je peux pas utiliser un process externe :) sinon j'aurais fait ca c'est clair.
 
c'est pas grave je vais essayer de me démerder. au pire je ferais pas cette fonctionnalité.
 
merci pour ton aide.


---------------
http://chilax.com/forum/index.php?showforum=46 => !!!
Reply

Marsh Posté le 28-09-2004 à 12:57:06    

si c'est un projet j2ee alors pourquoi tu ne vois que jsp/servlet ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 13:14:38    

the real moins moins a écrit :


sinon y'a des api comme quartz; je pense que lorill l'a déjà utilisé.


[:cupra]
en fait quartz c'est un peu plus qu'une api, on peut déja l'utiliser tel quel.

Reply

Marsh Posté le 28-09-2004 à 13:21:02    

oui je voulais dire librairie.(?)
tu as une idée de comment ça fonctionne en interne?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 13:21:45    

the real : pcq on a limité notre solution technique aux jsp / servlets pour ne pas s'embarquer dans des choses que nous ne maitrisions pas du tout (EJB...)
 
lorill : quartz ca pourrait marcher pour mon truc ?


---------------
http://chilax.com/forum/index.php?showforum=46 => !!!
Reply

Marsh Posté le 28-09-2004 à 13:24:38    

oui ben donc vous faites du jsp/servlet pas du "pur j2ee" [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 13:27:44    

the real moins moins a écrit :

oui je voulais dire librairie.(?)
tu as une idée de comment ça fonctionne en interne?

j'ai pas trop regardé.
 
y'a une notion de triggers, et de jobs (en gros ils ont découplés le déclancheur du traitement), et de temps en temps quartz demande au trigger la date de prochaine execution, etc...

Reply

Marsh Posté le 28-09-2004 à 13:28:09    

Nenelle a écrit :


lorill : quartz ca pourrait marcher pour mon truc ?


pas si tu ne veux pas de process externe

Reply

Marsh Posté le 28-09-2004 à 13:29:37    

the real moins moins a écrit :

oui ben donc vous faites du jsp/servlet pas du "pur j2ee" [:mlc]


Qu'est-ce que du "pur J2EE" ? JSP/servlet est un subset parmis d'autres. Faut-il utiliser des entity beans pour faire du pur J2EE, ou des session beans suffisent-ils ? MD beans ? JMS ? etc.
 
Mais de là à dire que c'est une appli "J2EE", c'est un peu galvauder le terme.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-09-2004 à 13:48:59    

lorill a écrit :

pas si tu ne veux pas de process externe


 
Pourquoi un process externe est nécessaire ?  
 
une startup class qui initialise le Scheduler de quartz c'est pas suffisant ?

Reply

Marsh Posté le 28-09-2004 à 13:50:14    

franchement, je ferais ca via un cron sur le serveur... je sais ca aide pas beaucoup comme reponse. mais faire ca via l'appli je trouve pas ca propre juste pour un backup :/


---------------
IVG en france
Reply

Marsh Posté le 28-09-2004 à 13:57:49    

sircam a écrit :


 
Mais de là à dire que c'est une appli "J2EE", c'est un peu galvauder le terme.

c ce que je voulais dire


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 13:59:45    

uriel a écrit :

franchement, je ferais ca via un cron sur le serveur... je sais ca aide pas beaucoup comme reponse. mais faire ca via l'appli je trouve pas ca propre juste pour un backup :/

oui mais c'est plus portable la :/

Reply

Marsh Posté le 28-09-2004 à 14:07:32    

KangOl a écrit :

oui mais c'est plus portable la :/


 
effectivement, j'avais pas pense a cet aspect


---------------
IVG en france
Reply

Marsh Posté le 28-09-2004 à 14:54:59    

ozark74 a écrit :


une startup class qui initialise le Scheduler de quartz c'est pas suffisant ?


mouaif

Reply

Marsh Posté le 28-09-2004 à 16:21:23    

the real moins moins a écrit :

peut etre parce que t es pas supposer y créer de threads ?


the real moins moins a écrit :

je vois pas comment tu pourrais les gérer correctement puisque tu n as aucun controle sur les threads de tes servlets.
(à moins peut etre de jouer avec ça dans des ServletContextListener, et encore, tu serais obligé de garder une ref vers tes threads dans le context[:mlc])


 
Pkoi tu veux pas créer de thread dans une appli type servlet ? je vois pas le problème ...
Le moteur de servlet gère son pool de thread pour traiter les requêtes entrantes, mais je vois pas en quoi ca peut être gênant de créer ses propre threads ... Après bien sûr, faut les gérer correctement, mais le cycle de vie des servlets et autres ContextListener étant bien définis, ca pose pas de soucis ...
 
D ailleur, je me gêne pas pour en créer, moi, des threads ... et même des pool de threads ... d ailleur, je suis même en train de me dire que je vais me faire un petit timer dans un servlet, là :D


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-09-2004 à 16:22:09    

joli joce bug :  

Citation :

Erreur: (valeur de remote : 172.29.7.129)You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'es pas supposer y créer de threads ? [:jofusion] [/citation] [


doit y avoir moyen d'en faire des choses avec ca !  :sweat:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-09-2004 à 16:25:38    

benou a écrit :

Pkoi tu veux pas créer de thread dans une appli type servlet ? je vois pas le problème ...
Le moteur de servlet gère son pool de thread pour traiter les requêtes entrantes, mais je vois pas en quoi ca peut être gênant de créer ses propre threads ... Après bien sûr, faut les gérer correctement, mais le cycle de vie des servlets et autres ContextListener étant bien définis, ca pose pas de soucis ...
 
D ailleur, je me gêne pas pour en créer, moi, des threads ... et même des pool de threads ... d ailleur, je suis même en train de me dire que je vais me faire un petit timer dans un servlet, là :D


 
C'est bon d'être soutenu ! :D

Reply

Marsh Posté le 28-09-2004 à 16:38:44    

En général, t'as plus vite fait de faire tourner ton job de backup en dehors de ton container J2EE.
 
Tu as rarement besoin d'accéder à de la business logic déjà en place, ni de réutiliser de composant J2EE pour ce faire.
 
La manie du "tout en J2EE" pour satisfaire un client ou pour assouvir un fantasme n'est souvent pas la manière la plus adaptée.
 
Faire du J2EE pour le plaisir de faire du J2EE, c'est plus que discutable - chacun faisant ce qu'il veut, en ce compris utiliser une fourchette pour boire sa soupe.
 
Un cron qui lance un script à la con ou tout autre variante, en ce compris en utilisant les facilités mises à disposition par ton DBMS, est plus efficace pour faire un backup que du code java, peu adapté et maladroit.
 
De quelle portabilité parle-t-on ici ? La plupart des DBMS fournisse une interface graphique dans laquelle il est possible de scheduler des jobs, en ce compris backup, de manière administrative plutôt que programmatique.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-09-2004 à 16:56:07    

[:bien]
 
(cela dit, en faisant le backup, faut penser à ce que l'appli est en train de faire, donc on peut avoir besoin de - au pire - bloquer l'appli pendant un moment)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 16:57:27    

je vois pas en quoi le code java serait peu adapté et c'est pas gentil de supposer que notre ami ferait un code maladroit :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-09-2004 à 16:58:21    

c'est vrai, c'est tellement pratique de faire un backup a coup de jdbc [:kiki]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 17:00:45    

the real moins moins a écrit :

c'est vrai, c'est tellement pratique de faire un backup a coup de jdbc [:kiki]


ouais, dans la cas d'un backup, ok ... je parlais plus d'un point de vue générale, là ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-09-2004 à 17:04:39    

personne parlait d'un point de vue general, on parle d'un "cron" pour faire un backup ici :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 17:06:43    

the real moins moins a écrit :

personne parlait d'un point de vue general, on parle d'un "cron" pour faire un backup ici :o


the real moins moins a écrit :

peut etre parce que t'es pas supposer y créer de threads ? [:jofusion]


[:kiki]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-09-2004 à 17:09:12    

kakakikikuku


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2004 à 17:49:58    

Benou, je parlais bien in concreto de faire un backup, et pour avoir fait moi-même cette erreur un jour quand j'étais jeune et fou, je déconseille vivement de le faire en java.
 
Et tu as bien compris que je parlais de code maladroit non pas à cause de son auteur, mais parce que c'est inhérent à une telle tâche.
 
Pour ce qui est des threads, rien n'empêche effectivement d'en démarrer dans une appli J2EE. La limitation du multi-threading se situe au niveau des EJB, d'où peut-être la confusion de real.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed