Dieses Thema enthält Hinweise für einige häufig auftretende Probleme, die beim Ausführen von Nachrichtenflüssen entstehen können.
Durch diesen Fehler wird die Nachricht an das Fehlerterminal übertragen.
BIP2211: (Ungültige Konfigurationsnachricht enthält Attributwert [Attributwert], der für Zielattribute ungültig ist [Zielattributname], Objekt [Objektname]; gültige Werte sind [gültige Werte])
Möglicherweise haben Sie das Fehlerterminal des MQInput-Knotens anstatt mit dem Ausgangsterminal mit einem nachfolgenden Knoten verbunden. Bei dem Ausgangsterminal handelt es sich um das mittlere Terminal der drei Terminals. Nachrichten, die an ein nicht verbundenes Ausgangsterminal übertragen werden, werden verworfen.
Wenn das Fehlerterminal des MQInput-Knotens beispielsweise mit einem MQOutput-Knoten verbunden wurde, werden diese Nachrichten nicht angezeigt.
Durch die Verbindung eines Knotens mit einem Fehlerterminal eines beliebigen Knotens wird angezeigt, dass der Nachrichtenfluss für die Verarbeitung aller Fehler eingerichtet wurde. Wenn Sie ein Fehlerterminal mit einem MQOutput-Knoten verbinden, ignoriert Ihr Nachrichtenfluss alle Fehler, die auftreten.
Durch diese Aktion wird von allen Knoten, die die Nachricht durchläuft, und nur von diesen Knoten, ein Benutzertraceeintrag erstellt.
Auf verteilten Systemen können Sie die Traceeinträge mithilfe des Befehls mqsireadlog abrufen, sie mit dem Befehl mqsiformatlog formatieren und die formatierten Einträge anzeigen, um den Pfad der Nachricht durch den Nachrichtenfluss zu überprüfen.
Bearbeiten und übergeben Sie für z/OS den
BIPRELG
-Job unter 'COMPONENTPDS', um die Befehle mqsireadlog und mqsiformatlog zur Verarbeitung von Traces auszuführen.
Senden Sie Ihre Nachricht erneut in den Nachrichtenfluss. Durch die Tracestufe 'Debug-level' werden weit mehr Einzelheiten darüber erzeugt, warum die Nachricht eine bestimmte Route verwendet, und somit können Sie die Ursachen für die vom Nachrichtenfluss durchgeführte Aktion bestimmen.
Vergessen Sie nicht, die Tracefunktion zu inaktivieren, wenn Sie das Problem gelöst haben, ansonsten wird die Leistung dadurch beeinträchtigt.
SQL0954C Not enough storage is available in the application heap to process the statement. (In dem Heapspeicher der Anwendung ist nicht genug Speicher vorhanden, um die Anweisung zu verarbeiten.)
Unter z/OS kann der SQL-Status von HY014 mit einem
SQL-Code von -99999 zurückgegeben werden, der anzeigt, dass der Prozess der Steuerkomponente für den Datenfluss das Verarbeitungslimit für DB2 z/OS von
254 vorbereiteten SQL-Anweisungskennungen erreicht hat.
Nach dem Erstellen der Anweisung werden diese und die Kennung zwischengespeichert, um die Anzahl der Aufrufe der SQLPrepare-Funktion zu verringern und somit die Systemleistung zu erhöhen. Wenn sich die Anweisung bereits im Zwischenspeicher befindet, wird die Anweisungskennung zurückgegeben, damit sie mit den neu verbundenen Parametern erneut ausgeführt werden kann.
Die Zeichenfolge der Anweisung wird zur Ausführung der Suchfunktion des Zwischenspeichers verwendet. Durch die Verwendung von fest codierten SQL-Zeichenfolgen, die für jede Nachricht etwas voneinander abweichen, kann die Anweisung nicht im Zwischenspeicher gefunden werden, und somit wird immer eine SQLPrepare-Funktion ausgeführt (und ein neuer ODBC-Cursor wird geöffnet). Verwenden Sie mit den PASSTHRU-Anweisungen Parametermarken, damit die gleiche vorbereitete SQL-Anweisung für jede verarbeitete Nachricht verwendet werden kann. Dabei werden die Parameter verwendet, die zur Laufzeit verbunden wurden. Diese Methode ist effizienter in Bezug auf Datenbankressourcen und schneller bei Anweisungen, die wiederholt ausgeführt werden.
Die Verwendung von Parametermarken ist jedoch nicht immer möglich, und Sie können außerdem die SQL-Anweisungszeichenfolgen zur Laufzeit dynamisch erstellen. Somit können theoretisch sehr viele eindeutige SQL-Anweisungen zwischengespeichert werden. Der Cache selbst vergrößert sich dabei nicht so sehr, da diese Anweisungen an sich im Allgemeinen nicht groß sind, aber viele kleine Hauptspeicherzuordnungen können zur Fragmentierung des Speichers führen.
Unter Zieladresse in der Baumstruktur für die lokale Umgebung mit Daten füllen sind einige Beispielprozeduren bereitgestellt, die bei der Konfiguration von Ziellisten hilfreich sein können. Sie können diese Prozeduren unverändert übernehmen oder sie Ihren eigenen Anforderungen entsprechend ändern.
Falls die Probleme weiterhin auftreten, bereinigen Sie die Datei wsplugin6.conf, starten den Broker erneut und setzen die Nachrichtenflüsse erneut ein.
BIP5347 wird normalerweise während Schritt 1 ausgegeben. Dieses kann als nicht unterbrechungsfrei erscheinen; wenn Sie die Ausführungsgruppe erneut starten, wird die Nachricht manchmal ordnungsgemäß verarbeitet.
BIP5347 tritt normalerweise auf AIX auf; dort wird es durch die standardmäßige Einschränkung von zehn gemeinsam genutzten Speicherverbindungen für DB2 ausgelöst.
BIP5347 kann auch von der Anwesenheit einer Einschränkung für einen Wert für Datum und Uhrzeit in der Nachrichtengruppe verursacht werden, die jedes Mal den Fehler auslöst, wenn die Nachrichtengruppe implementiert wird.
SQL1224N A database agent could not be started to service a request, or was terminated as a result of a database system shutdown or a force command (Ein Datenbankagent konnte nicht gestartet oder infolge eines Datenbankbeendigungs- oder Force-Befehls nicht beendet werden).Die Lösung zu diesem Problem erhalten Sie unter Beim Herstellen einer Verbindung mit DB2 wird die DB2-Fehlernachricht SQL1224N ausgegeben.
Unable to parse datetime internally (Wert für Datum und Uhrzeit konnte nicht intern analysiert werden), 9, 2001-12-17T09:30:47.0Z, yyyy-MM-dd’T’HH:mm:ss.SZZZDieser Fehler tritt auf, da das fragliche MRM-Element einen bestimmten Wert aufweist, der nicht mit der Formatierzeichenfolge für Datum und Uhrzeit kompatibel ist; aus diesem Grund wird das Wörterbuch abgelehnt. Um dieses Problem zu beheben, stellen Sie sicher, dass der Wert für Datum und Uhrzeit mit der Formatierzeichenfolge für Datum und Uhrzeit kompatibel ist.
BIP2130: Fehler bei der Umsetzung einer Zeichenfolge in oder aus Codepage [Codepagewert].
Dabei ist [Codepagewert] entweder -1 oder -2. Sie haben in Ihrer Baumstruktur weder -1 oder -2 als Codepage angegeben. Anstatt dessen haben Sie die WebSphere MQ-Konstante MQCCSI_EMBEDDED oder MQCCSI_INHERIT verwendet.SET OutputRoot.MQRFH2.(MQRFH2.Field)CodedCharSetId = MQCCSI_INHERIT;durch
SET OutputRoot.MQRFH2.(MQRFH2.Field)CodedCharSetId = InputRoot.MQMD.CodedCharSetId;ersetzen. Dabei ist der MQMD-Ordner der Header, der vor dem MQRFH2-Header angegeben ist.
db2set DB2_RR_TO_RS=YES_OVERRIDE_RI
Starten Sie den DB2-Datenbankmanager erneut, um diese Änderung zu übernehmen.