Zeitgeberservice mit Scripting konfigurieren

Sie können wsadmin-Scripting verwenden, um den EJB-Zeitgeberservice (Enterprise JavaBeans) zu konfigurieren.

Vorbereitende Schritte

Sie müssen sich mit Jacl oder Jython und mit dem wsadmin-Scripting auskennen.

Informationen zu diesem Vorgang

Das Verhalten von EJB-Zeitgebern wird mit dem Konfigurationsobjekt EJBTimer in der Datei server.xml konfiguriert. Wenn Sie EJB-Zeitgeber haben, müssen Sie das Konfigurationsobjekt "EJBTimer" aktualisieren, um die optimalen Einstellungen für Ihre Umgebung abzurufen.

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

  1. Starten Sie das Scriptingtool mit der Scriptingsprache Jython.
  2. 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
    Im wird jeweils einer der beiden Typen persistenter Zeitgeber und einer der beiden Typen nicht persistenter Zeitgeber konfiguriert.

    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
  3. 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)"
  4. 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"]]') 
  5. Speichern Sie die Konfigurationsänderungen.
    Mit Jython:
    AdminConfig.save()
    Mit Jacl:
    $AdminConfig save
  6. 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
    Mit Jython:
    sync1 = AdminControl.completeObjectName('type=NodeSync,node=<your node>,*')
    AdminControl.invoke(sync1, 'sync')
    Die Knotensynchronisation in diesen Beispielen muss bei aktiver Verbindung zum Server vorgenommen werden.

Ergebnisse

Nach Ihrer Aktualisierung spiegelt das EJBTimer-Konfigurationsobjekt die von Ihnen angegebenen Attributwerte wider. Starten Sie Ihren Server erneut, damit der Server mit den Änderungen aktualisiert wird.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



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