Eine JMS-Aktivierungsspezifikation wird einer oder mehreren MDBs (Message-Driven Beans, nachrichtengesteuerte Beans) zugeordnet und enthält die erforderliche Konfiguration, damit die MDBs Nachrichten empfangen können.
Sie erstellen eine JMS-Aktivierungsspezifikation, wenn Sie eine nachrichtengesteuerte Bean für die Kommunikation mit dem Standard-Messaging-Provider über Java EE Connector Architecture (JCA) 1.5 verwenden möchten. JCA unterstützt die Java-Konnektivität zwischen Anwendungsservern wie WebSphere Application Server und Enterprise Information Systems (EIS). JCA ist eine standardisierte Methode für die Integration von JMS-Providern mit Java-EE-Anwendungsservern und stellt ein Framework für den Austausch von Daten mit Unternehmenssystemen bereit, in dem Daten in Form von Nachrichten übertragen werden.
Alle Konfigurationseigenschaften der Aktivierungsspezifikation mit Ausnahme von Name, JNDI-Name, JNDI-Name des Ziels und Authentifizierungsalias werden durch entsprechend benannte Aktivierungskonfigurationseigenschaften im Implementierungsdeskriptor einer zugehörigen MDB der EJB Version 2.1 oder höher überschrieben. Für eine MDB der EJB Version 2.0 werden die Eigenschaften Zieltyp, Subskriptionspersistenz, Bestätigungsmodus und Nachrichtenselektor durch die entsprechenden Elemente im Implementierungsdeskriptor überschrieben. Bei beiden Bean-Typen kann die Eigenschaft JNDI-Name des Ziels durch einen Wert überschrieben werden, der in den MDB-Bindungen angegeben ist.
Die Eigenschaften der Aktivierungsspezifikation haben Einfluss darauf, wie der Standard-Messaging-Provider die Messaging-Engine auswählt, zu der Ihre MDB-Anwendung eine Verbindung herstellt. Standardmäßig verbindet die Umgebung Anwendungen automatisch mit einer verfügbaren Messaging-Engine im Bus. Sie können jedoch zusätzliche Konfigurationsdetails angeben, um den Verbindungsprozess zu beeinflussen (z. B. spezielle Bootstrap-Server angeben) oder die Verbindung auf eine Untergruppe verfügbarer Messaging-Engines einzuschränken oder die Verfügbarkeit und Leistung zu verbessern oder sicherzustellen, dass empfangene Nachrichten sequenziell verarbeitet werden. Informationen zum Warum und Wie finden Sie im Artikel "So stellen JMS-Anwendungen eine Verbindung zu einer Messaging-Engine in einem Bus her".
In der Registerkarte "Konfiguration" werden die Konfigurationseigenschaften für dieses Objekt angezeigt. Diese Eigenschaftswerte werden beibehalten, auch wenn die Laufzeitumgebung gestoppt und anschließend erneut gestartet wird. Informationen zum Anwenden von Konfigurationsänderungen auf die Laufzeitumgebung finden Sie in den Taskbeschreibungen im Information Center.
Gibt die höchste Topologiestufe an, auf der Anwendungsserver dieses Ressourcenobjekt verwenden können.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Gibt einen JMS-Provider an, der asynchrones Messaging auf der Basis von Java Messaging Service (JMS) ermöglicht. Er stellt J2EE-Verbindungsfactorys zur Verfügung, die Verbindungen zu spezifischen Zielen der JMS-Warteschlangen oder -Topics herstellen. Die Verwaltungsobjekte des JMS-Provider werden verwendet, um die JMS-Ressourcen für den zugeordneten JMS-Provider zu verwalten.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Der erforderliche Anzeigenname der Ressource.
| Information | Wert |
|---|---|
| Erforderlich | Ja |
| Datentyp | Zeichenfolge |
Der JNDI-Name für die Ressource.
| Information | Wert |
|---|---|
| Erforderlich | Ja |
| Datentyp | Zeichenfolge |
Eine optionale Beschreibung für die Ressource.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Textbereich |
Gibt an, ob die MDB ein Warteschlangen- oder Topicziel verwendet.
| Information | Wert |
|---|---|
| Erforderlich | Ja |
| Datentyp | Dropdown-Liste |
| Einstellmöglichkeiten |
|
JNDI-Name des Ziels
Wählen Sie den Typ des Ziels mit der Eigenschaft Zieltyp aus.
Für Ressourcenadapter, die JMS unterstützen, müssen Sie javax.jms.Destinations einer Aktivierungsspezifikation zuordnen, sodass der Ressourcenadapter Nachrichten vom JMS-Ziel bedienen kann. In diesem Fall konfiguriert der Administrator ein verwaltetes J2C-Objekt, das die Schnittstelle "javax.jms.Destination" implementiert und an JNDI bindet.
Sie können ein verwaltetes J2C-Objekt so konfigurieren, dass es eine ActivationSpec-Klasse verwendet, die eine Methode "setDestination(javax.jms.Destination)" implementiert. In diesem Fall können Sie den JNDI-Namen des Ziels (d. h. den JNDI-Namen für das verwaltete J2C-Objekt, das die Schnittstelle "javax.jms.Destination" implementiert) angeben.
Wenn die Aktivierungsspezifikation während des Anwendungsstarts im Rahmen der Endpunktaktivierung initialisiert wird, verwendet der Server den JNDI-Namen des Ziels, um das verwaltete Zielobjekt zu ermitteln und dann in der Instanz der Aktivierungsspezifikation festzulegen.
| Information | Wert |
|---|---|
| Erforderlich | Ja |
| Datentyp | Zeichenfolge |
Der JMS-Nachrichtenselektor, mit dem bestimmt wird, welche Nachrichten die MDB empfängt. Der Wert ist eine Zeichenfolge, die zur Auswahl einer Untermenge verfügbarer Nachrichten verwendet wird. Die Syntax basiert auf einem Teil der SQL-92-Syntax für Bedingungsausdrücke, der in der JMS-Spezifikation beschrieben ist. Weitere Informationen finden Sie im Information Center.
JMSType='car' AND color='blue' AND weight>2500
Die Selektorzeichenfolge kann sich auf Felder im JMS-Nachrichtenkopf und Felder in den Nachrichteneigenschaften beziehen. Nachrichtenselektoren können nicht auf Werte im Nachrichtenhauptteil verweisen.
Ein Nullwert (eine leere Zeichenfolge) zeigt an, dass kein Nachrichtenselektor für den Nachrichtenkonsumenten vorhanden ist.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Der Name des Busses, zu dem eine Verbindung hergestellt werden soll.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Angepasst |
Gibt an, wie die Sitzung die empfangenen Nachrichten bestätigt.
Die Bestätigung wird gesendet, wenn die Nachricht gelöscht wird.
Die Nachricht wird beim Bean-Start gelöscht, wenn die Servicequalität auf Bestmöglich, nicht persistent gesetzt ist. Bei allen anderen Servicequalitäten wird die Nachricht bei Beendigung der Bean gelöscht.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Dropdown-Liste |
| Einstellmöglichkeiten |
|
Der Name eines Ziels, der eine Gruppe von Messaging-Engines angibt. Den Typ des Ziels geben Sie mit der Eigenschaft "TargetType" an.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Der Typ des mit der Eigenschaft "Target" angegebenen Ziels.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Dropdown-Liste |
| Einstellmöglichkeiten |
|
Diese Eigenschaft gibt die Signifikanz der Zielgruppe an.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Dropdown-Liste |
| Einstellmöglichkeiten |
|
Der Name der Transportkette für eingehende Anforderungen, die die Anwendung verwendet, wenn sie eine Verbindung zu einer Messaging-Engine in einem von der Anwendung separaten Prozess herstellt. Wenn eine Messaging-Engine in einem anderen Prozess ausgewählt wird, kann eine Verbindung nur dann hergestellt werden, wenn die Messaging-Engine in einem Server ausgeführt wird, der die angegebene Transportkette für eingehende Anforderungen verwendet. Weitere Informationen finden Sie im Information Center.
Wenn die ausgewählte Messaging-Engine im selben Server wie die Anwendung ausgeführt wird, wird eine direkte prozessinterne Verbindung hergestellt. In diesem Fall wird diese Transportketteneigenschaft ignoriert.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Eine durch Kommata getrennte Liste mit Endpunkt-Triplets im Format Hostname:Portnummer:Kettenname, die zum Herstellen einer Verbindung zu einem Bootstrap-Server verwendet wird, z. B. Merlin:7276:BootstrapBasicMessaging,Gandalf:5557:BootstrapSecureMessaging.
Wenn der Hostname nicht angegeben ist, wird standardmäßig localhost verwendet.
Wenn die Portnummer nicht angegeben ist, wird standardmäßig 7276 verwendet.
Wenn das Protokoll nicht angegeben ist, wird standardmäßig eine vordefinierte Kette wie BootstrapBasicMessaging verwendet.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Textbereich |
Die maximale Anzahl der Nachrichten, die von der Messaging-Engine in einem Stapel empfangen werden kann.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Integer |
| Einstellmöglichkeiten | 1 bis 2147483647 |
Die maximale Anzahl der Endpunkte, an die parallel Nachrichten übermittelt werden können.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Integer |
| Einstellmöglichkeiten | 1 bis 2147483647 |
Mit diesen Parametern kann ein Endpunkt automatisch gestoppt werden, wenn die Anzahl aufeinanderfolgender fehlgeschlagener Nachrichtenzustellungen den angegebenen Grenzwert erreicht. Auf diese Weise können Sie Nachrichten, die wegen eines Problems mit den Nachrichten selbst fehlschlagen, und Nachrichten, die wegen eines Systemressourcenproblems fehlschlagen, das zahlreiche nacheinander fehlschlagende Nachrichten verursacht, voneinander unterscheiden.
Wenn ein Endpunkt automatisch gestoppt wird, wird sein Status in der Anzeige der Administrationskonsole rot angezeigt. Der Endpunkt muss durch Klicken auf die Schaltfläche Fortsetzen manuell erneut gestartet werden.
Nach dem Neustart eines Endpunkts werden alle fehlgeschlagenen Nachrichtenzustellungen, die zum Stoppen des Endpunkts geführt haben, wiederholt. Scheitern die Nachrichtenzustellungen erneut, werden die Nachrichten an ein Ausnahmeziel verschoben, sofern eine solche konfiguriert ist.
Automatisches Stoppen eines Endpunkts auf der Basis der folgenden Parameter stoppen.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Boolescher Wert |
Der Endpunkt wird gestoppt, wenn die Anzahl aufeinanderfolgender fehlerhafter Nachrichten den konfigurierten Grenzwert erreicht. Wegen der Verarbeitungsabhängigkeiten in der MDB kann die tatsächliche Anzahl der verarbeiteten Nachrichten diesen Wert überschreiten.
Diese Eigenschaft ist nur aktiviert, wenn die Eigenschaft Endpunkte bei wiederholten Nachrichtenfehlern automatisch stoppen aktiviert ist.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Integer |
Jede Nachricht, die nicht von der MDB verarbeitet werden kann, aber ihr maximales Zustellungslimit noch nicht erreicht hat, wird erst nach Ablauf dieses Zeitraums (in Millisekunden) wiederholt. Es können andere Nachrichten in dieser Zeit verarbeitet werden, sofern der Schwellenwert für aufeinanderfolgende Fehler und die maximale Anzahl gleichzeitiger Zugriffe nicht auf "1" gesetzt sind.
Durch das Festlegen einer Verzögerung zwischen Wiederholungen gescheiterter Nachrichtenzustellungen verringert sich die Anzahl der Nachrichten, die unnötigerweise an das Ausnahmeziel verschoben werden, bevor die MDB gestoppt wird. Um die Anzahl der verschobenen Nachrichten zu minimieren, wählen Sie für diese Verzögerung einen Wert, der höher ist als das Intervall, in dem die Nachrichten am Ziel erwartet werden.
Diese Eigenschaft ist nur aktiviert, wenn die Eigenschaft Endpunkte bei wiederholten Nachrichtenfehlern automatisch stoppen aktiviert ist.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Integer |
| Einstellmöglichkeiten | Die Zeit in Millisekunden. Der Wert 0 zeigt an, dass es zwischen den Wiederholungen keine Verzögerung gibt. |
Gibt an, ob eine JMS-Topicsubskription permanent oder nicht permanent ist.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Dropdown-Liste |
| Einstellmöglichkeiten |
|
Der für permanente Topicsubskriptionen erforderliche Subskriptionsname. Dieses Feld muss bei der Verwendung permanenter Topicsubskriptionen ausgefüllt werden.
Der Subskriptionsname muss für jede Client-ID eindeutig sein.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Die ID des JMS-Clients, die für permanente Topicsubskriptionen in allen Verbindungen erforderlich ist, die mit dieser Aktivierungsspezifikation erstellt werden.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Der Name der Messaging-Engine, die zum Speichern von Nachrichten verwendet wird, die permanenten Subskriptionen für Objekte zugestellt werden, die aus dieser JMS-Aktivierungsspezifikation erstellt wurden. Dieses Feld muss bei der Verwendung permanenter Topicsubskriptionen ausgefüllt werden.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Zeichenfolge |
Wenn diese Option aktiviert ist, werden die Nachrichtendaten von Objektnachrichten, die über diese Aktivierungsspezifikation empfangen werden, nur dann vom System serialisiert, wenn es unbedingt erforderlich ist. Die aus diesen Nachrichten abgerufenen Daten müssen von Anwendungen als schreibgeschützte Daten behandelt werden.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Boolescher Wert |
Wenn diese Eigenschaft aktiviert ist, werden die Daten von Objekt- oder Bytenachrichten, die über diese Aktivierungsspezifikation weitergeleitet werden und geänderte Nutzdaten enthalten, nicht kopiert, wenn sie in der Nachricht festgelegt werden, und das System serialisiert die Nachrichtendaten nur, wenn es absolut erforderlich ist. Anwendungen, die solche Nachrichten senden, dürfen die Daten, sobald sie in der Nachricht enthalten sind, nicht mehr ändern.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Boolescher Wert |
Vorauslesen (Read Ahead) ist ein Optimierungsverfahren, das Nachrichten präventiv Konsumenten zuordnet. Damit wird die Bearbeitungszeit von Konsumentenanforderungen verkürzt.
Nachrichten, die einem Konsumenten zugeordnet sind, werden auf dem Server gesperrt und können nicht von anderen Konsumenten für dieses Ziel konsumiert werden. Einem Konsumenten zugeordnete Nachrichten, die vor dem Schließen dieses Konsumenten nicht konsumiert werden, werden nachfolgend auf dem Server freigegeben und können dann von anderen Konsumenten empfangen werden.
Sie können diese Eigenschaft für einzelne JMS-Ziele überschreiben, indem Sie die Eigenschaft Vorauslesen für das JMS-Ziel festlegen.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Dropdown-Liste |
| Einstellmöglichkeiten |
|
Diese Eigenschaft wird nur verwendet, wenn die MDB-Anwendung in einem Server ausgeführt wird, der Member des Zielbusses der Anwendung ist. Sie hat keine Auswirkung, wenn die MDB in einem Server ausgeführt wird, der kein Member des Zielbusses ist.
Falls die MDB-Anwendung in einem Server ausgeführt wird, der Member des Zielbusses ist, ist die MDB-Anwendung bei Aktivierung dieser Option in der Lage, Nachrichten zu verarbeiten, unabhängig davon, ob in dem Server auch eine aktive Messaging-Engine vorhanden ist. Falls diese Option nicht aktiviert wird, verarbeiten MDB-Anwendungen in Servern ohne lokale aktive Messaging-Engine keine Nachrichten.
Weitere Informationen finden Sie im Artikel "So stellen nachrichtengesteuerte Beans eine Verbindung in einem Cluster her".
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Boolescher Wert |
Die Verzögerung (in Sekunden) zwischen den Versuchen, eine Verbindung zu einer Messaging-Engine herzustellen. Diese Einstellung gilt sowohl für die erste Verbindung als auch für alle nachfolgenden Versuche, eine bessere Verbindung herzustellen.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Integer |
| Einstellmöglichkeiten | 1 bis 2147483647 |
Der Name eines J2C-Authentifizierungsalias für die komponentengesteuerte Authentifizierung von Verbindungen zum Service Integration Bus.
Ein JCA-Authentifizierungsalias gibt die Benutzer-ID und das Kennwort an, das für die Authentifizierung der Erstellung einer neuen Verbindung zum JMS-Provider verwendet werden.
Die angepassten Eigenschaftsfelder für den Benutzernamen und das Kennwort müssen leer bleiben, wenn das Feld "Authentifizierungsalias" verwendet wird. Authentifizierungsaliaseigenschaften, die im Rahmen der Anwendungsimplementierung definiert werden, haben Vorrang vor den Eigenschaften, die für eine Aktivierungsspezifikation in Form eines Verwaltungsobjekts gesetzt wurden.
Selbst für die Protokollierung der Transaktionswiederherstellung wird nur der Authentifizierungsalias in unverschlüsselter Form in eine Datei geschrieben. Der Sicherheitsservice wird verwendet, um den echten Benutzernamen und das Kennwort zu schützen.
Wenn die Aktivierungsspezifikation während des Anwendungsstarts im Rahmen der Endpunktaktivierung initialisiert wird, verwendet der Server den Authentifizierungsalias, um den echten Benutzernamen und das Kennwort von der Sicherheitsfunktion abzurufen und dann in der Instanz der Aktivierungsspezifikation festzulegen.
| Information | Wert |
|---|---|
| Erforderlich | Nein |
| Datentyp | Dropdown-Liste |