2009-03-05 3 views
0

Auf einem Server können verschiedene temporäre (transiente) Fehler auftreten. Zum Beispiel ein OutOfMemoryError oder eine unterbrochene Verbindung zu einer Datenbank.Gibt es eine Fehlerbehandlungs-API/Framework in Java?

Ich denke, es ist eine gute Idee, solche Arbeit kurze Zeit später zu wiederholen. Natürlich sollte es keine Endlosschleife sein, da der Fehler nicht temporär ist.

Gibt es eine gute API, um damit zu helfen? Oder eine Anleitung, wie ich es selbst umsetzen kann. Es sould haben Parameter wie:

  • Wiederholungszahl
  • max Ausführungszeit
  • benötigt freien Speicher
  • etc
+1

Um nur eine Nit auszuwählen, sind OutOfMemoryErrors wahrscheinlich nicht flüchtig; Wenn Sie Daten haben, die mehr Speicher benötigen, als Ihre JVM für die Verwendung konfiguriert ist, hilft das erneute Versuchen des Jobs nicht. – TMN

+0

Auf einem Server tritt meistens ein OutOfMemoryError auf, weil zu vielen Clients Anfragen temporär sind. Einige Sekunden später kann dies andere aussehen. – Horcrux7

+0

Wenn Sie OutOfMemoryError wegen des Ladens erhalten, müssen Sie die Last irgendwie drosseln (die Anfragen in die Warteschlange stellen oder sie einfach ablehnen). OutOfMemoryErrors können * überall * als Ergebnis der Speicherbelegung an anderer Stelle auftreten. Sie können nicht nur einen Teil des Codes mit try/catch umgehen. –

Antwort

3

Diese allgemeine Idee oft der Circuit Breaker Muster genannt wird. Google hat eine interesting list von Implementierungsideen.

Verwandte Themen