Executer un dumping de table MySQL toutes les x heures - Java - Programmation
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)
Marsh Posté le 28-09-2004 à 10:50:25
et bah voila merci je vais regarder de ce coté
tu gères El_gringo
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...
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 ?
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é.
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...
Marsh Posté le 28-09-2004 à 12:02:13
Pourquoi Timer poserait problème dans un environnement de servlets au juste ?
Marsh Posté le 28-09-2004 à 12:04:05
peut etre parce que t'es pas supposer y créer de threads ?
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) |
utilise un process externe.
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 ? |
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 ?
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)
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", ...
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.
Marsh Posté le 28-09-2004 à 12:57:06
si c'est un projet j2ee alors pourquoi tu ne vois que jsp/servlet ?
Marsh Posté le 28-09-2004 à 13:14:38
the real moins moins a écrit : |
en fait quartz c'est un peu plus qu'une api, on peut déja l'utiliser tel quel.
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?
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 ?
Marsh Posté le 28-09-2004 à 13:24:38
oui ben donc vous faites du jsp/servlet pas du "pur j2ee"
Marsh Posté le 28-09-2004 à 13:27:44
the real moins moins a écrit : oui je voulais dire librairie.(?) |
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...
Marsh Posté le 28-09-2004 à 13:28:09
Nenelle a écrit : |
pas si tu ne veux pas de process externe
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" |
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.
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 ?
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
Marsh Posté le 28-09-2004 à 13:57:49
sircam a écrit : |
c ce que je voulais dire
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
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
Marsh Posté le 28-09-2004 à 14:54:59
ozark74 a écrit : |
mouaif
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. |
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à
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 ? [/citation] [ |
doit y avoir moyen d'en faire des choses avec ca !
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 ... |
C'est bon d'être soutenu !
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.
Marsh Posté le 28-09-2004 à 16:56:07
(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)
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
Marsh Posté le 28-09-2004 à 16:58:21
c'est vrai, c'est tellement pratique de faire un backup a coup de jdbc
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 |
ouais, dans la cas d'un backup, ok ... je parlais plus d'un point de vue générale, là ...
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
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 |
the real moins moins a écrit : peut etre parce que t'es pas supposer y créer de threads ? |
Marsh Posté le 28-09-2004 à 17:09:12
ReplyMarsh 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.
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 => !!!