cciUserDebugTrace

Questa funzione è molto simile a cciUserTrace con l'unica differenza che la voce viene scritta nella traccia utente solo quando questa è attiva a livello di debug.
Nota: una voce viene inoltre scritta sulla traccia del servizio, quando tale traccia è attiva a qualsiasi livello e quando lo è anche la traccia utente.

Sintassi

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

Parametri

returnCode
Riceve il codice di ritorno dalla funzione (output). Un input del puntatore NULL indica che il nodo definito dall'utente non intende gestire gli errori. Eventuali eccezioni generate durante l'esecuzione di questa chiamata, vengono generate nuovamente nel nodo successivo a monte del flusso. Se l'input è diverso da NULL, l'output indica lo stato positivo della chiamata. Se durante l'esecuzione si verifica un'eccezione, *returnCode è impostato su CCI_EXCEPTION nell'output. Per informazioni dettagliate relative all'eccezione, richiamare CciGetLastExceptionData.
object
L'indirizzo dell'oggetto che deve essere associato alla voce di traccia (input). Tale oggetto può essere CciNode* o CciParser*. Se è CciNode*, il nome di tale nodo viene scritto nella traccia. Se è CciParser*, nella traccia viene scritto il nome del nodo che ha creato il programma di analisi. Questo oggetto viene utilizzato inoltre per determinare se la voce deve essere scritta nella traccia. La voce viene scritta solo se la traccia è attiva per il nodo. Attualmente i nodi ereditano le relative impostazioni di traccia dal flusso di messaggi.
Se questo parametro è NULL, viene restituito il livello di traccia per il gruppo di esecuzione.
messageSource
Una stringa che identifica l'origine di messaggi Windows o il catalogo di messaggi Linux e UNIX (input). Quando la traccia viene formatta, viene scritto un messaggio dalla versione NLS di questo catalogo. L'impostazione internazionale utilizzata è quella dell'ambiente in cui viene formattata la traccia. E' possibile eseguire il broker su un tipo di piattaforma, leggere la registrazione su tale piattaforma e quindi formattare la registrazione su una diversa piattaforma. Ad esempio, se il broker è in esecuzione su Linux o UNIX, ma non è disponibile alcun file .cat, l'utente potrebbe leggere la registrazione e quindi trasferirla su Windows dove è possibile formattare la registrazione utilizzando il file .properties.
Se questo parametro è NULL, il risultato è identico alla specifica di una stringa vuota. Ovvero, tutte le altre informazioni vengono scritte nella registrazione e il campo del catalogo ha un valore di stringa vuota. Se è presente un valore di stringa vuota, il programma di formattazione della registrazione non individua l'origine del messaggio. Di conseguenza, la formattazione di questa voce da parte del programma di formattazione della registrazione ha esito negativo.
messageNumber
Il numero che identifica il messaggio all'interno di messageSource specificato (input). Se messageSource non contiene un messaggio che corrisponde a tale messageNumber, il programma di formattazione della registrazione non riesce a formattare questa voce.
traceText
Una stringa di caratteri che termina con NULL (input). Tale stringa viene scritta nella traccia del servizio e fornisce un metodo semplice per correlare le voci di traccia con i percorsi mediante il codice di origine. Ad esempio, potrebbero esserci diversi percorsi nel codice che risultano nello stesso messaggio (messageSource e messageNumber) scritto nella traccia. E' possibile utilizzare traceText per distinguere questi diversi percorsi. Ovvero, la stringa traceText è una stringa letterale statica nell'origine e quindi la stessa stringa è sia nel file del codice di origine che nel file di traccia formattato.
...
Un elenco di argomenti di variabili in C contenente commenti di accompagnamento al messaggio (input). Tali commenti sono gestiti come stringhe di caratteri e gli argomenti di variabili si assume siano di tipo pointer to char. l'ultimo argomento di questo elenco deve essere (char*)0.
  • Relativamente alle estensioni definite dall'utente in esecuzione sulle piattaforme distribuite, gli argomenti char* devono essere nella codepage ISO-8859-1 (ibm-918).
  • Relativamente alle estensioni definite dall'utente in esecuzione sulle piattaforme Z/OS, gli argomenti char* devono essere nella codepage EBCIDIC (1047).
Questi includono tutti gli argomenti char* in traceText e l'elenco di argomenti variabili dei commenti (...).

Valori di restituzione

Nessuno. Se si verifica un errore, il parametro returnCode indica il motivo dell'errore.

Esempio

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);
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
as24510_