Angepasste Services erstellen

Sie können für einen Anwendungsserver ein oder mehrere angepasste Services erstellen. Jeder angepasste Service definiert eine Klasse, die bei jedem Start und Herunterfahren des Servers geladen und initialisiert wird. Jede dieser Klassen muss die Schnittstelle "com.ibm.websphere.runtime.CustomService" implementieren. Nachdem Sie einen angepassten Service erstellt haben, konfigurieren Sie diesen mithilfe der Administrationskonsole für Ihre Anwendungsserver.

Informationen zu diesem Vorgang

[z/OS]Angepasste Services werden nicht in Controllern, sondern in Servants ausgeführt. Da während des Lebenszyklus eines Servers mehrere Servants gestartet werden können und dies je nach Bedarf von WLM auch erhebliche Zeit nach dem Server (Controller), wird ein angepasster Service beim Start jedes Servants ausgeführt.

[z/OS]Wenn Sie einen Anbindungspunkt definieren möchten, der beim Starten und Herunterfahren eines Servers ausgeführt wird, müssen Sie eine angepasste Serviceklasse erstellen und in der Administrationskonsole eine Instanz des angepassten Service konfigurieren. Wenn der Anwendungsserver gestartet wird, wird auch der angepasste Service gestartet und initialisiert.

[AIX Solaris HP-UX Linux Windows][IBM i]Wenn Sie eine Routine definieren möchten, die beim Starten und Herunterfahren eines Servers oder Node Agent ausgeführt wird, müssen Sie eine angepasste Serviceklasse entwickeln und eine Instanz des angepassten Service konfigurieren. Wenn der Anwendungsserver oder Node Agent gestartet wird, wird auch der angepasste Service gestartet und initialisiert.

Im Folgenden sehen Sie eine Liste mit den Einschränkungen, die für die angepasste Serverimplementierung des Produkts gelten. Die meisten dieser Einschränkungen gelten nur für die Initialisierungsmethode:
  • Die Methoden initialize und shutdown müssen die Steuerung an die Laufzeit zurückgeben.
  • Der Serverinstanz wird erst dann Arbeit zugeteilt, wenn alle Initialisierungsmethoden des Service zurückgekehrt sind.
  • Die Methoden initialize und shutdown werden nur einmal in jedem Service und einmal für jeden der Betriebssystemprozesse aufgerufen, aus denen sich die Serverinstanz zusammensetzt.
  • Die Initialisierung statischer Daten auf Verarbeitungsebene ohne Verlassen des Prozesses selbst wird unterstützt.
  • Es werden nur JDBC-RMLT-Operationen (Resource Manager Local Transaction) unterstützt. Alle Arbeitseinheiten (UOW, Unit of Work) müssen abgeschlossen sein, damit die Methoden zurückkehren können.
  • Das Erstellen von Threads wird nicht unterstützt.
  • Das Erstellen von Sockets und anderen E/As als Datei-E/As wird nicht unterstützt.
  • Die Ausführung von Java™ EE-Standardcode (Java Platform, Enterprise Edition), z. B. Client-Code, Servlets und Enterprise-Beans, wird nicht unterstützt.
  • Die JTA-Schnittstelle (Java Transaction API) ist nicht verfügbar.
  • Dieses Feature ist nur in Java EE-Serverprozessen und verteilten generischen Serverprozessen verfügbar.
  • Obwohl zur Laufzeit versucht wird, die Methode shutdown aufzurufen, ist nicht gewährleistet, dass die Methode shutdown vor Beendigung des Prozesses aufgerufen wird.
  • JNDI-Operationen, die Ressourcen anfordern, werden nicht unterstützt.

Vorgehensweise

  1. Entwickeln Sie eine angepasste Serviceklasse, die die Schnittstelle "com.ibm.websphere.runtime.CustomService" implementiert.
    Die Schnittstelle "com.ibm.websphere.runtime.CustomService" enthält eine Methode "initialize" und eine Methode "shutdown". Der Anwendungsserver verwendet die Methode "initialize" dazu, Eigenschaften an den angepassten Service zu übergeben. Dazu gehören folgende Eigenschaften:
    • Eine Eigenschaft, die den Namen einer externen Datei angibt, die Konfigurationsdaten für den Service enthält. Sie können die Eigenschaft "externalConfigURLKey" verwenden, um diese Daten abzurufen.
    • Eigenschaften, die Name/Wert-Paare enthalten, die für den Service gespeichert sind, sowie weitere Konfigurationsdaten der Systemverwaltung für den Service.

    Die Methoden "initialize" und "shutdown" deklarieren, dass sie möglicherweise eine Ausnahme erstellen, obwohl keine spezielle Ausnahmeunterklasse definiert ist. Wenn eine der beiden Methoden eine Ausnahme auslöst, wird die Ausnahme zur Laufzeit protokolliert. Der angepasste Service wird inaktiviert und der Serverstart wird fortgesetzt.

  2. Konfigurieren Sie den angepassten Service.

    Klicken Sie in der Administrationskonsole auf Server > Servertypen > WebSphere-Anwendungsserver > Servername und anschließend unter "Serverinfrastruktur" auf Angepasste Services > Neu. Erstellen Sie anschließend auf der Seite mit den Einstellungen für eine angepasste Serviceinstanz eine angepasste Servicekonfiguration für einen vorhandenen Anwendungsserver oder Node Agent, und geben Sie den Namen der implementierten Klasse an. Wenn Ihre angepasste Serviceklasse eine Konfigurationsdatei erfordert, geben Sie im Feld externalConfigURL den vollständigen Pfad zu dieser Datei ein. Dieser Dateiname wird an die angepasste Serviceklasse übergeben.

    Wenn Sie in Ihrem Service eine native Bibliothek aufrufen möchten, müssen Sie im Feld Klassenpfad zusätzlich zu den Pfadnamen, die zum Ermitteln der Klassen und JAR-Dateien für den angepassten Service verwendet werden, den Pfadnamen dieser Bibliothek angeben. Dadurch wird der Pfadname dem Klassenlader für Erweiterungen hinzugefügt, sodass der angepasste Service in der Lage ist, die native Bibliothek zu finden und ordnungsgemäß zu laden.

  3. Stoppen Sie den Anwendungsserver und starten Sie ihn dann erneut.

    [AIX Solaris HP-UX Linux Windows][IBM i]Wenn Sie einen angepassten Service für einen Anwendungsserver entwickeln, müssen Sie den Anwendungsserver stoppen und anschließend erneut starten.

    [AIX Solaris HP-UX Linux Windows][IBM i]Wenn Sie einen angepassten Service für einen Node Agent entwickeln, müssen Sie die Verarbeitung des Node Agent stoppen und anschließend erneut starten. Klicken Sie in der Administrationskonsole auf Systemverwaltung > Node Agents, wählen Sie den zu stoppenden Node Agent aus, und klicken Sie dann auf Stoppen. Wenn Sie den Node Agent erneut starten möchten, wählen Sie den Node Agent aus, der erneut gestartet werden soll, und klicken Sie anschließend auf Erneut starten.

    [z/OS]Stoppen Sie den Anwendungsserver und starten Sie ihn dann erneut.

Ergebnisse

Jeder angepasste Service definiert eine Klasse, die bei jedem Start und Herunterfahren des Servers geladen und initialisiert wird.

[AIX Solaris HP-UX Linux Windows][IBM i]Bei jedem Start des Servers oder Node Agent wird auch der angepasste Service geladen und initialisiert.

[z/OS]Bei jedem Starten und Herunterfahren des Servers wird auch der angepasste Service gestartet und beendet.

Beispiel

Wie bereits erwähnt, muss die angepasste Serviceklasse die Schnittstelle "com.ibm.websphere.runtime.CustomService" implementieren. Darüber hinaus muss die Klasse die Methoden "initialize" und "shutdown" implementieren. Das folgende Beispiel enthält den Code, der die Klasse ServerInit deklariert, von der der angepasste Service implementiert wird. Dieser Code geht davon aus, dass die angepasste Serviceklasse eine Konfigurationsdatei erfordert. Außerdem enthält dieses Beispiel den Code, der auf die externe Konfigurationsdatei zugreift. Falls für die Klasse keine Konfigurationsdatei erforderlich ist, benötigen Sie den Codeabschnitt zu configProperties nicht.
public class ServerInit implements com.ibm.websphere.runtime.CustomService
{
/**
* Die Methode initialize wird beim Start des Servers von der Laufzeit des
* Anwendungsservers aufgerufen. Das Properties-Objekt, dass der Anwendungsserver
* an diese Methode übergibt, muss alle erforderlichen Konfigurationsdaten enthalten,
* die dieser Service zur ordnungsgemäßen Initialisierung benötigt.
*
* @param configProperties java.util.Properties
*/
    static final java.lang.String externalConfigURLKey =
       "com.ibm.websphere.runtime.CustomService.externalConfigURLKey";
          
    static String ConfigFileName="";

    public void initialize(java.util.Properties configProperties) throws Exception
    {
        if (configProperties.getProperty(externalConfigURLKey) != null)
        {
           ConfigFileName = configProperties.getProperty(externalConfigURLKey);
        }

       //Rest der Initialisierungsmethode implementieren
    }
/**
* Die Methode shutdown wird von der Laufzeit des Anwendungsservers aufgerufen,
* wenn der Server mit dem Herunterfahren beginnt.
*
    public void shutdown() throws Exception
    {
        //Methode shutdown implementieren
    }

Nächste Schritte

[AIX Solaris HP-UX Linux Windows][IBM i]Überprüfen Sie den Anwendungsserver oder Node Agent, um sicherzugehen, dass die Methoden initialize und shutdown des angepassten Service wie geplant funktionieren.

[z/OS]Überprüfen Sie den Anwendungsserver, um sicherzugehen, dass die Methoden initialize und shutdown des angepassten Service wie geplant funktionieren.


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=trun_customservice
Dateiname:trun_customservice.html