Systemeigenschaften des EJB-Containers

Zusätzlich zu den Einstellungen, die über die Administrationskonsole verfügbar sind, können Sie EJB-Systemeigenschaften über Befehlszeilen-Scripting festlegen.

com.ibm.websphere.ejbcontainer.allowEarlyInsert

Diese Eigenschaft gilt nur für CMP 1.1-Beans (Container-managed Persistence). Der EJB-Container erstellt nach dem Aufruf der Methode ejbPostCreate(...) standardmäßig nur die Darstellung der Entity-Bean in der Datenbank.

Unterstützte Konfigurationen Unterstützte Konfigurationen: CMP-Beans werden in Modulen der EJB Version 3.x nicht unterstützt.sptcfg

Einige Anwendungen sind möglicherweise darauf angewiesen, dass die Methode ejbCreate(...) die Entity-Bean in der Datenbank erstellt. In diesem Fall müssen Sie die JVM-Eigenschaft com.ibm.websphere.ejbcontainer.allowEarlyInsert auf true setzen, damit das Standardverhalten überschrieben wird.

com.ibm.websphere.ejbcontainer.checkEJBApplicationConfiguration

Gibt eine serverweite Einstellung an, die festlegt, dass der Container eine zusätzliche Prüfung der Anwendungskonfiguration durchführen soll, um sicherzustellen, dass die Anwendung konform mit der Java™ EE-Spezifikation (Java Platform, Enterprise Edition) ist.

Unterstützte Konfigurationen Unterstützte Konfigurationen: Diese Eigenschaft kann als angepasste Anwendungseigenschaft festgelegt werden.sptcfg

Diese Eigenschaft ist für die Verwendung während der Entwicklung einer Anwendung vorgesehen und soll mithelfen, falsche Konfigurationen zu ermitteln, die zu ein unerwartetes Verhalten zur Folge haben können. Beispielsweise wird die Verwendung der Annotation "javax.ejb.Asynchronous" für eine Schnittstelle von der Spezifikation nicht unterstützt und wird normalerweise ignoriert. Wenn diese Eigenschaft aktiviert ist, wird beim Verarbeiten der Bean ein Fehler protokolliert und eine Ausnahme ausgelöst. Dieser Fehler ist während der Entwicklung hilfreich, um zu verstehen, warum die Methoden nicht asynchron funktionieren.

Wenn diese Eigenschaft aktiviert ist, werden weitere Konfigurationsprüfungen ausgeführt, die dazu führen könnten, dass mehrere Konfigurationswarnungen und Fehler protokolliert werden. Normalerweise wird diese zusätzliche Prüfung für Szenarien ausgeführt, in denen zusätzlicher Verarbeitungsaufwand entsteht, was bei stabilen Anwendungen auf einem Produktionsserver jedoch unnötig ist. Bei geringfügigen Abweichungen von der Spezifikation werden nur Warnungen protokolliert. Bei wichtigeren Problemen wird ein Fehler protokolliert, und die Anwendung kann erst nach dem Beheben des Fehlers weiter ausgeführt werden.

Fehler vermeiden Fehler vermeiden: Wenn die Eigenschaft "com.ibm.websphere.ejbcontainer.checkEJBApplicationConfiguration" aktiviert ist, werden einige der Probleme, die als Warnungen gemeldet wurden, als Fehler angezeigt. Dadurch wird der Start der Anwendung verhindert.gotcha
Unterstützte Konfigurationen Unterstützte Konfigurationen: Die integrierbaren Container und Server, die für den Entwicklungsmodus konfiguriert wurden, führen die zusätzliche Prüfung aus, die mit dieser Eigenschaft verknüpft ist. Alle erkannten Probleme werden jedoch als Warnungen, anstatt als Fehler gemeldet, sofern die Eigenschaft nicht ausdrücklich aktiviert wird.sptcfg

com.ibm.websphere.ejbcontainer.declaredUncheckedAreSystemExceptions

Bei Verwendung dieser Eigenschaft kann angegeben werden, ob Ausnahmen, die für die Throws-Klausel einer EJB-Methode deklariert werden, als Ausnahmen der Anwendung oder als Ausnahmen der Systemlaufzeit behandelt werden sollen. Wenn diese Eigenschaft auf true gesetzt ist, werden diese Ausnahmen wie Ausnahmen der Systemlaufzeit behandelt, und auf der Clientseite wird eine "EJBException" ausgegeben.

Wenn diese Eigenschaft nicht definiert oder auf false gesetzt ist, werden Ausnahmen, die in der Throws-Klausel einer EJB-Methode deklariert werden, als Ausnahmen der Anwendung behandelt.

Der Standardwert für diese Eigenschaft ist "false".

Übergang: In Version 7 lautet der Standardwert für diese Eigenschaft "true".

com.ibm.websphere.ejbcontainer.defaultSessionAccessTimeout

Mit dieser Eigenschaft können Sie den Standardzeitlimitwert für den parallelen Zugriff auf Session-Beans für alle Session-Beans in einem Server festlegen. Der Wert wird in Millisekunden angegeben.

Geben Sie einen Wert des Datentyps "long" an, um den parallelen Zugriff auf Session-Beans zu inaktivieren oder zu aktivieren:

  • Der Wert 0 inaktiviert den parallelen Zugriff auf Session-Beans (kein Wartezustand).
  • Ein positiver Wert des Typs "long" (1, 2, 3 usw.) aktiviert den parallelen Zugriff auf Session-Beans und setzt den Zeitlimitwert auf die angegebene Anzahl Millisekunden.

Wenn diese Eigenschaft festgelegt ist, wird anstelle des Standardwerts -1 (unbegrenzt warten) das angegebene Zeitlimit für den parallelen Zugriff auf Session-Beans serverweit festgelegt. Dies gilt sowohl für Stateful-Session-Beans als auch für Singleton-Session-Beans. Das Zeitlimit kann auf der Ebene einer einzelnen Session-Bean mit der Annotation @AccessTimeout für die Bean-Klasse oder Methode oder mit dem Element "access-timeout" des Implementierungsdeskriptors überschrieben werden.

com.ibm.websphere.ejbcontainer.defaultStatefulSessionTimeout

Gibt ein serverweites Zeitlimit für Stateful-Session-Beans an, das festlegt, wie lange eine Stateful-Session-Bean vom Server beibehalten wird.

Unterstützte Konfigurationen Unterstützte Konfigurationen: Die Eigenschaft gilt für Module mit EJB-Version 3.1 und höher. sptcfg

Dies ist eine Systemeigenschaft, die Sie direkt zur Datei "server.xml" oder als generisches JVM-Argument über die Administrationskonsole hinzufügen können.

Die Eigenschaft wird in Minuten angegeben, der einzigen gültigen Einheit. Der Standardwert ist 10 Minuten. Der Wert null gibt an, dass der Server den Standardwert von 10 Minuten verwendet. Ein negativer Wert ist ungültig. Alle Werte größer-gleich null sind gültig. Wird ein ungültiger Wert angegeben, wird eine Warnung an SystemOut ausgegeben und der Standardwert wird verwendet.

Die Dauer des Zeitlimits für die Stateful-Session-Bean kann mit Annotationen oder XML auf Bean-Basis angegeben werden. Wenn für eine bestimmte Bean ein Zeitlimit explizit festgelegt wird, hat dieses Zeitlimit Vorrang vor einer serverweiten Zeitlimiteinstellung.

Wenn für eine bestimmte Bean kein Bean-spezifisches Zeitlimit existiert, wird für diese Bean die serverweite Zeitlimiteinstellung verwendet.

Wenn für eine bestimmte Bean weder ein Bean-spezifisches Zeitlimit noch eine serverweite Zeitlimiteinstellung existiert, wird für diese Bean das Standardzeitlimit verwendet.

com.ibm.websphere.ejbcontainer.EE5Compatibility

Gibt eine serverweite Einstellung an, die festlegt, dass der EJB-Container Standardverhalten bereitstellt, die konform mit der Spezifikation Java Enterprise Edition (Java EE) 5.0 sind.

Dies ist eine Systemeigenschaft, die Sie direkt zur Datei "server.xml" oder als generisches JVM-Argument über die Administrationskonsole hinzufügen können.

Die Java EE-Spezifikation enthält Verbesserungen beim EJB-Programmiermodell, die zu kleineren Änderungen in einigen Standardverhalten geführt haben. Im Allgemeinen bieten diese Änderungen ein intuitiveres und zuverlässigeres Verhalten. Wenn eine Anwendung jedoch so geschrieben wurde, dass sie auf ein oder mehrere Java EE 5.0-Verhalten angewiesen ist, kann diese Eigenschaft so eingestellt werden, dass sie den EJB-Container auf die Standardverhalten von Java EE 5.0 zurücksetzt.

Wird die Eigenschaft auf "true" gesetzt, werden die folgenden Verhalten außer Kraft gesetzt:

  • Annotationen des Typs @ApplicationException werden nicht übernommen. Beginnend mit der Spezifikation Java EE 6.0 wurde das Standardverhalten der Annotation @ApplicationException dahingehend geändert, dass die Annotation von Ausnahmeklassen der Unterklasse übernommen wird. Wenn diese Systemeigenschaft festgelegt wird, wird die Annotation @ApplicationException von Ausnahmeklassen der Unterklasse nicht übernommen. Alternativ dazu können Sie die Deklaration für @ApplicationException so ändern, dass sie "inherited=false" angibt.
  • Der gleichzeitige Zugriff auf Stateful-Session-Beans ist nicht zulässig und führt zu einer Ausnahme des Typs "javax.ejb.ConcurrentAccessException". Beginnend mit der Spezifikation Java EE 6.0 wurde das Standardverhalten für den parallelen Zugriff auf Stateful-Session-Beans dahingehend geändert, dass ein gleichzeitiger Zugriff zulässig ist, obwohl jede gleichzeitige Anforderung vom Container serialisiert wird und auf diese Weise die Bean-Instanz auf unbestimmte Zeit blockiert, bis die Instanzsperre erworben werden kann. Wenn diese Systemeigenschaft angegeben wird, verwenden alle Stateful-Session-Beans, für die kein expliziter Wert für das Zugriffszeitlimit angegeben ist, den Standardwert für das Zugriffszeitlimit von 0 (Standardwert von Java EE 5.0). Alternativ dazu können sie die Stateful-Session-Bean so ändern, dass sie den Wert 0 als Zeitlimit für den Zugriff festlegt.
  • Java-Typ, Klasse und alle Unterklassen von Enum werden als Ressourcenumgebungsreferenzen anstatt als einzelne Umgebungseinträge behandelt. Beginnend mit der Spezifikation Java EE 6.0 werden Java-Typ, Klasse und alle Unterklassen von Enum der Gruppe der unterstützten einfachen Umgebungseintragstypen hinzugefügt. In früheren Versionen von Java EE wären diese Typen als Ressourcenumgebungsreferenzen behandelt worden und in der Datei ibm-ejb-jar-bnd.xml oder ibm-web-bnd.xml hätte eine Bindung vorhanden sein müssen. Da diese Datentypen jetzt als einfache Umgebungseinträge unterstützt werden, ist eine plattformspezifische Bindung nicht mehr erforderlich. Stattdessen können Sie den Wert direkt im Implementierungsdeskriptor angeben. Wenn diese Systemeigenschaft angegeben wird, werden Anwendungen, die die Annotation "javax.annotation.Resource" für Java-Typ, Klasse oder Unterklasse von Enum verwenden, als Ressourcenumgebungsreferenzen behandelt, und der referenzierte Wert wird aus den Angaben der Bindungsdatei abgerufen. Diese Eigenschaft hat keine Auswirkungen auf die Anwendungsinstallation, daher werden während der Installation keine Bindungsinformationen eingegeben. Stattdessen müssen die Bindungsinformationen manuell in die Bindungsdatei eingegeben werden.

com.ibm.websphere.ejbcontainer.EE6Compatibility

Gibt eine serverweite Einstellung an, die festlegt, dass der EJB-Container Standardverhalten bereitstellt, die konform mit der Spezifikation Java Enterprise Edition (Java EE) 6.0 sind.

Dies ist eine Systemeigenschaft, die Sie direkt zur Datei "server.xml" oder als generisches JVM-Argument über die Administrationskonsole hinzufügen können.

Die Java EE-Spezifikation enthält Verbesserungen beim EJB-Programmiermodell, die zu kleineren Änderungen in einigen Standardverhalten geführt haben. Im Allgemeinen bieten diese Änderungen ein intuitiveres und zuverlässigeres Verhalten. Wenn eine Anwendung jedoch so geschrieben wurde, dass sie auf ein oder mehrere Java EE 6.0-Verhalten angewiesen ist, kann diese Eigenschaft so eingestellt werden, dass sie den EJB-Container auf die Standardverhalten von Java EE 6.0 zurücksetzt.

Wird die Eigenschaft auf true gesetzt, wird dadurch verhindert, dass die Annotationen "@Local" und "@Remote" ignoriert werden. Dies ist auch dann der Fall, wenn sie mit einem leeren Wert für die Bean-Klasse angegeben werden und und weitere Geschäftsschnittstellen angegeben sind. Wird die Eigenschaft nicht angegeben und sind diese Annotationen für die Bean-Klasse angegeben, führen die Annotationen dazu, dass die Schnittstellen in der Implementierungsklausel als lokale oder ferne Geschäftsschnittstellen betrachtet werden, es sei denn:

  1. die Schnittstelle <business-local>, <business-remote> oder <local-bean> ist in der Datei ejb-jar.xml angegeben.
  2. die Annotation "@LocalBean" ist für die Bean-Klasse angegeben.
  3. die Annotation "@Local" oder "@Remote" mit leerem Wert ist für die Schnittstellenklassen in der Implementierungsklausel angegeben.

Wird die Eigenschaft angegeben, wird eine einzelne Schnittstelle in der Implementierungsklausel trotzdem auch dann als lokale oder ferne Geschäftsschnittstelle betrachtet, wenn eine dieser Bezeichnungen verwendet wurde. Anstatt die Eigenschaft festzulegen, können Sie die Annotation "@Local" oder "@Remote" mit leerem Wert entfernen und stattdessen eine der anderen Optionen verwenden.

com.ibm.websphere.ejbcontainer.excludeRootExceptionOnRollback

Standardmäßig legt der EJB-Container die Ursache der Ausnahme, die während eines Rollbacks der Transaktion eintritt, fest. Wenn diese Eigenschaft auf "true" gesetzt ist, legt der EJB-Container die Ursache nicht fest. Dies ist nützlich, wenn Ihre Anwendung nicht erwartet, eine Ursache zu finden, oder wenn Ihre Anwendung Ausnahmen protokolliert und jetzt wesentlich mehr Daten protokolliert.

com.ibm.websphere.ejbcontainer.extendSetRollbackOnlyBehaviorToInstanceFor

Mit dieser Eigenschaft kann der Benutzer Anwendungsnamen angeben, in denen die EJBs in den EJB-3.x-Modulen das "setRollbackOnly"-Verhalten vor EJB 3.0 zeigen sollen.

Das "setRollbackOnly"-Verhalten vor EJB 3.0 wird im Artikel Anwendungen auf "versionsspezifisches" setRollbackOnly-Verhalten von WebSphere umstellen beschrieben.

com.ibm.websphere.ejbcontainer.limitSetRollbackOnlyBehaviorToInstanceFor

Mit dieser Eigenschaft kann der Benutzer Anwendungsnamen angeben, in denen die EJBs in den EJB-3.x-Modulen das "setRollbackOnly"-Verhalten von EJB 3.x zeigen sollen.

Das "setRollbackOnly"-Verhalten von EJB 3.x wird im Artikel Anwendungen auf "versionsspezifisches" setRollbackOnly-Verhalten von WebSphere umstellen beschrieben.

com.ibm.websphere.ejbcontainer.poolSize

Gibt die Größe des Pools für den angegebenen Bean-Typ an. Diese Eigenschaft gilt für Stateless-Beans, MDBs und Entity-Beans. Wenn Sie keinen Standardwert angeben, werden die Containerstandardwerte "50" und "500" verwendet.

Legen Sie die Poolgröße für eine bestimmte Entity-Bean wie folgt fest:
beantype=[H]min,[H]max [:beantype=[H]min,[H]max...]

Das Element Bean-Typ ist der Java EE-Name der Bean, der durch Verknüpfung des Anwendungsnamens, des Zeichens #, des Modulnamens, des Zeichens # und des Namens der Bean, d. h., der Zeichenfolge, die dem Feld <ejb-name> im Implementierungsdeskriptor der Bean zugeordnet ist, entsteht. Die Elemente Min und Max bezeichnen die Mindestgröße und die Maximalgröße des Pools für diesen Bean-Typ. Geben Sie nicht die eckigen Klammern aus dem vorherigen Prototypen an. Sie bezeichnen optionale zusätzliche Bean-Typen, die Sie nach dem ersten Bean-Typ angeben können. Jede Spezifikation eines Bean-Typs ist durch einen Doppelpunkt (:) begrenzt.

Verwenden Sie einen Stern (*) als Wert von Bean-Typ, um anzugeben, dass alle Bean-Typen diese Werte verwenden müssen, wenn sie nicht von einer exakten Bean-Typ-Spezifikation an anderer Stelle in der Zeichenfolge überschrieben werden. Beispiel:
*=30,100
Um einen Standardwert anzugeben, lassen Sie entweder Min oder Max weg, aber behalten Sie das Komma (,) zwischen den zwei Werten bei. Beispiel:
Anmerkung: Das folgende Beispiel wird aus Gründen der Darstellung in mehreren Zeilen wiedergegeben.
SMApp#PerfModule#TunerBean=54,
   :SMApp#SMModule#TypeBean=100,200

Sie können die Bean-Typen in der Zeichenfolge beliebig anordnen.

Sie können die konfigurierte maximale Größe des EJB-Pools als festen Grenzwert definieren, indem Sie direkt vor dem max-Wert ein H einfügen. Wenn Sie kein H einfügen, gibt der maximale Wert an, wie viele EJB-Instanzen in den Pool gestellt werden können, und stellt keine Begrenzung für die Anzahl der erstellbaren oder im Gebrauch befindlichen EJB-Instanzen dar. Das H vor dem Maximalwert gibt an, dass dieser Wert ein fester Grenzwert ist und dass der EJB-Container die Erstellung weiterer Instanzen blockiert, sobald dieser Grenzwert erreicht ist. Weitere Threads müssen so lange warten, bis eine Instanz verfügbar wird oder bis die zulässige Transaktionsdauer überschritten wird.

Sie können die konfigurierte Mindestgröße des EJB-Pools als festen Grenzwert definieren, indem Sie direkt vor dem min-Wert ein H einfügen. Wenn Sie das H nicht einfügen, gibt der Mindestwert an, wie viele EJB-Instanzen im Pool verwaltet werden, wenn der EJB-Typ nicht aktiv verwendet wird. Der Pool wird jedoch nicht vorab geladen, wenn die Anwendung gestartet wird. Normalerweise wird die Mindestpoolgröße erst erreicht, wenn die Mindestanzahl der EJB-Instanzen gleichzeitig von der Anwendung aufgerufen werden. Das H vor dem Mindestwert gibt an, dass dieser Wert ein fester Grenzwert ist und dass der EJB-Container beim Starten der Anwendung die Mindestanzahl der EJB-Instanzen vorab in den Pool lädt.

Wenn Sie beispielsweise angeben möchten, dass nicht mehr als 200 EJB-Instanzen erstellt werden und dass weitere Anforderungen auf eine Instanz warten müssen und möglicherweise die zulässige Transaktionsdauer überschreiten, geben Sie Folgendes ein:
SMApp#SMModule#TypeBean=100,H200
Wenn Sie angeben möchten, dass der EJB-Container beim Starten der Anwendung mindestens 100 EJB-Instanzen vorab lädt, geben Sie Folgendes ein:
SMApp#SMModule#TypeBean=H100,200
Unterstützte Konfigurationen Unterstützte Konfigurationen: Der Anzeiger für festen Grenzwert ist nur für Stateless-Session-Beans der EJB-Version 2.0 oder höher verfügbar. sptcfg

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