![[IBM i]](ngibmi.gif)
Mit lokalen Warteschlangen unter IBM i arbeiten
Dieser Abschnitt enthält Beispiele für einige der Befehle, die Sie zum Verwalten lokaler Warteschlangen verwenden können. Alle angezeigten Befehle sind auch über die Optionen in der WRKMQMQ-Befehlsanzeige verfügbar.
Lokale Warteschlange definieren
Bei einer Anwendung ist der lokale WS-Manager der Warteschlangenmanager, mit dem die Anwendung verbunden ist. Warteschlangen, die vom lokalen WS-Manager verwaltet werden, werden als lokale Warteschlangen für diesen Warteschlangenmanager angegeben.
Mit dem Befehl CRTMQMQ QTYPE *LCL können Sie eine Definition einer lokalen Warteschlange sowie die Datenstruktur erstellen, die als Warteschlange bezeichnet wird. Sie können die Warteschlangenkenndaten auch von denen der lokalen Standardwarteschlange ändern.
- Es ist aktiviert für Abrufe, ist für die Auswahl inaktiviert und wird auf einer FIFO-Basis (First In First Out) ausgeführt.
- Es handelt sich um eine normale Warteschlange, d. a. es handelt sich nicht um eine Initialisierungswarteschlange oder eine Übertragungswarteschlange, und es werden keine Auslösenachrichten generiert.
- Die maximale Warteschlangenlänge beträgt 1000 Nachrichten; die maximale Nachrichtenlänge beträgt 2000 Byte.
CRTMQMQ QNAME('orange.local.queue') QTYPE(*LCL)
TEXT('Queue for messages from other systems')
PUTENBL(*NO)
GETENBL(*YES)
TRGENBL(*NO)
MSGDLYSEQ(*FIFO)
MAXDEPTH(1000)
MAXMSGLEN(2000)
USAGE(*NORMAL)
USAGE *NORMALgibt an, dass es sich bei dieser Warteschlange nicht um eine Übertragungswarteschlange handelt.- Wenn bereits eine lokale Warteschlange mit dem Namen
orange.local.queueauf demselben WS-Manager vorhanden ist, schlägt dieser Befehl fehl. Verwenden Sie das AttributREPLACE *YES, wenn Sie die vorhandene Definition einer Warteschlange überschreiben möchten, aber siehe auch Attribute lokaler Warteschlangen ändern.
Warteschlange für dead-Mail definieren
Jeder WS-Manager muss über eine lokale Warteschlange verfügen, die als Warteschlange für einen dead-letter verwendet werden muss, damit Nachrichten, die nicht an ihr korrektes Ziel zugestellt werden können, für einen späteren Abruf gespeichert werden können. Sie müssen dem WS-Manager explizit die Warteschlange für dead-letter mitteilen. Sie können dies tun, indem Sie im Befehl CRTMQM eine Warteschlange für nicht zustellbare Nachrichten angeben, oder Sie können den Befehl CHGMQM verwenden, um später eine Warteschlange anzugeben. Sie müssen auch die Warteschlange für dead-letter definieren, bevor sie verwendet werden kann.
Im Lieferumfang des Produkts ist eine Beispiel-Warteschlange mit dem Namen 'dead-letter' mit dem Namen SYSTEM.DEAD.LETTER.QUEUE enthalten Diese Warteschlange wird bei der Erstellung des Warteschlangenmanagers automatisch erstellt. Sie können diese Definition bei Bedarf ändern. Es gibt keine Notwendigkeit, es umzubenennen, obwohl Sie können, wenn Sie möchten.
- Es muss sich um eine lokale Warteschlange handeln.
- Das Attribut MAXMSGL (maximale Nachrichtenlänge) muss die Warteschlange aktivieren, damit die größten Nachrichten, die der WS-Manager mit plus der Größe des Headers dead-letter (MQDLH) handhaben muss, berücksichtigt werden können.
IBM® MQ stellt eine Steuerroutine der Warteschlange für nicht zustellbare Nachrichten bereit, mit der Sie angeben können, wie in einer Warteschlange für nicht zustellbare Nachrichten gefundene Nachrichten verarbeitet oder entfernt werden. Weitere Informationen finden Sie unter Aufrufen des Dead-Letter-Queue-Handlers aufIBM i .
Standardobjektattribute anzeigen
SYSTEM.DEFAULT.LOCAL.QUEUE bezeichnet wird. Um genau zu sehen, welche Attribute diese Attribute haben, verwenden Sie den folgenden Befehl:DSPMQMQ QNAME(SYSTEM.DEFAULT.LOCAL.QUEUE) MQMNAME(MYQUEUEMANAGER)
Lokale Warteschlangendefinition kopieren
CPYMQMQ FROMQ('orange.local.queue') TOQ('magenta.queue') MQMNAME(MYQUEUEMANAGER)
Dieser Befehl erstellt eine Warteschlange mit den gleichen Attributen wie die ursprüngliche Warteschlange orange.local.queue und nicht die Warteschlange der lokalen Standardwarteschlange.
CPYMQMQ FROMQ('orange.local.queue') TOQ('third.queue') MQMNAME(MYQUEUEMANAGER)
MAXMSGLEN(1024)
Dieser Befehl kopiert die Attribute der Warteschlange orange.local.queue in die Warteschlange third.queue, gibt jedoch an, dass die maximale Nachrichtenlänge in der neuen Warteschlange 1024 Byte und nicht 2000 betragen soll.
Attribute der lokalen Warteschlange ändern
orange.local.queuedefiniert. Wenn Sie zum Beispiel die maximale Nachrichtenlänge in dieser Warteschlange auf 10.000 Byte erhöhen müssen.- Mit dem Befehl CHGMQMQ :
Mit diesem Befehl wird ein einzelnes Attribut geändert, das der maximalen Nachrichtenlänge entspricht. Alle anderen Attribute bleiben unverändert.CHGMQMQ QNAME('orange.local.queue') MQMNAME(MYQUEUEMANAGER) MAXMSGLEN(10000) - Verwendung des Befehls CRTMQMQ mit der Option REPLACE *YES, z. B.:
CRTMQMQ QNAME('orange.local.queue') QTYPE(*LCL) MQMNAME(MYQUEUEMANAGER) MAXMSGLEN(10000) REPLACE(*YES)Dieser Befehl ändert nicht nur die maximale Nachrichtenlänge, sondern auch alle anderen Attribute, die ihre Standardwerte erhalten. Die Warteschlange ist jetzt aktiviert, während sie zuvor gesperrt wurde. Put aktiviert ist der Standardwert, wie er in der Warteschlange
SYSTEM.DEFAULT.LOCAL.QUEUEangegeben ist, es sei denn, Sie haben ihn geändert.Wenn Sie die maximale Nachrichtenlänge für eine vorhandene Warteschlange erhöhen , sind vorhandene Nachrichten nicht davon betroffen. Alle neuen Nachrichten müssen jedoch die neuen Kriterien erfüllen.
Löschen einer lokalen Warteschlange
magenta.queue löschen möchten, verwenden Sie den folgenden Befehl:CLRMQMQ QNAME('magenta.queue') MQMNAME(MYQUEUEMANAGER)
- Es sind nicht festgeschriebene Nachrichten vorhanden, die unter Synchronisationspunkt in die Warteschlange gestellt wurden.
- Eine Anwendung hat momentan die Warteschlange geöffnet.
Lokale Warteschlange löschen
Mit dem Befehl DLTMQMQ können Sie eine lokale Warteschlange löschen.
Eine Warteschlange kann nicht gelöscht werden, wenn sie nicht festgeschriebene Nachrichten enthält oder wenn sie im Gebrauch ist.
Große Warteschlangen aktivieren
IBM MQ unterstützt Warteschlangen mit mehr als 2 GB. Informationen zum Aktivieren von IBM i für die Unterstützung großer Dateien finden Sie in der Dokumentation zu Ihrem Betriebssystem.
DerIBM i Produktinformationen finden Sie inIBM Documentation .
Einige Dienstprogramme sind möglicherweise nicht in der Lage, Dateien mit mehr als 2 GB zu bewältigen. Überprüfen Sie vor der Aktivierung der Unterstützung für große Dateien die Dokumentation zum Betriebssystem, um Informationen zu Einschränkungen für diese Unterstützung zu erhalten.