Schedulerkonfiguration oder -topologie

Der Scheduler verwendet eine Datenbank, in der er persistent speichert, welche Tasks und wann diese Tasks ausgeführt werden. Es können Fehler auftreten, wenn die Topologie des Anwendungsservers oder die Anwendungs- oder Serverkonfiguration geändert wird. Wenn Sie die Konfiguration oder Topologie ändern, müssen Sie genau überlegen, wie sich diese Aktion auf den Scheduler auswirkt.

EJB-Zeitgeber/Scheduler konfigurieren

Fehler vermeiden Fehler vermeiden: Wenn Sie einen EJB-Zeitgeber/Scheduler konfigurieren, denken Sie daran, dass der Standardscheduler standardmäßig die einfache dateibasierte Apache Derby-Datenbank verwendet, damit Ihnen schnell eine funktionierende Umgebung zur Verfügung steht. Verwenden Sie die Derby-Datenbank nicht in Produktionsumgebungen. Außerdem unterstützt die Derby-Standarddatenbank weder einen Cluster-Job-Scheduler noch einen Clusterstapelcontainer.gotcha

Sicherheit einschränken

Wenn Sie Tasks mit einem Anwendungsserver erstellt haben, in dem die Sicherheit inaktiviert ist, und Sie später entscheiden, die Sicherheit zu aktivieren, kann der Scheduler Schwierigkeiten haben, die Tasks auszuführen. Beim Erstellen einer Task wird der Sicherheitskontext des Anwendungsthread automatisch mit der Task gespeichert. Falls der Sicherheitskontext nicht mit der Task gespeichert wird (siehe Benutzerberechtigung für Scheduler-Tasks) und Sie später die Sicherheit im Server oder in der Anwendung aktivieren, wenn die Task ausgeführt werden soll, können die folgenden Fehler protokolliert werden:
SECJ0053E: Berechtigung für /UNAUTHENTICATED beim Aufruf von (Home)com/ibm/websphere/scheduler fehlgeschlagen:
/TaskHandler create:2 securityName: /UNAUTHENTICATED;accessID: UNAUTHENTICATED wurden keine der erforderlichen
Rollen erteilt: MySecurityRole

Bevor Sie die Sicherheit im Server oder in einer Anwendung aktivieren, müssen Sie feststellen, ob sich diese Aktion nachteilig auf Tasks auswirkt. Sollte dies der Fall sein, verwenden Sie die Scheduler-API oder die MBean WASScheduler, um die Tasks abzubrechen und sie nach der Konfiguration der Sicherheit erneut zu erstellen.

Änderungen der Anwendungsservertopologie

Der Scheduler speichert javax.ejb.HomeHandle-Objekte für die Home-Schnittstellen TaskHandler, NotificationSink und UserCalendar, wenn die Task erstellt wird. Wenn Sie die Task später ausführen, werden diese HomeHandle-Objekte erneut für den Zugriff auf die Home-Schnittstelle der EJB-Komponente verwendet. Wenn das HomeHandle-Objekt auf eine EJB in einer Einzelserverumgebung verweist, haben die HomeHandle-Objekte eine Affinität zu diesem Server. Wenn das Home-Handle-Objekt eine EJB-Komponente in einem Cluster referenziert, haben die Home-Handles eine Affinität zum Cluster.

Sollte der Anwendungsserver oder WLM-Cluster, auf den ein HomeHandle-Objekt verweist, nicht verfügbar sein, kann der Scheduler die Task nicht ausführen, und es wird der folgende Fehler protokolliert:
SCHD0063E: Eine Task mit der ID 123 konnte nicht im Scheduler MyScheduler (sched/MyScheduler) ausgeführt werden, weil eine Ausnahme eingetreten ist: {Fehlerursache}

Wenn Sie den Anwendungsserver auf einen Cluster aufrüsten oder die Eigenschaft ORB_LISTENER_ADDRESS für den Object Request Broker (ORB) nicht auf eine feste Portnummer gesetzt ist (siehe "Eingehende Transporte konfigurieren"), kann die Task ebenfalls fehlschlagen, weil die im HomeHandle-Objekt gespeicherten Informationen nicht auf den gewünschten Server zeigen.

Upgrade auf einen Scheduler-Cluster

Ein Scheduler-Cluster, der nicht mit einem WLM-Cluster zu verwechseln ist, ist eine Sammlung von Schedulerkonfigurationen in verschiedenen Anwendungsservern, die denselben JNDI-Namen, dieselbe JDBC-Datenquelle und dasselbe Tabellenpräfix nutzen. Wenn Sie einen eigenständigen Scheduler auf einen Cluster-Scheduler aufrüsten, müssen die Anwendung und alle zugehörigen Ressourcen, die die Anwendung erfordert, verfügbar sein. Sollte dies nicht der Fall sein, kann die Task nicht ausgeführt werden, und es wird die folgende Fehlernachricht protokolliert:
SCHD0103W: Der Scheduler MyScheduler (sched/MyScheduler) konnte die Task 123 nicht ausführen,
weil die Anwendung oder das Modul nicht verfügbar ist: MyTaskHandlerEJB

Um Probleme mit der Verfügbarkeit von Anwendungen zu vermeiden und optimale Ergebnisse zu erzielen, verwenden Sie in einem Scheduler-Cluster dieselben Server wie in einem WLM-Cluster.

Schedulertabellen wiederverwenden

Wenn Sie eine Topologie ändern, eine Entwicklungsumgebung auf eine Produktionsumgebung umstellen oder Konfigurationsänderungen vornehmen, die die Umgebung restriktiver machen, können Sie optimale Ergebnisse erzielen, indem Sie unterschiedliche Gruppen von Schedulertabellen verwenden. Ohne sorgfältige Planung kann die Wiederverwendung von Schedulertabellen mit geplanten Tasks aus früheren Releases zu Problemen führen:
  • EJB-Komponenten werden in nicht erwarteten Anwendungsservern ausgeführt.
  • Tasks können nicht ausgeführt werden, weil Sicherheitsberechtigungsnachweise ungültig sind oder fehlen.
  • Tasks können nicht ausgeführt werden, weil Java EE-Kontextinformationen ungültig sind oder fehlen.

Die Diagnose solcher Probleme ist schwierig und erfordert eine Analyse der Protokolle aller Server, in denen ein Scheduler installiert und konfiguriert ist. Wenn Sie die fehlerhaften Tasks ermitteln, können Sie diese mit den Scheduler-APIs abbrechen oder die Tabellen löschen und erneut erstellen.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsch_changes
Dateiname:rsch_changes.html