Startup-Beans verwenden

Es gibt zwei Typen von Startup-Beans: Startup-Beans für Anwendungen und Startup-Beans für Module.

Informationen zu diesem Vorgang

Veraltetes Feature Veraltetes Feature: Die mit Startup-Singleton-Session-Beans (Spezifikation EJB 3.1) bereitgestellten Funktionen bewirken, dass die proprietären Startup-Beans von WebSphere Application Server veraltet sind.depfeat

Eine Startup-Bean für Module ist eine Session-Bean, die beim Starten einer EJB-JAR-Datei geladen wird. Mit Startup-Beans für Module können Java™-EE-Anwendungen (Java Platform Enterprise Edition) Geschäftslogik automatisch ausführen, wenn ein EJB-Modul normal gestartet oder gestoppt wird. Eine Startup-Bean für Anwendungen ist eine Session-Bean, die beim Start der Anwendung geladen wird. Mit Startup-Beans für Anwendungen können Java-EE-Anwendungen die Geschäftslogik automatisch ausführen, wenn eine Anwendung normal gestartet oder gestoppt wird.

Startup-Beans sind besonders nützlich, wenn sie zusammen mit Features für asynchrone Beans verwendet werden. Beispielsweise könnte eine Startup-Bean ein Alarmobjekt erstellen, das JMS verwendet, um zu einem bestimmten Topic in regelmäßigen Abständen Überwachungssignalnachrichten zu veröffentlichen. Auf diese Weise können Clients oder andere Serveranwendungen feststellen, ob die Anwendung verfügbar ist. Lesen Sie den Artikel "Einer Anwendung das Abwarten des Starts einer Messaging-Engine ermöglichen", wenn Sie den JMS-Standardprovider verwenden.

Vorgehensweise

  1. Mit der Home-Schnittstelle "com.ibm.websphere.startupservice.AppStartUpHome" können Sie eine Bean als Startup-Bean für Anwendungen festlegen. Mit der Home-Schnittstelle "com.ibm.websphere.startupservice.ModStartUpHome" können Sie eine Bean als Startup-Bean für Module festlegen.
  2. Verwenden Sie für Startup-Beans für Anwendungen die ferne Schnittstelle "com.ibm.websphere.startupservice.AppStartUp", um die Methoden "start()" und "stop()" in der Bean zu definieren. Verwenden Sie für Startup-Beans für Module die ferne Schnittstelle "com.ibm.websphere.startupservice.ModStartUp", um die Methoden "start()" und "stop()" in der Bean zu definieren.

    Die Methode "start()" der Startup-Bean wird beim Starten des Moduls bzw. der Anwendung aufgerufen und enthält Geschäftslogik, die beim Starten des Moduls bzw. der Anwendung ausgeführt werden muss.

    Die Methode start() gibt einen booleschen Wert zurück. True zeigt an, dass die Geschäftslogik innerhalb der Methode start() erfolgreich ausgeführt wurde. Umgekehrt zeigt der Wert false an, dass die Geschäftslogik in der Methode start() nicht ausgeführt werden konnte. Außerdem zeigt der Rückgabewert False an, dass der Anwendungsstart des Anwendungsservers abgebrochen wurde.

    Die Methoden "stop()" der Startup-Bean werden beim Stoppen des Moduls bzw. der Anwendung aufgerufen und enthalten Geschäftslogik, die beim Stoppen des Moduls bzw. der Anwendung ausgeführt werden muss. Eine von einer Methode "stop()" ausgelöste Ausnahme wird nur protokolliert. Es werden keine weiteren Aktionen ausgeführt.

    Die Methoden "start()" und "stop()" dürfen das Transaktionsattribut TX_MANDATORY nicht verwenden. Es ist keine globale Transaktion im Thread vorhanden, wenn die Methoden "start()" oder "stop()" aufgerufen werden. Alle anderen Attribute des Typs "TX_*" können verwendet werden. Bei Verwendung von TX_MANDATORY wird eine Ausnahme protokolliert, und der Anwendungsstart wird abgebrochen.

    Die Methoden "start()" und "stop()" auf die ferne Schnittstelle verwenden den Modus Run-As. Der Modus Run-As legt die Berechtigungsinformationen fest, die vom Sicherheitsservice verwendet werden, um die Berechtigungen zu ermitteln, die einen Principal für verschiedene Ressourcen besitzt. Ist die Sicherheitsfunktion aktiviert, muss der RunAs-Modus für alle aufgerufenen Methoden definiert werden. Ohne diese Einstellung ist die Identität der Bean undefiniert.

    Hinsichtlich des Codes, den die Methoden "start()" und "stop()" ausführen können, bestehen keinerlei Einschränkungen, weil für diese Methoden das vollständige Application-Server-Programmiermodell verfügbar ist.

  3. Verwenden Sie die optionale Umgebungseigenschaft wasStartupPriority, die eine ganze Zahl angibt und damit die Startreihenfolge mehrerer Startup-Beans in derselben JAR-Datei festlegt. Wird die Umgebungseigenschaft gefunden und verwendet es einen falschen Typ, dann wird der Anwendungsstart abgebrochen. Wird kein Prioritätswert angegeben, wird die Standardpriorität 0 verwendet. Es wird empfohlen, die Prioritätseigenschaft festzulegen. Die Reihenfolge der Beans, für die eine Priorität definiert wurde, wird anhand dieser Eigenschaft festgelegt. Beans mit einem niedrigen Prioritätswert werden als Erstes ausgeführt. Beans mit demselben Prioritätswert werden in nicht definierter Reihenfolge ausgeführt. Alle Prioritäten müssen positive ganze Zahlen sein. Beans werden in der umgekehrten Reihenfolge ihrer Startpriorität gestoppt. Die Prioritätswerte für die Startup-Beans für Module und die Startup-Beans für Anwendungen schließen sich gegenseitig aus. Alle Module werden gestartet, bevor die Anwendung als "gestartet" deklariert wird. Deshalb werden die Methoden start() für die Startup-Beans für Module in einer Anwendung vor den Methoden start() der Startup-Beans für die Anwendung aufgerufen. In ähnlicher Weise werden die Methoden stop() der Startup-Bean der Anwendung werden für eine bestimmte JAR-Datei (Java Archive) vor den Methoden stop() der Startup-Beans der Module für diese JAR-Datei aufgerufen.
    Anmerkung: Der ganzzahlige Wert der Umgebungseigenschaft wasStartupPriority kann entweder mit einem Befehl oder in der Administrationskonsole festgelegt werden. Diese Umgebungseigenschaft ist ein EJB-Umgebungseintrag, der vom Anwendungsentwickler, nicht vom Administrator festgelegt wird. Der ganzzahlige Wert wird wie im folgenden Beispiel gezeigt in der Datei ejb-jar.xml festgelegt:
    <env-entry>
      <env-entry-name>wasStartupPriority</env-entry-name>
      <env-entry-type>java.lang.Integer</env-entry-type>
      <env-entry-value>3</env-entry-value>
    </env-entry>
    Wie für jeden anderen EJB-Umgebungseintrag muss für jede EJB ein separater Wert für wasStartupPriority angegeben werden.
  4. Für Startup-Beans für Module kann die Reihenfolge, in der die EJB-Module gestartet werden, mit dem Wert von Anfangswertigkeit jedes Moduls angepasst werden.
  5. Gehen Sie wie folgt vor, um zu steuern, wer Methoden der Startup-Beans über die WebSphere-Sicherheit aufrufen kann:
    1. Definieren Sie die Methodenberechtigungen für die Methoden "start()" und "stop()" wie bei jedem anderen EJB-Modul. (Informationen finden Sie im Artikel "Methodenberechtigungen für EJB-Module definieren.")
    2. Vergewissern Sie sich, dass der Benutzer, der der für die Methoden der Startup-Beans definierten Sicherheitsrolle zugeordnet ist, derselbe Benutzer ist, der als "Serverbenutzer-ID" in der Benutzerregistry definiert ist.

Nächste Schritte

Überprüfen Sie die Einstellungen für Startup Beans Service.

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