WebSphere MQ bietet bei der Festlegung einer Subskription die Möglichkeit der Filterdefinition; dieser gilt jedoch nur für Header-Elemente. WebSphere Message Broker kann hingegen als Inhaltsfilterprovider für WebSphere MQ fungieren; damit können Subskribenten auch erweiterte Filter für die Elemente im Hauptteil von Veröffentlichungen definieren.
Der Inhaltsfilter muss im Broker aktiviert sein, damit dieser Service WebSphere MQ-Subskribenten zur Verfügung steht.
Vor dem Start
Wenn eine Anwendung Veröffentlichungen zu einer Themenzeichenfolge ausgibt und mindestens ein Subskribent mithilfe einer Auswahlzeichenfolge eine Auswahl auf Basis des Nachrichteninhalts trifft, dann fordert WebSphere MQ, dass der Provider für erweiterte Nachrichtenauswahl diese Veröffentlichung parst (syntaktisch analysiert) und WebSphere MQ darüber informiert, welche Veröffentlichung den Auswahlkriterien entspricht, die von den einzelnen Subskribenten über einen Inhaltsfilter angegeben wurden.
Stellt der Provider für erweiterte Nachrichtenauswahl fest, dass die Veröffentlichung der Auswahlzeichenfolge des Subskribenten entspricht, wird die Nachricht an ihn weitergegeben.
Stellt der Provider für die erweiterte Nachrichtenauswahl fest, dass die Veröffentlichung nicht mit den Auswahlkriterien übereinstimmt, wird sie nicht an den Subskribenten weitergegeben. Das kann dazu führen, dass der MQPUT- oder MQPUT1-Aufruf von WebSphere MQ mit dem Ursachencode MQRC_PUBLICATION_FAILURE fehlschlägt. Kann der Provider für erweiterte Nachrichtenauswahl die Veröffentlichung nicht parsen, wird der Ursachencode MQRC_CONTENT_ERROR zurückgegeben und der MQPUT- oder MQPUT1-Aufruf schlägt fehl.
Ist der Provider für erweiterte Nachrichtenauswahl nicht verfügbar oder er kann er nicht feststellen, ob der Subskribent die Veröffentlichung erhalten soll, wird der Ursachencode MQRC_SELECTION_NOT_AVAILABLE zurückgegeben und der MQPUT- oder MQPUT1-Aufruf von WebSphere MQ schlägt fehl.
Wird eine Subskription mit einem Inhaltsfilter erstellt und ist der Provider für erweiterte Nachrichtenauswahl nicht verfügbar, schlägt der MQSUB-Aufruf von WebSphere MQ mit dem Ursachencode MQRC_SELECTION_NOT_AVAILABLE fehl. Wird eine Subskription mit einem Inhaltsfilter fortgesetzt und ist der Provider für erweiterte Nachrichtenauswahl nicht verfügbar, wird vom MQSUB-Aufruf von WebSphere MQ die Warnung MQRC_SELECTION_NOT_AVAILABLE zurückgegeben, die Subskription kann aber fortgesetzt werden.
In WebSphere Message Broker wird die in WebSphere MQ bereitgestellte Unterstützung für die Nachrichtenauswahl erweitert. Dies wird dadurch erreicht, dass in WebSphere Message Broker jetzt ESQL- statt SQL92-Anweisungen verwendet werden können und eine Filterung auf Basis des Nachrichteninhalts möglich ist. Informationen dazu, inwieweit ESQL-Anweisungen verwendet werden können, sowie Hinweise auf Einschränkungen finden Sie im Abschnitt Inhaltsbasiertes Filtern mit ESQL.
Root.MQRFH2.mcd.Msd='XML'
unter z/OS möglicherweise nicht erwartungsgemäß.
Verwenden Sie folgende Syntax, um alle MQRFH2-Header zu durchsuchen:FOR ANY Root.MQRFH2[] AS I (I.mcd.Msd='XML')
Im Folgenden wird beschrieben, wie inhaltsbasiertes Filtern in WebSphere Message Broker aktiviert wird.