Befehl "createSIBJMSActivationSpec"

Verwenden Sie den Befehl createSIBJMSActivationSpec, um eine neue JMS-Aktivierungsspezifikation für den Standard-Messaging-Provider für einen bestimmten Geltungsbereich zu erstellen.

Verwenden Sie zum Ausführen des Befehls das Objekt AdminTask des Scripting-Clients wsadmin.

[IBM i][IBM i]Der Scripting-Client wsadmin wird über die Qshell ausgeführt. [IBM i]Weitere Informationen finden Sie unter Qshell für die Ausführung von WebSphere-Scripts mit wsadmin-Scripting konfigurieren.

Für die SIB-Befehle wird jeweils eine Befehlszeilenhilfe bereitgestellt:
  • Geben Sie den folgenden Befehl an der wsadmin-Eingabeaufforderung ein, um eine Liste der verfügbaren SIB-JMS-Befehle in Jython und eine Kurzbeschreibung jedes einzelnen Befehls anzuzeigen:

    print AdminTask.help('SIBJMSAdminCommands')

  • Zum Anzeigen einer übersichtlichen Hilfe zu einem bestimmten Befehl geben Sie an der wsadmin-Eingabeaufforderung den folgenden Befehl ein:

    print AdminTask.help('Befehlsname')

Speichern Sie Ihre Änderungen nach der Ausführung des Befehls in der Masterkonfiguration. Verwenden Sie hierfür beispielsweise den folgenden Befehl:

AdminConfig.save()

Zweck

Der Befehl createSIBJMSActivationSpec erstellt eine neue JMS-Aktivierungsspezifikation für einen bestimmten Geltungsbereich.

Zielobjekt

Der Geltungsbereich des Standard-Messaging-Providers, für den die JMS-Aktivierungsspezifikation erstellt wird.

Erforderliche Parameter

-name
Der Verwaltungsname, der dieser Aktivierungsspezifikation zugeordnet wird.
-jndiName
Der JNDI-Name, der in den Bindungen für nachrichtengesteuerte Beans, die dieser Aktivierungsspezifikation zugeordnet sind, definiert ist.

Optionale Parameter

-description
Eine optionale Beschreibung für die Aktivierungsspezifikation.
-destinationJndiName
Der JNDI-Name der JMS-Zielwarteschlange bzw. des Zieltopics, die bzw. das von der nachrichtengesteuerten Bean (MDB, Message-driven Bean) verwendet wird. Der JNDI-Name des Ziels und der Name der Zielsuche dienen demselben Zweck und speichern den JNDI-Namen des Ziels in der Konfiguration. Obwohl die beiden Felder an sich nicht verbindlich sind, müssen Sie sicherstellen, dass mindestens eines dieser Felder einen Wert enthält. Wenn die Parameter destinationLookup und destinationJndiName beide einen Wert haben, hat der Parameter destinationLookup Vorrang vor dem Parameter destinationJndiName.
-destinationLookup
Der JNDI-Name der JMS-Zielwarteschlange bzw. des Zieltopics, die bzw. das von der nachrichtengesteuerten Bean (MDB, Message-driven Bean) verwendet wird. Der JNDI-Name des Ziels und der Name der Zielsuche dienen demselben Zweck und speichern den JNDI-Namen des Ziels in der Konfiguration. Obwohl die beiden Felder an sich nicht verbindlich sind, müssen Sie sicherstellen, dass mindestens eines dieser Felder einen Wert enthält. Wenn die Parameter destinationLookup und destinationJndiName beide einen Wert haben, hat der Parameter destinationLookup Vorrang vor dem Parameter destinationJndiName.
-connectionFactoryLookup
Der JNDI-Name der Verbindungsfactory-Suche. Wenn die Verbindungsfactory-Suche in der Aktivierungsspezifikation als JNDI-Name definiert ist, haben die Verbindungsfactory-Eigenschaften Vorrang vor den Eigenschaften, die on der Konfiguration der Aktivierungsspezifikation definiert sind. Eine in der Verbindungsfactory-JNDI definierte Client-ID hat beispielsweise Vorrang vor der Client-ID, die on den Konfigurationseigenschaften der Aktivierungsspezifikation definiert ist.
-destinationType
Eine Option, mit der bestimmt werden kann, ob die Message-driven Bean eine JMS-Warteschlange oder ein JMS-Topic verwendet. Wählen Sie einen der folgenden Werte aus:
Queue
Die MDB verwendet eine JMS-Warteschlange. Der JNDI-Name der JMS-Warteschlange wird mit der Eigenschaft JNDI-Name des Ziels angegeben.
Topic
Die MDB verwendet ein JMS-Topic. Der JNDI-Name des JMS-Topic wird mit der Eigenschaft JNDI-Name des Ziels angegeben.
-messageSelector

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.

-busName
Der Name des Service Integration Bus, zu dem Verbindungen hergestellt werden kann. Dies muss der Name des Busses sein, in dem das mit der Eigenschaft -destinationJndiName angegebene Ziel definiert ist.
-acknowledgeMode
Der Bestätigungsmodus gibt an, wie eine von einer MDB empfangene Nachricht bestätigt werden soll. Wählen Sie einen der folgenden Werte aus:
Automatische Bestätigung
Die Sitzung bestätigt automatisch die Zustellung einer Nachricht.
Duplikate OK, automatische Bestätigung
Die Sitzung bestätigt die Zustellung von Nachrichten mit Verzögerung, was zwar zu einer Leistungsverbesserung, aber auch dazu führen kann, dass eine MDB eine Nachricht mehrfach erhalten kann.
-target
Der Name eines Ziels, der eine Gruppe von Messaging-Engines angibt. Den Typ des Ziels geben Sie mit der Eigenschaft targetType an.
-targetType
Der Typ des mit der Eigenschaft -target angegebenen Ziels. Wählen Sie einen der folgenden Werte aus:
Name des Busmembers
Der Name eines Busmembers. Diese Option ruft die aktiven Messaging-Engines im angegebenen Busmember (einem Anwendungsserver oder Server-Cluster) ab.
Name der angepassten Gruppe von Messaging-Engines
Der Name einer angepassten Gruppe von Messaging-Engines (ein sich selbst deklarierender Cluster). Diese Option ruft die aktiven Messaging-Engines ab, die in der angegebenen angepassten Gruppe registriert sind.
Name der Messaging-Engine
Der Name einer Messaging-Engine. Diese Option ruft die verfügbaren Endpunkte ab, die verwendet werden können, um die angegebene Messaging-Engine zu erreichen.
-targetSignificance
Wählen Sie einen der folgenden Werte aus:
Bevorzugt
Vorzugsweise soll eine Messaging-Engine aus der Zielgruppe gewählt werden. Es wird nur dann eine Messaging-Engine aus der Zielgruppe gewählt, wenn eine verfügbar ist. Sollte in der Zielgruppe keine Messaging-Engine verfügbar sein, wird eine Messaging-Engine außerhalb der Zielgruppe gewählt, sofern eine solche im selben Service Integration Bus verfügbar ist.
Erforderlich
Es muss eine Messaging-Engine aus der Zielgruppe gewählt werden. Es wird nur dann eine Messaging-Engine aus der Zielgruppe gewählt, wenn eine verfügbar ist. Sollte in der Zielgruppe keine Messaging-Engine verfügbar sein, schlägt der Verbindungsprozess fehl.
-targetTransportChain

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.

Die Transportketten sind Netzprotokollstapel in einem Server. Der angegebene Name muss eine der Transportketten sein, die in dem Server mit der Messaging-Engine verfügbar und in der Anzeige Server -> Servertypen -> WebSphere-Anwendungsserver -> Servername -> [Server-Messaging] Eingehende Transporte für die Messaging-Engine aufgelistet sind. Die folgenden Transportketten werden bereitgestellt. Sie können in dieser Anzeige jedoch eigene Transportketten definieren.
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.
Weitere Informationen zur Verwendung dieser Eigenschaft zusammen mit anderen Verbindungsfactory-Eigenschaften für das Workload-Management von Verbindungen finden Sie im Artikel "Verwaltungseigenschaften für JMS-Verbindungen zu einem Bus".
-providerEndPoints
Eine durch Kommas getrennte Liste mit Endpunkt-Triplets in der Syntax Hostname:Portnummer:Kettenname, die verwendet wird, um eine Verbindung zu einem Bootstrap-Server herzustellen, z. B. Merlin:7276:BootstrapBasicMessaging,Gandalf:5557:BootstrapSecureMessaging.

Providerendpunkte werden verwendet, wenn der angegebene Bus nicht in der lokalen Zelle gefunden wird. MDB-Anwendungen versuchen zuerst, eine Verbindung zum angegebenen Bus in der lokalen Zelle herzustellen. Wenn dieser Versuch scheitert, werden Providerendpunkte verwendet, um den Anwendungen das Konsumieren von Nachrichten aus einer fernen Zelle zu ermöglichen.

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.

-authenticationAlias

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.

-maxBatchSize
Diese Einstellung definiert die maximale Anzahl von Nachrichten in einem Stapel, die nacheinander an eine MDB-Instanz übermittelt werden. Durch die Verwendung von Nachrichtenstapeln kann die Leistung verbessert werden, insbesondere wenn die Eigenschaft Bestätigungsmodus den Wert Duplikate OK, automatische Bestätigung hat. Falls die Nachrichtenreihenfolge auch bei fehlgeschlagenen Zustellungen beibehalten werden soll, geben Sie als Wert für die Größe des Stapels auf 1.
-maxConcurrency

Eine Erhöhung dieses Wertes kann die Leistung verbessern, aber auch die Anzahl der parallel verwendeten Threads erhöhen. Wenn die Nachrichtenreichenfolge auch bei fehlgeschlagenen Übermittlungen beibehalten werden muss, setzen Sie die Einstellung für die maximale Anzahl paralleler Endpunkte auf 1. Die Nachrichtenreihenfolge gilt nur, wenn das Ziel, von dem die MDB konsumiert, kein partitioniertes Ziel ist. Partitionierte Ziele werden in einem Lastausgleichsszenario in einem Cluster verwendet.

-subscriptionDurability
Diese Option gibt an, ob eine JMS-Topicsubskription permanent oder nicht permanent ist.
Normalerweise kann jeweils nur eine Anwendung einen Konsumenten für eine bestimmte permanente Subskription haben. Mit dieser Eigenschaft können Sie dieses Verhalten außer Kraft setzen, wenn Sie möchten, dass eine permanente Subskription mehrere Konsumenten parallel haben darf. Wählen Sie einen der folgenden Werte aus:
Permanent
Der Messaging-Provider speichert die Nachrichten, während die MDB nicht verfügbar ist, und stellt die Nachrichten zu, sobald die MDB wieder verfügbar ist.
Nicht permanent
Der Messaging-Provider speichert die Nachrichten nicht und stellt sie auch nicht erneut zu, wenn eine MDB nicht verfügbar ist.
-subscriptionName

Jede permanente JMS-Subskription hat einen Subskriptionsnamen (der mit dieser Eigenschaft definiert wird). Eine JMS-Verbindung hat außerdem eine zugeordnete Client-ID (die mit der Eigenschaft Client-ID definiert wird), die verwendet wird, um eine Verbindung und die zugehörigen Objekte der Liste von Nachrichten (in der permanenten Subskription) zuzuordnen, die vom JMS-Provider für den Client verwaltet wird.

Der Subskriptionsname muss für jede Client-ID eindeutig sein.

-clientId

Der angegebene Wert ist eine eindeutige ID für einen Client (MDB). Die Client-ID wird verwendet, um eine Clientverbindung der Liste von Nachrichten (in einer permanenten Subskription) zuzuordnen, die der Messaging-Provider für den Client verwaltet. Sobald der Client nach einem Ausfall wieder verfügbar ist, verwendet der Messaging-Provider die Client-ID, um die gespeicherten Nachrichten erneut an den richtigen Client zu übermitteln.

-durableSubscriptionHome

Der Administrator kann den Laufzeitstatus permanenter Subskriptionen mit den Veröffentlichungspunkten für diese Messaging-Engine steuern.

-shareDurableSubscriptions

Normalerweise kann zu einer Zeit nur eine Sitzung einen TopicSubscriber für eine bestimmte permanente Subskription haben. Mit dieser Eigenschaft können Sie dieses Verhalten außer Kraft setzen, wenn Sie möchten, dass eine permanente Subskription mehrere Konsumenten, einen in jedem Anwendungsserver des Server-Cluster, parallel haben darf.

Wählen Sie einen der folgenden Werte aus:
Im Cluster
Lässt die gemeinsame Nutzung permanenter Subskriptionen zu, wenn Verbindungen innerhalb eines Server-Clusters hergestellt werden.
Immer freigeben
Permanente Subskriptionen können von mehreren Verbindungen gemeinsam genutzt werden.
Nie freigeben
Permanente Subskriptionen können nicht von mehreren Verbindungen gemeinsam genutzt werden.
-shareDataSourceWithCmp

True | False

Diese Option wird im Rahmen der Task verwendet, mit der Sie festlegen, dass CMP-Entity-Beans die Datenbankverbindungen nutzen, die der Datenspeicher einer Messaging-Engine verwendet. Mit dieser Option können Sie schätzungsweise eine Leistungsverbesserung von 15 % beim Gesamtnachrichtendurchsatz erzielen. Sie kann jedoch nur für Entity-Beans verwendet werden, die mit dem Anwendungsserver verbunden sind, der die Messaging-Engine enthält. Diese Option darf nicht für eine Messaging-Engine aktiviert werden, die den Dateispeicher als ihren Datenspeicher verwendet.

Nähere Informationen zur Verwendung dieser Option finden Sie im Artikel Unterstützung der gemeinsamen Nutzung von Datenbankverbindungen durch CMP-Entity-Beans und Datenspeicher von Messaging-Engines.

-readAhead

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.

Wählen Sie einen der folgenden Werte aus:
Aktiviert
Der Messaging-Provider ordnet die Nachrichten im Vorfeld Konsumenten zu. Damit wird die Bearbeitungszeit von Konsumentenanforderungen verkürzt.
Inaktiviert
Der Messaging-Provider ordnet die Nachrichten nicht im Vorfeld Konsumenten zu.
Default
Der Messaging-Provider ordnet die Nachrichten im Vorfeld Konsumenten in nicht permanenten und nicht freigegebenen permanenten Subskriptionen zu. Das Optimierungsverfahren "Vorauslesen" wird also nur aktiviert, wenn nur ein Konsument möglich ist.
Die Eigenschaften für die "Übergabe von Nachrichtennutzdaten nach Referenz":
-forwarderDoesNotModifyPayloadAfterSet
true | false (Standardeinstellung false)
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.
-consumerDoesNotModifyPayloadAfterGet
true | false (Standardeinstellung false)
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.
Wenn große Objektnachrichten oder Bytenachrichten gesendet werden, können die Kosten für die Speicher- und Prozessornutzung, die durch das Serialisieren, Deserialisieren und Kopieren der Nachrichtennutzdaten entstehen, beträchtlich sein. Wenn Sie die Eigenschaften für die Übernahme von Nachrichtennutzdaten nach Referenz in einer Verbindungsfactory oder Aktivierungsspezifikation aktivieren, teilen Sie dem Standard-Messaging-Provider dadurch mit, die Spezifikation JMS 1.1 zu überschreiben und das Kopieren der Daten nach Möglichkeit einzuschränken oder zu umgehen.
Vorsicht:
Die Teile der JMS-Spezifikation, die von diesen Eigenschaften umgangen werden, werden definiert, um die Integrität der Nachrichtendaten zu gewährleisten. Alle JMS-Anwendungen, die diese Eigenschaften verwenden, müssen die Regeln, die im Artikel "Warum und wann JMS-Nachrichtennutzdaten nach Referenz übergeben werden" beschrieben sind, strikt einhalten, da die Datenintegrität ansonsten nicht gewährleistet werden kann.
-alwaysActivateAllMDBs
True | False

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.

Für MDB-Anwendungen, die eine Verbindung zu einem Busmember des Typs "Cluster" herstellen, können Sie diese Option verwenden, um die folgenden zusätzlichen Konfigurationen zu ermöglichen:
  • 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.
Wählen Sie diese Option aus, um allen Servern im Cluster den Empfang von Nachrichten von der MDB-Anwendung zu ermöglichen. Wenn nur jeweils ein Server Nachrichten von der MDB-Anwendung empfangen soll, müssen Sie diese Option abwählen und die Option Exklusiver Empfang für das Ziel auswählen.

Weitere Informationen finden Sie im Artikel So stellen nachrichtengesteuerte Beans eine Verbindung in einem Cluster her.

-retryInterval
-userName
Die Benutzeridentität für die Java™-2-Connector-Sicherheit.
-password
Das Kennwort für die Java-2-Connector-Sicherheit.
-WAS_EndpointInitialState
ACTIVE |INACTIVE
Diese Eigenschaft bestimmt, ob der Endpunkt bei der Registrierung des Endpunkts aktiviert wird. Wenn Sie diese Eigenschaft auf "active" setzen, beginnt der Nachrichtenkonsum beim JMS-Ziel, sobald die Aktivierungsspezifikation verwendet wird, um eine Message-driven Bean mit dem Ziel zu verbinden.

Beispiel

Anmerkung: In den folgenden Beispielen zeigen die mit wsadmin beginnenden Codeblöcke Code, der vom Benutzer eingegeben wurde. Zeilen, die nicht mit wsadmin beginnen, zeigen Code, der von der Konsole zurückgegeben wurde.
  • Das folgende Beispiel veranschaulicht die Erstellung einer Aktivierungsspezifikation mit Jython:
    wsadmin>AdminConfig.getid("/Node:9994GKCNode01" )
    "9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)"
    wsadmin>AdminTask.createSIBJMSActivationSpec("9994GKCNode01(cells/9994GKCNode01Cell/
    nodes/9994GKCNode01|node.xml"), ["-name", "myjmsas", "-jndiName", "jms/myjmsas",
     "-destinationJndiName", "jms/mqueue", "-busName", "abus"]) 
    "myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098726667851)"
    
    wsadmin>AdminTask.listSIBJMSActivationSpecs("9994GKCNode01(cells/9994GKCNode01Cell/
    nodes/9994GKCNode01|node.xml)")
    "myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098726667851)"
  • Das folgende Beispiel veranschaulicht die Erstellung einer Aktivierungsspezifikation mit Jacl:
    wsadmin>$AdminConfig getid /Node:9994GKCNode01
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
    wsadmin>$AdminTask createSIBJMSActivationSpec 
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
    {-name myjmsas -jndiName jms/myjmsas -destinationJndiName jms/mqueue -busName 
    abus} 
    myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098726667851)
    wsadmin>$AdminTask listSIBJMSActivationSpecs 9994GKCNode01 (cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
    myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098726667851)

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