# job an webanwendung koppeln



## martinmiethe (20. Jun 2008)

Hallo Java Forum,

ich benoetige fuer meine JSP/Servlet Anwendung einen Prozess der 1 mal am Tag Daten
von einer Datenbank in eine andere kopiert (und zusaetzlich noch ein paar Validierungen ausfuehrt).

Wie wuerdet ihr sowas umsetzen?

Ich dachte ich schreibe ein von der Webanwendung unabhaengiges Java Programm welches
1 mal am Tag diese Aufgabe ausfuehrt. Mir gefaellt daran blos nicht das ich dann 2 voneinander unabhaengige
Programme habe ...

Gibt es eine Moeglichkeit sowas direkt an die Webanwendung zu koppeln? Evtl. als programmierbaren Job
in Tomcat oder so aehnlich?

Ich habe mal was von Quartz (http://www.opensymphony.com/quartz/) gehoert weis aber nicht ob es mit
hilft und ob es evtl. eine einfachere Moeglichkeit gibt.

Vielen Dank
Gruss
Martin


----------



## Guest (23. Jun 2008)

Starte in einerm ServletContextListener (javax.servlet.ServletContextListener) einen Timer (javax.ejb.TimerService).


----------



## foobar (23. Jun 2008)

Mit Quarz kannst du nur zeitgesteuert Code ausführen z.b. am 1.1. alle Datensätze archivieren oder ähnliches. Was du brauchst ist ein Framework um Jobs zu erstellen, Status überprüfen etc. Sowas hier: http://static.springframework.org/spring-batch/


----------



## Atze (23. Jun 2008)

die einfachste lösung (also ohne komplettes framework oder eigentständiges programm) wäre wohl ein thread, der permanent mitläuft und die datenbank überwacht


----------



## ABRAXAS (23. Jun 2008)

Muss eigentlich ja nich ma die DB überwachen. wenn einmal pro Tag gesichert werden soll kann der Thread ja immer mal wieder kontrollieren ob angegebene zeit zum sichern gekommen ist und dann sichern. Wenn der Thread jede Minute mal guckt ob die Zeit gekommen ist sollte das reichen und der geht kein bischen auf die Performance. 
Und wenn der halt nur mit ner Minute genauigkeit die Sicherung startet sollte es eigentlich auch keine Probleme geben.


----------



## martinmiethe (23. Jun 2008)

hallo, vielen dank fuer die antworten erstmal.

Die Genauigkeit ist ziemlich egal. Sollte nur 1mal pro Tag sein und moeglichst nachts.
Ich will auch kein komplettes Framework anwenden...

Momentan versuche es einfach mit java.util.Timer welchen ich in der init() Methode des Servlets initialisiere.

Scheint recht gut zu funktionieren...

Viele Gruesse
Martin


----------

