Zeitgeberservice mit Scripting konfigurieren
Sie können wsadmin-Scripting verwenden, um den EJB-Zeitgeberservice (Enterprise JavaBeans) zu konfigurieren.
Vorbereitende Schritte
Informationen zu diesem Vorgang
Das Konfigurationsobjekt "EJBTimer" existiert auf Serverebene. In einer Umgebung mit mehreren Servern hat somit jeder Server ein eigenes Konfigurationsobjekt "EJBTimer", das individuell konfiguriert werden muss.
Vorgehensweise
- Starten Sie das Scriptingtool mit der Scriptingsprache Jython.
- Stellen Sie fest, welche Attribute des Konfigurationsobjekts "EJBTimer" aktualisiert werden müssen. Folgende Attribute des
Konfigurationsobjekts "EJBTimer" können aktualisiert werden:
- datasourceJNDIName
- datasourceAlias
- tablePrefix
- pollInterval
- numAlarmThreads
- schedulerJNDIName
- numNPTimerThreads
- nonPersistentTimerRetryCount
- nonPersistentTimerRetryInterval
- uniqueTimerManagerForNP
Eine vollständige Beschreibung jedes Attributs finden Sie in den Informationen zu den Einstellungen für den EJB-Zeitgeberservice.
Es gibt vier Typen von EJB-Zeitgebern:- Persistente Zeitgeber, die von einer internen Standardschedulerinstanz unterstützt werden
- Persistente Zeitgeber, die von einer angepassten Schedulerinstanz unterstützt werden
- Nicht persistente Zeitgeber, die zusammen mit persistenten Zeitgebern einen gemeinsamen Thread-Pool nutzen
- Nicht persistente Zeitgeber, die keinen gemeinsamen Thread-Pool zusammen mit persistenten Zeitgebern nutzen
Das Konfigurationsobjekt "EJBTimer" enthält die Konfigurationsdaten für alle vier Typen von EJB-Zeitgebern. Jeder der vier Zeitgebertypen verwendet ein Subset der Konfigurationsattribute im Konfigurationsobjekt "EJBTimer". Alle Attribute im Konfigurationsobjekt "EJBTimer" werden verwendet, um mindestens einen der Zeitgebertypen zu konfigurieren, und keines der Attribut wird verwendet, um alle Zeitgebertypen zu konfigurieren. Deshalb müssen Sie wissen, welcher Typ von Zeitgeber laut Konfiguration verwendet werden soll und welche Konfigurationsattribute für diesen Zeitgebertyp gültig sind.
Tabelle 1. Zeitgebertypen und Konfigurationsattribute. Gibt die EJBTimer-Attribute an, die zum Konfigurieren der einzelnen Zeitgebertypen verwendet werden. Attribut Persistent, Standardscheduler Persistent, angepasster Scheduler Nicht persistent, gemeinsam genutzter Thread-Pool Nicht persistent, eindeutiger Thread-Pool datasourceJNDIName Ja Nein, wird stattdessen in der angepassten Schedulerkonfiguration angegeben Nein Nein datasourceAlias Ja Nein, wird stattdessen in der angepassten Schedulerkonfiguration angegeben Nein Nein tablePrefix Ja Nein, wird stattdessen in der angepassten Schedulerkonfiguration angegeben Nein Nein pollInterval Ja Nein, wird stattdessen in der angepassten Schedulerkonfiguration angegeben Nein Nein numAlarmThreads Ja Nein Ja Nein schedulerJNDIName Nein Ja Nein Nein numNPTimerThreads Nein Nein Nein Ja nonPersistentTimerRetryCount Nein Nein Ja Ja nonPersistentTimerRetryInterval Nein Nein Ja Ja uniqueTimerManagerForNP Nein Nein Ja Ja Das Vorhandensein eines Werts für das Attribut "schedulerJNDIName" bestimmt, welcher Typ persistenten Zeitgebers verwendet wird. Wenn das Attribut "schedulerJNDIName" einen Wert hat, wird eine angepasste Schedulerinstanz verwendet. Hat das Attribut "schedulerJNDIName" keinen Wert, wird die interne Standardschedulerinstanz verwendet.
Das Attribut "numAlarmThreads" entspricht der Option "Anzahl der Zeitgeberthreads" im Konfigurationsabschnitt für persistente EJB-Zeitgeber in der Administrationskonsole. Das Attribut "numNPTimerThreads" entspricht der Option "Anzahl der Zeitgeberthreads" im Konfigurationsabschnitt für nicht persistente EJB-Zeitgeber in der Administrationskonsole.
Das Attribut "uniqueTimerManagerForNP" entspricht den Optionen "Für persistente Zeitgeber konfigurierten Thread-Pool gemeinsam nutzen" und "Separaten Thread-Pool für nicht persistente Zeitgeber erstellen" in der Administrationskonsole.
Das Attribut "uniqueTimerManagerForNP" bestimmt, ob der Thread-Pool von persistenten und nicht persistenten Zeitgebern gemeinsam genutzt wird. Außerdem legt es fest, ob das Konfigurationsattribut "numAlarmThreads" oder "numNPTimerThreads" verwendet wird.
Tabelle 2. Auswirkungen des Attributs "uniqueTimerManagerForNP". Das Attribut "uniqueTimerManagerForNP" wirkt sich auf die gemeinsame Nutzung des Thread-Pools und die Threadkonfiguration aus. Attribut "uniqueTimerManagerForNP" Persistente und nicht persistente Zeitgeber nutzen einen gemeinsamen Thread-Pool Verwendetes Threadkonfigurationsattribut Ignoriertes Threadkonfigurationsattribut true Nein numNPTimerThreads numAlarmThreads false Ja numAlarmThreads numNPTimerThreads - Fordern Sie eine Referenz auf das richtige EJBTimer-Konfigurationsobjekt an, und speichern Sie
sie in einer Variablen.
Mit Jacl:
set timer [$AdminConfig list EJBTimer]
Mit Jython:timer = AdminConfig.list('EJBTimer')
Wenn Sie in einer Umgebung mit mehreren Servern arbeiten, werden mehrere EJBTimer-Konfigurationsobjekte zurückgegeben. Gehen Sie die Liste wiederholt programmgesteuert durch, und wählen Sie das EJBTimer-Konfigurationsobjekt für den Server aus, den Sie aktualisieren müssen.
In einer Umgebung mit mehreren Servern können Sie alternativ zum wiederholten programmgesteuerten Durchgehen der Liste mit EJBTimer-Objekten manuell das richtige EJBTimer-Objekt auswählen, dieses kopieren und es dann in Ihre Variable einfügen.
Die Ausgabe des Befehls AdminConfig list könnte wie folgt aussehen:
(cells/myCell01/nodes/myCellManager01/servers/dmgr|server.xml#EJBTimer_1)(cells/myCell01/nodes/myNode02/servers/server1|server.xml#EJBTimer_1246050925244)
Kopieren und fügen Sie die Referenz für das erforderliche EJBTimer-Objekt in Ihre Variable ein:
Mit Jacl:set timer "(cells/myCell01/nodes/myNode02/servers/server1|server.xml#EJBTimer_1246050925244)"
Mit Jython:timer = "(cells/myCell01/nodes/myNode02/servers/server1|server.xml#EJBTimer_1246050925244)"
- Aktualisieren Sie die Attribute für das EJBTimer-Konfigurationsobjekt.
Aktualisieren Sie die Attribute für das EJBTimer-Konfigurationsobjekt mit dem Befehl AdminConfig modify. Geben Sie als Eingabe für den Befehl die im vorherigen Schritt angeforderte EJBTimer-Referenz an. Das zweite Argument des Befehls ist eine Liste mit Name/Wert-Paaren.
Geben Sie Folgendes ein, um beispielsweise einen Wiederholungszähler von 10 und ein Wiederholungsintervall von 15 Sekunden festzulegen:
Mit Jacl:set update "{nonPersistentTimerRetryCount 10} {nonPersistentTimerRetryInterval 15}" $AdminConfig modify $timer $update
Mit Jython:AdminConfig.modify(timer, '[[nonPersistentTimerRetryCount "10"] [nonPersistentTimerRetryInterval "15"]]')
- Speichern Sie die Konfigurationsänderungen.
Mit Jython:
AdminConfig.save()
Mit Jacl:$AdminConfig save
- Synchronisieren Sie den Knoten nur in einer
Network Deployment-Umgebung.
Mit Jacl:
set sync1 [$AdminControl completeObjectName type=NodeSync,node=<Ihr Knoten>,*] $AdminControl invoke $sync1 sync
Die Knotensynchronisation in diesen Beispielen muss bei aktiver Verbindung zum Server vorgenommen werden.sync1 = AdminControl.completeObjectName('type=NodeSync,node=<your node>,*') AdminControl.invoke(sync1, 'sync')
Ergebnisse
Unterartikel
- Zeitgeberservice für Network Deployment konfigurieren
Sie können den EJB-Zeitgeber (Enterprise JavaBeans) für Zeitgeber konfigurieren, die das Beenden und Neustarten des Anwendungsservers überstehen. - Beispiel: Zeitgeberservice mit der Schnittstelle "TimedObject" verwenden
Das folgende Beispiel zeigt die Implementierung der Methode ejbTimeout(), die beim Eintreten des geplanten Ereignisses aufgerufen wird. - Einstellungen des EJB-Zeitgeberservice
Verwenden Sie diese Seite, um den EJB-Zeitgeberservice für einen bestimmten EJB-Container zu konfigurieren und zu verwalten. - Zeitgeberservice konfigurieren
Sie können den EJB-Zeitgeberservice für einen bestimmten EJB-Container konfigurieren und verwalten.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_ejbTimer_config
Dateiname:txml_ejbTimer_config.html