Befehl "modifySIBJMSActivationSpec"
Verwenden Sie den Befehl modifySIBJMSActivationSpec, um die Eigenschaften einer JMS-Aktivierungsspezifikation des Standard-Messaging-Providers für einen bestimmten Geltungsbereich zu ändern.
Verwenden Sie zum Ausführen des Befehls das Objekt AdminTask des Scripting-Clients wsadmin.
Der Scripting-Client wsadmin wird über die Qshell ausgeführt.
Weitere Informationen finden Sie unter Qshell für die Ausführung von WebSphere-Scripts mit wsadmin-Scripting konfigurieren.
- 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')
AdminConfig.save()
Zweck
Dieser Befehl ändert die Eigenschaften einer JMS-Aktivierungsspezifikation.
Zielobjekt
Der Geltungsbereich des Standard-Messaging-Providers, für den die JMS-Aktivierungsspezifikation geändert wird.
Erforderliche Parameter
Ohne.
Optionale 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.
- -description
- Eine optionale Beschreibung für die Aktivierungsspezifikation.
- -destinationType
- Verwenden Sie diesen Parameter, um festzulegen, ob die Message-driven Bean eine JMS-Warteschlange oder ein JMS-Topic verwenden soll.
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.
- -destinationJndiName
- Der JNDI-Name der JMS-Zielwarteschlange bzw. des Zieltopics, die bzw. das von der nachrichtengesteuerten Bean (MDB, Message-driven Bean) verwendet wird.
- -destinationLookup
- Der JNDI-Name der JMS-Zielwarteschlange bzw. des Zieltopics, die bzw. das von der nachrichtengesteuerten Bean (MDB, Message-driven Bean) verwendet wird. Die Parameter JNDI-Name des Ziels und Lookup-Name des Ziels dienen beide dazu, den JNDI-Namen des Ziels in der Konfiguration zu speichern. Obwohl die beiden Felder nicht obligatorisch sind, müssen Sie sicherstellen, dass mindestens eines einen Wert enthält. Wenn die Parameter destinationLookup und destinationJndiName beide einen Wert enthalten, hat der Parameter destinationLookup Vorrang gegenüber destinationJndiName.
- -connectionFactoryLookup
- Der JNDI-Name für eine Verbindungsfactory-Suche.
- -messageSelector
- Zeichenfolge
- -busName
- Geben Sie den Namen des Service Integration Bus (SIB) an, zu dem Verbindungen hergestellt werden. 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
- -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 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.
- -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.
Es werden nur dann Providerendpunkte verwendet, wenn der angegebene Bus in der lokalen Zelle nicht 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 Java™ EE-JCA-Authentifizierungsalias gibt die Benutzer-ID und das Kennwort für die Authentifizierung der Erstellung einer neuen Verbindung zum JMS-Provider an.
- -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
- 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.
Weitere 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.
- -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.
- -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.
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
- 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.
Die gültigen Werte für diesen Parameter sind ACTIVE und INACTIVE.
Beispiel
- Das folgende Beispiel zeigt eine Aktivierungsspezifikation, die mit Jython geändert wird:
wsadmin>AdminTask.modifySIBJMSActivationSpec("myjmsas(cells/ 9994GKCNode01Cell/nodes/ 9994GKCNode01|resources.xml#J2CActivationSpec_1098726667851)", ["-jndiName", "jms/jmsas4q1", "-description", "JMS activation specification for myqueue1", "-destinationJndiName", "jms/myqueue1"]) "myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)"
- Das folgende Beispiel zeigt eine Aktivierungsspezifikation, die mit Jacl geändert wird:
wsadmin>$AdminTask modifySIBJMSActivationSpec myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivationSpec_1098726667851) {-jndiName jms/jmsas4q1 -description "JMS activation specification for myqueue1" -destinationJndiName jms/myqueue1} myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)
- Im folgenden Beispiel wird eine Aktivierungsspezifikation durch Aktivierung des optionalen Parameters
"WAS_EndpointInitialState" mit Jython geändert:
wsadmin>attrs = "[[name "WAS_EndpointInitialState"] [required "false"] [type "java.lang.String"] [value "ACTIVE"]]" wsadmin>AdminConfig.getid("/Node:myNode01") "myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)" wsadmin>AdminTask.listSIBJMSActivationSpecs("myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)") "newas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)" wsadmin>AdminConfig.create("J2EEResourceProperty", "testas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)", attrs) "WAS_EndpointInitialState(cells/myCell01/nodes/myNode01|resources.xml#J2EEResourceProperty_1298546239332)"