cciUserTrace

Mit cciUserTrace kann eine Nachricht aus einem Nachrichtenkatalog (mit Einfügungen) in einen Benutzertrace geschrieben werden. Es wird auch eine Nachricht in einen Service-Trace geschrieben, falls dieser aktiv ist.

Der Text der Nachricht, der in den Benutzertrace geschrieben wird, hat folgendes Format:

<Datum-Zeitmarke> <Threadnummer> UserTrace <Nachrichtentext mit Einfügungen> <Nachrichtenerläuterung>

Syntax

void cciUserTrace(
  int*                        returnCode,
  CciObject*        object,
  const CciChar*    messageSource,
  int                 messageNumber,
  const char*       traceText,
                    ...
);

Parameter

returnCode
Empfängt den Rückkehrcode von der Funktion (Ausgabe). Ein Nullzeiger zeigt an, dass der benutzerdefinierte Knoten nicht für Fehler zuständig sein möchte. Jegliche während der Ausführung dieses Aufrufs ausgelösten Ausnahmebedingungen werden beim nächsten übergeordneten Knoten im Fluss erneut ausgelöst. Wenn die Eingabe nicht NULL ist, gibt die Ausgabe den Erfolgsstatus des Aufrufs an. Wenn während der Ausführung eine Ausnahmebedingung auftritt, wird *returnCode bei der Ausgabe auf CCI_EXCEPTION gesetzt. Einzelheiten zu der Ausnahmebedingung erhalten Sie durch Aufruf von CciGetLastExceptionData.
object
Die Adresse des Objekts, das dem Traceeintrag (Eingabe) zugeordnet werden soll. Bei dem Objekt kann es sich um die Adresse eines CciNode*- oder CciParser*-Objekts handeln. Wenn es sich um ein CciNode*-Objekt handelt, wird der Name dieses Knotens in den Trace geschrieben. Bei einem CciParser*-Objekt wird der Name des Knotens, der den Parser erstellt hat, in den Trace geschrieben. Mit diesem Objekt wird auch bestimmt, ob der Eintrag in den Trace geschrieben werden soll. Der Eintrag wird nur hineingeschrieben, wenn der Trace für den Knoten aktiv ist. Derzeit übernehmen Knoten ihre Trace-Einstellungen vom Nachrichtenfluss.
Wenn dieser Parameter NULL lautet, wird die Tracestufe für die Ausführungsgruppe zurückgegeben.
messageSource
Der vollständig qualifizierte Standort und Name der Windows-Nachrichtenquelle oder der Linux-, UNIX- oder z/OS-Nachrichtenkatalog (Eingabe).

Beginn der ÄnderungGeben Sie zur Verwendung des aktuellen Broker-Nachrichtenkataloges in allen Betriebssystemen BIPv600 an. Sie haben auch die Möglichkeit, einen eigenen Nachrichtenkatalog zu erstellen.Ende der Änderung

Beim Formatieren des Trace wird eine Nachricht aus der landessprachlichen Version dieses Katalogs geschrieben. Es gilt die länderspezifische Einstellung der Umgebung, in der der Trace formatiert wird.

Sie können den Broker auf einem Betriebssystem ausführen, das Protokoll auf diesem Betriebssystem lesen und es dann auf einem anderen Betriebssystem formatieren. Wird der Broker beispielsweise unter Linux ausgeführt und ist keine Datei mit der Erweiterung .cat verfügbar, kann das Protokoll gelesen und anschließend auf Windows übertragen werden. Dort kann das Protokoll unter Verwendung der Datei .properties formatiert werden.

Wenn dieser Parameter NULL lautet, tritt genau dasselbe ein wie beim Angeben einer leeren Zeichenfolge. D. h., alle anderen Informationen werden in das Protokoll geschrieben, und das Feld für den Katalog enthält als Wert eine leere Zeichenfolge. Daher kann das Formatierungsprogramm für Protokolle die Nachrichtenquelle nicht finden. Folglich schlägt die Formatierung dieses Eintrags fehl.
messageNumber
Die Nummer, die die Nachricht innerhalb des Parameters 'messageSource' kennzeichnet (Eingabe). Wenn der Parameter 'messageSource' keine Nachricht enthält, die dem Parameter 'messageNumber' entspricht, kann das Formatierungsprogramm für Protokolle diesen Eintrag nicht formatieren.
traceText
Eine Folge von Zeichen, die auf NULL (Eingabe) endet. Diese Zeichenfolge wird in den Service-Trace geschrieben, und so können Traceeinträge leicht mit Pfaden durch den Quellcode in Verbindung gebracht werden. Wenn z. B. mehrere Pfade durch den Code dieselbe Nachricht (messageSource und messageNumber) im Trace ergeben, können Sie zur Unterscheidung der verschiedenen Pfade traceText angeben. Bei der Zeichenfolge traceText handelt es sich somit um eine statische Literalzeichenfolge im Quellcode. Folglich erscheint dieselbe Zeichenfolge sowohl in der Quellcodedatei als auch in der formatierten Tracedatei.
...
Eine C-Variablenargumentenliste, die Nachrichteneinfügungen enthält, die der Nachricht beigefügt sind (Eingabe). Diese Einfügungen werden als Zeichenfolgen behandelt, und es wird vorausgesetzt, dass die Variablenargumente den Typ pointer to char haben.
Das letzte Argument in dieser Liste muss (char*)0 lauten.
  • Bei benutzerdefinierten Erweiterungen, die auf verteilten Plattformen ausgeführt werden, müssen die char*-Argumente in der Codepage ISO-8859-1 (ibm-918) enthalten sein.
  • Bei benutzerdefinierten Erweiterungen, die auf z/OS-Plattformen ausgeführt werden, müssen die char*-Argumente in EBCIDIC (1047) enthalten sein.
Diese Anforderungen gelten für alle char*-Argumente in traceText und die variable Argumentliste für Einfügungen (...).

Rückgabewerte

Keine. Wenn ein Fehler auftritt, gibt der Parameter returnCode die Fehlerursache an.

Beispiel

const CciChar* 		myMessageSource=CciString("SwitchMSG",BIP_DEF_COMP_CCSID);
CciNode* thisNode = ((NODE_CONTEXT_ST*)context)->nodeObject;

cciUserTrace(&rc,
             (CciObject*)thisNode,
              myMessageSource,
              1,
              "propagating to add terminal",
              "add",
              (char*)0);
 checkRC(rc);
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:30:02

as24500_