WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Inhaltsbasiertes Filtern über Publish/Subscribe ermöglichen

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

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.

Die externen Hauptunterschiede bei der aktuellen Implementierung der inhaltsbasierten Filterung im Vergleich zu vorher sind folgende:
  • Inhaltsbasiertes Filtern ist nicht mehr nur auf MQRFH2-Subskribenten von WebSphere MQ beschränkt. In WebSphere Message Broker stehen Services für inhaltsbasiertes Filtern für die folgenden WebSphere MQ-Subskribenten bereit:
    • MQRFH2
    • MQSUB
    Wenn Sie anhand des Feldes NameValueData in einem MQRFH2-Header unter z/OS eine Inhaltsfilterung ausführen, können die Daten im ersten oder im zweiten MQRFH2-Header enthalten sein. Beispielsweise funktioniert der Filter
    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')
  • WebSphere MQ-Nachrichteneigenschaften werden als Teil eines Filterausdrucks unterstützt.
  • Enthält die Veröffentlichung nicht den Ordner mcd, wird XMLNSC als Nutzlast angenommen.

Im Folgenden wird beschrieben, wie inhaltsbasiertes Filtern in WebSphere Message Broker aktiviert wird.

  1. Setzen Sie die Eigenschaft cbfEnabled des Objekts ContentBasedFiltering für die Ausführungsgruppe, in der inhaltsbasiertes Filtern aktiv sein soll.
    Sie können die Eigenschaft cbfEnabled über die Befehlszeile festlegen, indem Sie Folgendes verwenden:

    Die Eigenschaft cbfEnabled muss explizit aktiviert werden, damit inhaltsbasiertes Filtern möglich ist; standardmäßig ist die inhaltsbasierte Filterung inaktiviert.

  2. Starten Sie die Ausführungsgruppe erneut, damit die Änderung übernommen wird.
    Wenn Sie das inhaltsbasierte Filtern in mehreren Ausführungsgruppen unter z/OS aktivieren, ist das inhaltsbasierte Filtern immer nur in einer Ausführungsgruppe aktiv. Nachfolgende Ausführungsgruppen, für die das inhaltsbasierte Filtern aktiviert wird, leiten die folgenden Nachrichten beim Start (für jeden Thread des inhaltsbasierten Filterns) und dann alle 30 Minuten, da sie keine Verbindung zum Warteschlangenmanager herstellen können, an das Systemprotokoll weiter:
    BIP2111E MQ04BRK jheg1 15 MESSAGE BROKER INTERNAL ERROR: DIAGNOSTIC INFORMATION (INTERNER NACHRICHTENBROKERFEHLER: DIAGNOSEINFORMATIONEN) 
     'Error occurred in Content Based Filtering Thread' (Im Thread des inhaltsbasierten Filterns ist ein Fehler aufgetreten). : ImbCbfWorker(909) 
    BIP2624E MQ04BRK jheg1 14 UNABLE TO CONNECT TO QUEUE MANAGER (ES KANN KEINE VERBINDUNG ZUM WARTESCHLANGENMANAGER HERGESTELLT WERDEN) 'MQ04': MQCC=2;
     MQRC=2002; MESSAGE FLOW NODE 'ContentBasedFiltering' (NACHRICHTENFLUSSKNOTEN 'ContentBasedFiltering'). : ImbCbfWorker(214)
    Wenn Sie die Ausführungsgruppe stoppen, die derzeit Services für inhaltsbasiertes Filtern bereitstellt, stellt eine andere Ausführungsgruppe, für die das inhaltsbasierte Filtern aktiviert ist, eine Verbindung zum Warteschlangenmanager her und stellt Services für inhaltsbasiertes Filtern bereit.

    Bei Aktivierung des inhaltsbasierten Filterns werden die Eigenschaften evaluationThreads und validationThreads standardmäßig auf '1' gesetzt.

    Mithilfe der Auswertungsthreads werden die Inhaltsfilter bei der Publizierung einer Veröffentlichung mit dieser verglichen. In einem Netz mit einer großen Anzahl an Veröffentlichungen muss die Eigenschaft evaluationThreads unter Umständen auf einen höheren Wert gesetzt werden (bis zu einem maximalen Wert von 32), damit es bei dem Verarbeitungsprozess zum Zeitpunkt der Veröffentlichung keine Probleme gibt.

    Mit Validierungsthreads wird die Syntax der Inhaltsfilter bei der Subskribierung überprüft. In einem Publish/Subscribe-Netz mit einer großen Anzahl an Subskribenten (insbesondere dynamischer Subskribenten) muss die Eigenschaft validationThreads unter Umständen auf einen höheren Wert (bis zu einem maximalen Wert von 32) gesetzt werden, damit das hohe Aufkommen an Subskriptionsanforderungen bewältigt werden kann.

    Es ist zwar möglich, diese Funktion in vielen Ausführungsgruppen zu aktivieren, Sie müssen aber sicherstellen, dass alle Nachrichtengruppen, bei denen eine veröffentlichte Nachricht (und die im Ordner mcd dieser Nachricht referenzierte Nachrichten) geparst werden muss, in allen Ausführungsgruppen implementiert werden.

    Bei Fehlern beim Parsen der Nachricht in dem Ausführungsthread gibt WebSphere MQ den Code MQRC_CONTENT_ERROR an die Anwendung zurück, die die Veröffentlichung durchführt. Der Parsing-Fehler wird auch im Ereignisprotokoll einer WebSphere Message Broker-Ausnahme aufgeführt.

    Beispiel für einen <psc>-Subskriptionsordner, bei dem ESQL und Nachrichteneigenschaften im Filter verarbeitet werden:
    <psc>
     <Command>RegSub</Command><Topic>topic</Topic>
       <Filterknoten>
       SUBSTRING(Root.XMLNSC.Name.FirstName FROM 1 FOR 1) = ‘J' and usr.flag = ‘yes'
       </Filter>
    </psc>
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:23:20


TaskthemaTaskthema | Version 8.0.0.5 | bq13460_