JMS-Aktivierungsspezifikation [Einstellungen]
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 unternehmensweiten Informationssystemen (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 oder Zielsuche 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 Beantypen kann die Eigenschaft JNDI-Name des Ziels odor Zielsuche mit einem 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".
Registerkarte "Konfiguration"
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.
Allgemeine Eigenschaften
Geltungsbereich
Gibt die höchste Topologiestufe an, auf der Anwendungsserver dieses Ressourcenobjekt verwenden können.
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Zeichenfolge |
Provider
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 |
Name
Der erforderliche Anzeigenname der Ressource.
Information | Wert |
---|---|
Erforderlich | Ja |
Datentyp | Zeichenfolge |
JNDI-Name
Der JNDI-Name für die Ressource.
Information | Wert |
---|---|
Erforderlich | Ja |
Datentyp | Zeichenfolge |
Beschreibung
Eine optionale Beschreibung für die Ressource.
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Textbereich |
Zieltyp
Information | Wert |
---|---|
Erforderlich | Ja |
Datentyp | Dropdown-Liste |
Einstellmöglichkeiten |
|
Zielsuche
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 die Zielsuche (d. h. den JNDI-Namen für das verwaltete J2C-Objekt, das die Schnittstelle "javax.jms.Destination" implementiert) angeben.
Information | Wert |
---|---|
Erforderlich | Ja |
Datentyp | Zeichenfolge |
Verbindungsfactory-Suche
Der JNDI-Name der Verbindungsfactory.
Information | Wert |
---|---|
Erforderlich | Ja |
Datentyp | Zeichenfolge |
Nachrichtenselektor
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 |
Busname
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Angepasst |
Bestätigungsmodus
Die Bestätigung wird gesendet, wenn die Nachricht gelöscht wird.
- Wenn das System so konfiguriert ist, dass die Nachricht bei Beendigung der Bean gelöscht wird, wird die Nachricht einer neuen Instanz der Bean zugestellt, sodass es eine neue Gelegenheit zur Verarbeitung der Nachricht gibt.
- Wenn das System so konfiguriert ist, dass die Nachricht beim Bean-Start gelöscht wird, geht die Nachricht verloren.
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 |
|
Ziel
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Zeichenfolge |
Zieltyp
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Dropdown-Liste |
Einstellmöglichkeiten |
|
Zielsignifikanz
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Dropdown-Liste |
Einstellmöglichkeiten |
|
Zieltransportkette für eingehende Daten
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.
- InboundBasicMessaging
- Ein verbindungsorientiertes Protokoll, das eine TCP/IP-Standardverbindung (JFAP-TCP/IP) verwendet. Es unterstützt zweiphasige Transaktionsabläufe (fernes XA), damit ein Nachrichtenerzeuger bzw. -konsument, der auf einem Client- oder Serversystem ausgeführt wird, an einer globalen Transaktion teilnehmen kann, die auf diesem Client- bzw. Serversystem verwaltet wird. XA-Abläufe werden im Speziellen für die Unterstützung des Zugriffs von einer Anwendung, die in einem Server ausgeführt wird, auf eine Messaging-Engine in einem zweiten Server verwendet, wenn der erste Server keine geeignete Messaging-Engine besitzt. Wenn ferne XA-Abläufe verwendet werden, muss der Anwendung ein lokaler Transaktionskoordinator zur Verfügung stehen.
- InboundSecureMessaging
- Das in SSL eingebundene Protokoll InboundBasicMessaging.
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Zeichenfolge |
Providerendpunkte
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 |
Maximale Stapelgröße
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Integer |
Einstellmöglichkeiten | 1 bis 2147483647 |
Maximale Anzahl gleichzeitiger MDB-Aufrufe pro Endpunkt
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Integer |
Einstellmöglichkeiten | 1 bis 2147483647 |
Endpunkte bei wiederholten Nachrichtenfehlern automatisch stoppen
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.
Aktivieren
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Boolescher Wert |
Schwellenwert für aufeinanderfolgende Nachrichtenfehler
Diese Eigenschaft ist nur aktiviert, wenn die Eigenschaft Endpunkte bei wiederholten Nachrichtenfehlern automatisch stoppen aktiviert ist.
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Integer |
Verzögerung zwischen Wiederholungen fehlerhafter Nachrichten
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. |
Subskriptionsdauer
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Dropdown-Liste |
Einstellmöglichkeiten |
|
Subskriptionsname
Der Subskriptionsname muss für jede Client-ID eindeutig sein.
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Zeichenfolge |
Client-ID
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Zeichenfolge |
Subskriptionsausgangsverzeichnis
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Zeichenfolge |
Nachrichtennutzdaten nach Referenz übergeben
Anwendungen, die diese Aktivierungsspezifikation verwenden, um Nachrichten zu empfangen, müssen die folgende Regel einhalten:
- Die Anwendung ändert das aus einer JMS-Objektnachricht abgerufene Datenobjekt nicht. Das Datenobjekt wird als schreibgeschütztes Objekt behandelt.
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Boolescher Wert |
Anwendungen, die Nachrichten, die ursprünglich über diese Aktivierungsspezifikation empfangen wurden, erneut senden, müssen die folgenden Regeln einhalten:
- Die Anwendung kann das Datenobjekt in einer JMS-Objektnachricht ersetzen, sofern das Datenobjekt noch nicht in der Nachricht definiert wurde. Die Anwendung ändert und ersetzt aber das Datenobjekt nicht mehr, nachdem es in der Nachricht gesetzt wurde.
- Die Anwendung kann die Bytefeldgruppe in einer JMS-Bytenachricht ersetzen, aber nur, wenn ein einziger Aufruf von writeBytes(byte[]) verwendet wird und sofern die Bytefeldgruppe noch nicht in der Nachricht definiert wurde. Nachdem die Bytefeldgruppe in der Nachricht definiert wurde, ändert oder ersetzt die Anwendung sie nicht mehr.
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Boolescher Wert |
Vorauslesen
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 |
|
Immer alle MDBs in allen Servern aktivieren
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.
- Alle Server im Cluster können Nachrichten von der MDB-Anwendung empfangen, um die vollständige Verarbeitungsleistung im Cluster zu nutzen.
- Es kann nur jeweils ein Server Nachrichten von der MDB-Anwendung empfangen, sodass eine sequenzielle Verarbeitung der Nachrichten gewährleistet wird.
Weitere Informationen finden Sie im Artikel "So stellen nachrichtengesteuerte Beans eine Verbindung in einem Cluster her".
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Boolescher Wert |
Wiederholungsintervall
Information | Wert |
---|---|
Erforderlich | Nein |
Datentyp | Integer |
Einstellmöglichkeiten | 1 bis 2147483647 |
Authentifizierungsalias
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 |