Eine oder mehrere Subskriptionen für einen bestimmten Subskribenten können über die Befehlsnachricht Subskribent abmelden abgemeldet werden. Dieser Befehl wird an die Steuerwarteschlange des Brokers (SYSTEM.BROKER.CONTROL.QUEUE) gesendet. Diese Befehlsnachricht muss vom Subskribenten gesendet werden, der die Subskription auch angemeldet hat.
Es gibt andere Möglichkeiten, eine Subskription abzumelden; diese werden im Folgenden beschrieben:
Auch wenn eine Subskribentenanwendung eine Nachricht um Abmelden einer Subskription sendet und als Antwort über die erfolgreiche Abmeldung informiert wird, kann es trotzdem vorkommen, dass anschließend noch Veröffentlichungen in der Subskribentenwarteschlange eintreffen, wenn diese zum Zeitpunkt der Abmeldung gerade vom Broker verarbeitet wurden. Dadurch kann es vorkommen, dass in der Subskribentenwarteschlange nachträglich noch unverarbeitete Nachrichten eintreffen. Die Anwendung kann diese noch nicht verarbeiteten Nachrichten aus der Warteschlange löschen, indem sie wiederholt den 'sleep'-Befehl und den MQGET-Aufruf mit der entsprechenden Korrelations-ID sendet.
Ähnlich ist es, wenn ein Subskribent eine permanente dynamische Warteschlange verwendet und sich beim Beenden abmeldet und die Warteschlange mit der Option PurgeandDelete schließt; auch hier kann es vorkommen, dass die Warteschlange noch nicht leer ist. Das kommt daher, dass zu dem Zeitpunkt, zu dem die Warteschlange gelöscht wurde, manche Veröffentlichungen vom Broker noch nicht festgeschrieben worden waren. In diesem Fall wird vom MQCLOSE-Aufruf der Rückkehrcode Q_NOT_EMPTY zurückgegeben. Die Anwendung kann dieses Problem durch wiederholtes Senden des 'sleep'-Befehls und des MQCLOSE-Aufrufs vermeiden.