Wenn der Warteschlangenmanager separat erstellt werden soll, müssen Sie auch eine Warteschlange für nicht zustellbare Nachrichten definieren. Auf diese Warteschlange wird vom WebSphere Message Broker verwiesen, wenn bei der Verarbeitung von Nachrichten in Nachrichtenflüssen Fehler auftreten.
Wenn eine Nachricht in einem benutzerdefinierten Nachrichtenfluss oder im Publish/Subscribe-Modell nicht verarbeitet werden kann, wird sie schließlich an diese Warteschlange für nicht zustellbare Nachrichten weitergeleitet. Wenn Sie es vorziehen, dass die Nachricht in der Eingabewarteschlange zurückgesetzt und der Nachrichtenfluss bis zur Behebung des Problems angehalten wird, müssen Sie die Warteschlange für nicht zustellbare Nachrichten inaktivieren.
Der Befehl mqsideletebroker löscht diese Warteschlange nicht (es sei denn, der Warteschlangenmanager wird gelöscht).
Wenn Sie einen WebSphere MQ-Warteschlangenmanager verwenden, der nicht mit dem Befehl mqsicreatebroker erstellt wurde, können Sie auch Cluster definieren. In den meisten Fällen vereinfacht dies die Konfiguration.
Wird der Warteschlangenmanager mit diesem Befehl erstellt, wird er nicht als Windows-Dienst erstellt; er wird daher gestoppt, wenn Sie sich abmelden. Um dies zu vermeiden, müssen Sie entweder angemeldet bleiben oder den Startstatus des Warteschlangenmanagerservice ändern. (Wenn Sie die Workstation sperren, wird der WebSphere MQ-Warteschlangenmanager dadurch nicht gestoppt.)
Wenn der Name eines unter z/OS erstellten Brokers in Großbuchstaben gesetzt ist, muss dieser Brokername in der Workbench ebenfalls in Großbuchstaben gesetzt sein.
Informationen zu Einschränkungen bei dem verwendeten Zeichensatz finden Sie unter Zulässige Zeichen in Befehlen.Sie kann in einem beliebigen gültigen Format für Benutzernamen angegeben werden. Auf Windows-Plattformen sind Folgende möglich:
Auf Linux- und UNIX-Systemen ist nur das Format Benutzername gültig.
Wenn Sie auf Windows-Plattformen das nicht qualifizierte Format (username) für diese Benutzer-ID wählen, durchsucht das Betriebssystem die gesamte Domäne nach der Benutzer-ID, angefangen mit dem lokalen System. Diese Suche kann einige Zeit in Anspruch nehmen.
Die ServiceUserID, die angegeben wird, muss zur lokalen Gruppe mqbrkrs gehören. Auf Windows-Plattformen kann sie direkt oder indirekt zu dieser Gruppe gehören. Die ServiceUserID muss außerdem Zugriff auf das Ausgangsverzeichnis (in dem WebSphere Message Broker installiert ist) und auf das Arbeitsverzeichnis (wenn das Attribut -w angegeben wurde) haben.
Wenn Sie auf Windows-Plattformen angeben, dass der Broker als gesicherte WebSphere MQ-Anwendung ausgeführt werden soll (Attribut -t), muss diese Benutzer-ID auch der Gruppe mqm hinzugefügt werden. Auf Linux- und UNIX-Systemen muss als Servicebenutzer-ID mqm angegeben werden, wenn das Attribut -t gesetzt wird.
Weitere Informationen zu den Sicherheitsanforderungen für die Servicebenutzer-ID finden Sie im Abschnitt Sicherheitsanforderungen für Windows-Plattformen.
Wenn Sie diese Benutzer-ID für den Zugriff auf die Datenbank verwenden (d. h. wenn Sie keine andere Benutzer-ID mit dem Flag -u angeben) und Sie einen SQL-Server für Ihre Datenbanken verwenden, müssen Sie vor dem Erstellen des Brokers diese Benutzer-ID als Anmelde-ID für den SQL-Server erstellen und der Benutzer-ID die richtigen Zugriffsrechte zuordnen (weitere Informationen dazu finden Sie im Abschnitt Sicherheitsüberlegungen bei Brokern). Befindet sich die Brokerdatenbank in einem DB2-System und ist diese Benutzer-ID nicht in DB2 registriert, wird sie automatisch von DB2 erstellt.
Um die Kompatibilität mit vorhandenen Systemen sicherzustellen, kann nach wie vor noch <Kennwort> angegeben werden. Wird jedoch bei Ausführung des Befehls kein Kennwort für diesen Parameter angegeben, werden Sie beim Aufrufen des Befehls aufgefordert, ein Kennwort anzugeben und dieses anschließend noch ein zweites Mal einzugeben, um sicherzustellen, dass es korrekt eingegeben wurde.
Auf Linux- und UNIX-Systemen ist -a aus Gründen der Kompatibilität mit Windows-Plattformen erforderlich, wird aber nicht mit der Servicebenutzer-ID verwendet; das Attribut wird nur dann als Standardwert verwendet, wenn für -p nichts angegeben wurde. (Weitere Hinweise finden Sie in den Erläuterungen zum Parameter -p.)
Für jeden Broker ist ein eigener Warteschlangenmanager unbedingt erforderlich. Ein Broker kann keinen Warteschlangenmanager gemeinsam mit anderen Brokern nutzen.
Ist der Warteschlangenmanager noch nicht vorhanden, wird er mit diesem Befehl erstellt. Er wird nicht als Standard-WS-Manager erstellt; ist dieser WS-Manager auf diesem System als Standard-WS-Manager vorgesehen, müssen Sie entweder den Warteschlangenmanager erstellen, bevor Sie diesen Befehl eingeben, oder die Einstellungen dieses Warteschlangenmanagers ändern, so dass er als Standard-WS-Manager eingerichtet wird. Dies geschieht mit dem WebSphere MQ-Explorer oder dem WebSphere MQ Services-Snap-in, je nachdem, welche Version von WebSphere MQ verwendet wird.
Das WS-Managerattribut MAXMSGLN (max. Länge der Nachrichten, die in Warteschlangen eingereiht werden können) wird auf 100 MB erhöht. Dies geschieht unabhängig davon, ob der Warteschlangenmanager mit diesem Befehl erstellt wurde.
Informationen zu Einschränkungen bei dem verwendeten Zeichensatz finden Sie unter Zulässige Zeichen in Befehlen.
Diese Datenbank muss bereits vorhanden sein. Für diesen DSN muss eine System-DSN-ODBC-Verbindung hergestellt werden, falls dies noch nicht geschehen ist.
Wenn Sie eine DB2-Datenbank unter Linux verwenden, geben Sie den entsprechenden Aliasnamen der Datenbank an; die Angabe eines ODBC-DSN ist nicht erforderlich.
Diese Benutzer-ID muss die Berechtigung haben, Tabellen in der Datenbank zu erstellen, und sie muss Lese- und Schreibzugriff auf diese Tabellen haben.
Auf Windows-Plattformen wird diese Benutzer-ID automatisch in DB2 erstellt, wenn sich die Brokerdatenbank in einem DB2-System befindet und diese Benutzer-ID in DB2 nicht bekannt ist. Auf Linux- und UNIX-Systemen muss dem Servicebenutzer zunächst das korrekte Zugriffsrecht erteilt werden. Wenn es sich bei Ihrer Datenbank um einen SQL-Server handelt, müssen Sie vor dem Erstellen des Brokers diese Benutzer-ID als Anmelde-ID des SQL-Servers erstellen und der Benutzer-ID die richtigen Zugriffsrechte erteilen (weitere Informationen dazu finden Sie im Abschnitt Sicherheitsanforderungen für Windows-Plattformen).
Wenn eine Anwendungsdatenbank in DB2 vorhanden ist, die mit dieser Benutzer-ID erstellt wurde oder auf die diese Benutzer-ID Lese-, Schreib- und Erstellungszugriff hat, können die in diesem Broker ausgeführten Nachrichtenflüsse ohne Angabe eines expliziten Schemanamens auf die Anwendungsdaten in dieser Datenbank zugreifen.
Diese Benutzer-ID muss die Berechtigung haben, Tabellen in der Datenbank zu erstellen, und sie muss Lese- und Schreibzugriff auf diese Tabellen haben.
Wenn eine Anwendungsdatenbank in DB2 vorhanden ist, die mit dieser Benutzer-ID erstellt wurde oder auf die diese Benutzer-ID Lese-, Schreib- und Erstellungszugriff hat, können die in diesem Broker ausgeführten Nachrichtenflüsse ohne Angabe eines expliziten Schemanamens auf die Anwendungsdaten in dieser Datenbank zugreifen.
Um die Kompatibilität mit vorhandenen Systemen sicherzustellen, kann nach wie vor noch <Kennwort> angegeben werden. Wird jedoch bei Ausführung des Befehls kein Kennwort für diesen Parameter angegeben, werden Sie beim Aufrufen des Befehls aufgefordert, ein Kennwort anzugeben und dieses anschließend noch ein zweites Mal einzugeben, um sicherzustellen, dass es korrekt eingegeben wurde.
Für DB2 auf Linux- und UNIX-Systemen können -u und -p als leere Zeichenfolgen (jeweils mit zwei Anführungszeichen "") angegeben werden. In diesem Fall erteilt DB2 WebSphere Message Broker die Zugriffsrechte der ServiceUserID; daraus ergibt sich eine "bereits bestätigte" Datenbankverbindung. Wenn Sie für -a, -u und -p leere Zeichenfolgen angeben, speichert WebSphere Message Broker keine Kennwörter; so wird eine sehr sichere Konfiguration erstellt.
In diesem Verzeichnis werden auch die Tracesätze gespeichert, die bei aktivierter Tracefunktion erstellt werden. Diese Datensätze werden in das Unterverzeichnis log geschrieben, das vor dem Start des Brokers erstellt werden muss.
Fehlerprotokolle, die vom Broker bei der abnormalen Beendigung von Prozessen erstellt werden, werden ebenfalls in diesem Verzeichnis gespeichert. Auf Windows-Plattformen wird über diese Option ein Verzeichnis auf einem anderen Laufwerk angegeben als dem, auf dem das Produkt installiert ist.
Das Fehlerprotokoll hat keine Größenbeschränkung, sein Umfang nimmt also ständig zu. Daher sollten Sie dieses Verzeichnis von Zeit zu Zeit überprüfen und alte Fehlerinformationen löschen.
Diese Option kann nicht mit dem Befehl mqsichangebroker geändert werden. Wenn Sie den Arbeitspfad angeben oder ändern möchten, müssen Sie den Broker löschen und erneut erstellen.
Bei Angabe dieser Option auf Windows-Plattformen müssen Sie die Servicebenutzer-ID (wird über das Attribut -i angegeben) der Gruppe mqm hinzufügen. Bei Angabe dieser Option unter HP-UX und Solaris muss mqm als ServiceUserID angegeben werden. Weitere Informationen zur Verwendung gesicherter WebSphere MQ-Anwendungen finden Sie im Handbuch WebSphere MQ Intercommunication.
Sie müssen ein eigenes Verzeichnis zum Speichern der LIL- bzw. JAR-Dateien erstellen. Diese Dateien sollten nicht im WebSphere Message Broker-Installationsverzeichnis installiert werden.
Wenn Sie mehrere zusätzliche Verzeichnisse angeben, müssen diese durch das plattformspezifische standardmäßige Pfadtrennzeichen getrennt werden (Semikolon (;) auf Windows-Plattformen, Doppelpunkt (:) auf Linux- und UNIX-Systemen).
Umgebungsvariablen können nicht in diesen eingeschlossen werden; werden sie angegeben, werden sie ignoriert.
Wenn ein Nachrichtenfluss gerade eine Anwendungsnachricht verarbeitet, kann er keine Konfigurationsänderungen übernehmen. Wenn einer der Nachrichtenflüsse in der Ausführungsgruppe, die zur Änderung der Konfiguration aufgefordert wurde, die Verarbeitung einer Anwendungsnachricht nicht beendet und die Änderung der Konfiguration innerhalb des Zeitlimits ausführt, gibt die Ausführungsgruppe eine negative Antwort auf die implementierte Konfigurationsnachricht zurück.
Der Wert, den Sie für dieses Zeitlimit festlegen, ist von der Systemauslastung (einschließlich CPU-Auslastung) und von der Auslastung der einzelnen Ausführungsgruppen abhängig. Sie können einen Eingangswert ermitteln, indem Sie die gesamte Brokerkonfiguration einsetzen. Die Zeit, die ein erfolgreiche Abschluss dieses Vorgangs in Anspruch nimmt, gibt den Mindestwert an, der hier gesetzt werden muss.
Der Wert wird in Sekunden angegeben; möglich sind Werte zwischen 10 und 300. Standardwert ist 300.
Die Summe aus ConfigurationTimeout und ConfigurationDelayTimeout (Beschreibung siehe unten) gibt die Zeit an, die der Broker maximal für die Verarbeitung einer eingesetzten Konfigurationsnachricht hat, bevor eine negative Antwort generiert wird.
Dies ist die Zeit, die der Broker und dessen Ausführungsgruppen benötigen, um eine minimale eingesetzte Konfigurationsnachricht zu verarbeiten; die benötigte Zeit hängt von den Netzverzögerungen des Warteschlangenmanagers, der Auslastung des Warteschlangenmanagers, der dem Broker zugeordnet ist, und von der Systembelastung ab.
mqsireporttrace brokerName -e "Name der Ausführungsgruppe" -u
F MQP1BRK,reporttrace u=yes,e='exgrp1'
Die Reaktionszeit der einzelnen Ausführungsgruppen hängt von der Systembelastung und von ihrer Prozesslast ab. Der hier angegebene Wert muss die längste Reaktionszeit einer Ausführungsgruppe berücksichtigen, die möglich ist. Wenn der Wert zu niedrig angesetzt wird, gibt der Broker eine negative Antwort zurück und schreibt unter Umständen Fehlernachrichten in das lokale Fehlerprotokoll.
Der Wert wird in Sekunden angegeben; möglich sind Werte zwischen 10 und 300. Standardwert ist 300.
Befindet sich der Broker auf einem Produktionssystem, muss ein höherer Wert für Konfigurationszeitlimit und Konfigurationsverzögerungszeitlimit angegeben werden, damit Anwendungsnachrichten, die gerade von Nachrichtenflüssen verarbeitet werden, abgeschlossen werden können, bevor die Konfigurationsänderung übernommen wird.
Befindet sich der Broker auf einem Entwicklungs- oder Testsystem, sollte das Zeitlimit gesenkt werden (besonders das ConfigurationTimeout) um die Antwortzeiten zu verbessern und Antworten von Brokern zu erzwingen, die nicht das erwartete Verhalten aufweisen. Ein niedriges Zeitlimit erhöht allerdings die Wahrscheinlichkeit, dass eine Konfigurationsänderung erfolgreich eingesetzt wird.
Dieses Empfangsprogramm wird vom Broker gestartet, wenn ein Nachrichtenfluss mit Web-Serviceunterstützung gestartet wird; Standardwert ist 7080.
Stellen Sie sicher, dass der Port, den Sie angeben, nicht bereits für andere Zwecke eingesetzt ist.
Ein Intervall von null Minuten gibt an, dass die Plattform über ein externes Benachrichtigungsverfahren verfügt und den internen Zeitgeber von WebSphere Message Broker nicht verwendet.
Auf Windows-Systemen muss die Benutzer-ID, mit der dieser Befehl aufgerufen wird, auf dem lokalen System über die Berechtigung Administrator verfügen.
Auf UNIX-Systemen muss die Benutzer-ID, mit der dieser Befehl aufgerufen wird, zur Gruppe mqbrkrs gehören.
Auf z/OS-Systemen muss die Benutzer-ID, mit der dieser Befehl aufgerufen wird, zu einer Gruppe gehören, die über Lese- und Schreibzugriff (READ und WRITE) auf das Komponentenverzeichnis verfügt.
Bei Verwendung von LDAP: Stellen Sie sicher, dass die Registrierungsdatenbank ausreichend gegen unbefugte Zugriffe geschützt ist. Ein korrekter Betrieb des Brokers ist nicht davon abhängig, ob die Optionen LDAP-Principal und LDAP-Berechtigungsweise im Befehl mqsicreatebroker gesetzt werden. Das Kennwort wird im Dateisystem nicht als Klartext abgespeichert.
Alle Warteschlangen haben eine Zugriffsberechtigung auf die WebSphere Message Broker-Gruppe mqbrkrs. Wenn die Warteschlange für nicht zustellbare Nachrichten aktiviert ist, hat sie dieselbe Berechtigung.
Dieser Befehl gibt die folgenden Antworten zurück:
(51002)[IBM][CLI Driver][DB2/NT]SQL0805N Package "NULLID.SQLLF000" was not found. (Paket "NULLID.SQLLF000" wurde nicht gefunden) SQLSTATE=51002.
Dieser Fehler tritt auf, wenn die Bindung an die Datenbank fehlgeschlagen ist.
Auf Windows-Plattformen ist für Brokerdatenbanken kein Binden erforderlich; für Benutzerdatenbank allerdings ist es erforderlich. Wenn Sie eine Datenbank mit der DB2-Steuerzentrale erstellt haben, erfolgt das Binden automatisch. Bei Verwendung der Befehlsschnittstelle ist dies nicht der Fall. Für die Datenbank MYDB beispielsweise können Sie eine Bindung erstellen bzw. erneut erstellen, indem Sie an der Eingabeaufforderung die folgenden Befehle eingeben:
db2 connect to MYDB user db2admin using db2admin db2 bind X:\sqllib\bnd\@db2cli.lst grant public db2 connect reset
Hierbei steht X: für das Laufwerk, in dem DB2 installiert wurde.
Auf UNIX-Plattformen ist ein Binden für alle Datenbanken notwendig. Für die Datenbank WBRKBKDB beispielsweise werden dazu an der Eingabeaufforderung die folgenden Befehle eingegeben (dabei ist <Benutzername> die Benutzer-ID unter der die Datenbankinstanz erstellt wurde):
db2 connect to WBRKBKDB user db2admin using db2admin
db2 bind ~<Benutzername>/sqllib/bnd/@db2cli.lst grant public CLIPKG 5
db2 connect reset
Wenn Sie nicht das standardmäßige Benutzer-ID/Kennwort-Paar für DB2 verwenden (db2admin), müssen Sie diese im Befehl db2 connect durch die entsprechenden Werte ersetzen.
Wenn der Befehl mqsicreatebroker beim ersten Mal fehlschlägt und Sie ihn deswegen ein zweites Mal ausführen, erhalten Sie eine Reihe von Nachrichten. In diesen werden alle Komponenten aufgeführt, die nicht erstellt werden können. Dies sollte keine nachteiligen Auswirkungen haben. Wenn beispielsweise die Erstellung eines Brokers beim ersten Mal fehlgeschlagen ist und die Fehlerursache behoben wurde, sollte es möglich sein, den Broker beim zweiten Versuch erfolgreich zu erstellen.
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -s WBRK_UNS_QM -n WBRKBKDB
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -t
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -x /opt/3rdparty/wmbexits
mqsicreatebroker CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0
mqsicreatebroker CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0 -2