Persistente Zeitgeber im Enterprise JavaBeans-Zeitgeberservice konfigurieren
Für persistente EJB-Zeitgeber können Sie im EJB-Zeitgeberservice die Datenquelle, in der die Zeitgeber gespeichert werden, das Intervall zwischen den Zeitgeberwiederholungen und die Anzahl der Wiederholungen für fehlgeschlagene Aufrufe der Zeitlimit-Callback-Methode konfigurieren.
Informationen zu diesem Vorgang
Wenn das Feature "ejbPersistentTimer" aktiviert ist, muss eine Datenquelle für die persistente Speicherung der Zeitgeber konfiguriert werden. Ansonsten schlagen alle Versuche, persistente Zeitgeber zu verwenden, fehl. Der EJB-Zeitgeberservice verwendet die Standarddatenquelle, sofern diese konfiguriert und keine andere spezielle Datenquelle für den EJB-Zeitgeberservice konfiguriert ist.
Der EJB-Zeitgeberservice wiederholt fehlgeschlagene Aufrufe der Zeitlimit-Callback-Methode für persistente Zeitgeber alle 5 Minuten, bis die Zeitlimit-Callback-Methode erfolgreich ausgeführt wird.
Verwenden Sie zum Konfigurieren persistenter Zeitgeber die folgenden Optionen.
- Steuerprogramm für terminierte Tasks persistenter EJB-Zeitgeber
Gibt eine Referenz auf ein persistentes Steuerprogramm an, das das Verhalten persistenter Zeitgeber steuert. Die bereitgestellte Standardinstanz defaultEJBPersistentTimerExecutor verwendet die Standarddatenquelle (DefaultDataSource) als persistenten Speicher. Sie können die Referenz auf das Steuerprogramm für terminierte Tasks persistenter EJB-Zeitgeber ändern oder die Standardinstanz überschreiben, um bestimmte Werte zu ändern. Die folgenden Optionen sind für das persistente Steuerprogramm verfügbar:
- Wiederholungslimit
Gibt an, wie oft eine fehlgeschlagene Zeitlimit-Callback-Methode maximal wiederholt wird. Wenn die Zeitlimit-Callback-Methode bei der Wiederholung erfolgreich ist, stellt der Server die Versuche, die Methode auszuführen, ein. Schlägt eine Wiederholung fehl, setzt der Server die Wiederholungsversuche oft, bis die Zeitlimit-Callback-Methode erfolgreich ist oder das Wiederholungslimit erreicht wird. Nach dem Erreichen des Wiederholungslimits stellt der Server seine Versuche, die Zeitlimit-Callback-Methode auszuführen, ein, selbst wenn die vorherigen Versuche nicht erfolgreich waren. Der Standardwert -1 gibt an, dass die Wiederholungen nicht begrenzt sind. Der Wert 0 gibt an, dass keine Wiederholungen stattfinden, und ist mit der EJB-Spezifikation nicht kompatibel. Ein Wert größer-gleich 1 gibt die gewünschte Anzahl an Wiederholungen an.
Eine Änderung der konfigurierten Anzahl an Wiederholungen der Zeitlimit-Callback-Methode für nicht persistente Zeitgeber ist für Anwendungen hilfreich, in denen nicht persistente Zeitgeber nicht jedes geplante Mal ausgeführt werden müssen. Wenn eine Anwendung beispielsweise einen nicht persistenten Intervallzeitgeber erstellt, der alle 5 Minuten ausgeführt werden soll, führt die Konfiguration einer Wiederholungsanzahl von 0 dazu, dass der Zeitgeber alle 5 Minuten ein einziges Mal ausgeführt wird, unabhängig davon, ob er erfolgreich ist oder nicht.
- Wiederholungsintervall
Gibt das Intervall an, in dem eine fehlgeschlagene Zeitlimit-Callback-Methode wiederholt wird. Die erste Wiederholung findet immer sofort statt, unabhängig vom Intervall, das mit diesem Wert konfiguriert wird. Alle weiteren Wiederholungen werden in dem mit diesem Wert angegebenen Intervall durchgeführt. Der Wert 0 gibt an, dass alle Wiederholungen sofort stattfinden. Ein Wert größer-gleich 1 gibt an, dass die einzelnen Wiederholungen jeweils nach dieser Anzahl an Sekunden durchgeführt werden. Der Standardwert sind 300 Sekunden.
Die Konfiguration eines anderen Wiederholungsintervalls für nicht persistente Zeitgeber ist für Anwendungen hilfreich, in denen es wichtig ist, dass die Zeitlimit-Callback-Methode vor der geplanten Zeit abgeschlossen ist. Dieser Ansatz ist auch für Anwendungen zutreffend, in denen es vertretbar ist, die Zeitgeberausführung auf einen späteren Zeitpunkt zu verschieben, z. B. ein späteres Wiederholungsintervall, sodass die Chancen, dass die Zeitlimit-Callback-Methode erfolgreich ausgeführt wird, höher sind.
- Persistenter Taskspeicher
Gibt die zu verwendende Datenquelle an. Die bereitgestellte Standardinstanz "defaultDatabaseStore" verwendet die Standarddatenquelle (DefaultDataSource) als persistenten Speicher.