cciUserDebugTrace

Esta función es muy parecida a cciUserTrace con la única diferencia de que la entrada solamente se graba en el rastreo de usuario cuando éste está activo a nivel de depuración.
Nota: También se escribe una entrada en un rastreo de servicio, cuando éste está activo a cualquier nivel y el rastreo de usuario está activo a cualquier nivel.

Sintaxis

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

Parámetros

returnCode
Recibe el código de retorno de la función (salida). Una entrada de puntero NULL significa que el nodo definido por el usuario no desea tratar los errores. Las excepciones emitidas durante la ejecución de esta llamada se vuelven a emitir en el nodo ascendente siguiente del flujo. Si la entrada no es NULL, la salida indica el estado de ejecución satisfactoria de la llamada. Si se produce una excepción durante la ejecución, *returnCode se establece en CCI_EXCEPTION en la salida. Invoque CciGetLastExceptionData para obtener información detallada de la excepción.
object
Dirección del objeto que se debe asociar a la entrada del rastreo (entrada). Este objeto puede ser un CciNode* o CciParser*. Si es un CciNode*, en el rastreo se anota el nombre de ese nodo. Si es un CciParser*, en el rastreo se anota el nombre del nodo que ha creado el analizador. Este objeto también se utiliza para determinar si la entrada debe anotarse en el rastreo. La entrada sólo se anota si el rastreo está activo para el nodo. Actualmente los nodos heredan el valor de rastreo del flujo de mensajes.
Si este parámetro es NULL, se devuelve el nivel de rastreo para el grupo de ejecución.
messageSource
Serie de caracteres que identifica el origen de mensajes Windows o el catálogo de mensajes Linux y UNIX (entrada). Cuando se da formato a un rastreo, se escribe un mensaje de la versión NLS de este catálogo. El entorno local utilizado es el del entorno en el que se da formato al rastreo. Es posible ejecutar el intermediario en un tipo de plataforma, leer las anotaciones en esa plataforma y luego darles formato en una plataforma distinta. Por ejemplo, si el intermediario se está ejecutando en Linux o UNIX pero no hay ningún archivo .cat disponible, el usuario podría leer las anotaciones y luego transferirlas a Windows donde se pueden formatear utilizando el archivo .properties.
Si este parámetro es NULL, el efecto es el mismo que especificar una serie de caracteres vacía. Es decir, se anota toda la información restante y el campo de catálogo tiene un valor de serie de caracteres vacío. Si hay un valor de serie de caracteres vacío, el formateador de anotaciones no puede encontrar el origen del mensaje y, por tanto, no da formato a esta entrada.
messageNumber
El número que identifica el mensaje dentro del objeto messageSource especificado (entrada). Si el objeto messageSource no contiene un mensaje que corresponda a este messageNumber, el formateador de anotaciones no podrá formatear esta entrada.
traceText
Serie de caracteres que finaliza con un NULL (entrada). Esta serie de caracteres se anota en el rastreo de servicio y proporciona una forma fácil de correlacionar entradas de rastreo con rutas a través del código fuente. Por ejemplo, podría haber varias rutas a través del código que culminaran en que se escribiera el mismo mensaje (messageSource y messageNumber) en el rastreo. Se puede utilizar traceText para distinguir entre estas distintas rutas. Es decir, la serie de caracteres traceText es una serie de caracteres literal y estática en el origen y, por tanto, la misma serie de caracteres está tanto en el archivo del código fuente como en el archivo de rastreo formateado.
...
Lista de argumentos variables C que contiene las inserciones de mensaje que acompañan al mensaje (entrada). Estas inserciones se tratan como series de caracteres y se supone que los argumentos variables son de tipo puntero a carácter. El último argumento de esta lista debe ser (char*)0.
  • Para las extensiones definidas por el usuario que se ejecutan en plataformas distribuidas, los argumentos char* deben estar en la página de códigos ISO-8859-1 (ibm-918).
  • Para las extensiones definidas por el usuario que se ejecutan en plataformas Z/OS, los argumentos char* deben estar en EBCIDIC (1047).
Esto incluye todos los argumentos char* en traceText y la lista de argumentos variables de inserciones (...).

Valores de retorno

Ninguno. Si se produce un error, el parámetro returnCode indica la razón del mismo.

Ejemplo

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);
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as24510_