Mit cciUserDebugTrace können Sie eine Nachricht aus einem Nachrichtenkatalog (mit Einfügungen) in einen Benutzertrace schreiben, wenn dieser in der Debugstufe aktiv ist.
Ist der Benutzertrace nicht auf Debugstufe aktiv, wird ein Eintrag in den Service-Trace geschrieben, wenn dieser aktiv ist.
void cciUserDebugTrace(
int* returnCode,
CciObject* object,
const CciChar* messageSource,
int messageNumber,
const char* traceText,
...
);
Geben Sie auf allen Betriebssystemen BIPmsgs an, um den aktuellen Nachrichtenkatalog für den Broker zu verwenden. Als Alternative können Sie auch Ihren eigenen Nachrichtenkatalog erstellen.
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. Wenn der Broker beispielsweise unter Linux, UNIX oder z/OS ausgeführt wird, dort aber keine CAT-Datei vorhanden ist, können Sie das Protokoll lesen und es dann auf ein Windows-System übertragen, wo es mithilfe der Datei .properties formatiert wird.
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. Deshalb kann das Formatierungsprogramm für Protokolle die Nachrichtenquelle nicht finden und die Formatierung dieses Eintrags schlägt fehl.
Keine. Wenn ein Fehler auftritt, gibt der Parameter returnCode die Fehlerursache an.
const CciChar* myMessageSource=CciString("SwitchMSG",BIP_DEF_COMP_CCSID);
CciNode* thisNode = ((NODE_CONTEXT_ST*)context)->nodeObject;
const char* mbElementName = mbString((CciChar*)&elementName,BIP_DEF_COMP_CCSID);
const char* mbElementValue = mbString((CciChar*)&elementValue,BIP_DEF_COMP_CCSID);
const char* traceTextFormat = "Switch Element: name=%s, value=%s";
char* traceText = (char*)malloc(strlen(traceTextFormat) +
strlen(mbElementName) +
strlen(mbElementValue));
sprintf(traceText,traceTextFormat,mbElementName,mbElementValue);
cciUserDebugTrace(&rc,
(CciObject*)thisNode,
myMessageSource,
2,
traceText,
mbElementName,
mbElementValue,
(char*)0);
free((void*)mbElementName);
free((void*)mbElementValue);
free((void*)traceText);