cciUserDebugTrace

Utilize cciUserDebugTrace para gravar uma mensagem de um catálogo de mensagens (com inserções) no rastreio do usuário quando ele estiver ativo no nível de depuração.

Se o rastreio do usuário não estiver ativo no nível de depuração, uma entrada será gravada no rastreio de serviço quando este estiver ativo em qualquer nível.

Sintaxe

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

Parâmetros

returnCode
Recebe o código de retorno da função (saída).Uma entrada de ponteiro NULL indica que o nó definido pelo usuário não deseja lidar com erros. Quaisquer exceções lançadas durante a execução desta chamada serão lançadas novamente para o próximo nó de envio de dados no fluxo. Se a entrada não for NULL, a saída significa o status de êxito da chamada. Se uma exceção ocorrer durante a execução, *returnCode será definido como CCI_EXCEPTION na saída. Chame CciGetLastExceptionData para obter detalhes da exceção.
object
O endereço do objeto que deve ser associado à entrada de rastreio (entrada). Esse objeto pode ser um CciNode* ou um CciParser*. Se você especificar um CciNode*, o nome desse nó será gravado no rastreio. Se você especificar um CciParser*, o nome do nó que criou o analisador será gravado no rastreio. Esse objeto também é utilizado para determinar se a entrada deve ser escrita no rastreio. A entrada é gravada apenas se o rastreio estiver ativo para o nó. Os nós herdam suas configurações de rastreio do fluxo de mensagens.
Se este parâmetro for NULL, o nível de rastreio para o grupo de execução será retornado.
messageSource
O local e nome completos da origem da mensagem do Windows ou o catálogo de mensagens do Linux, UNIX ou z/OS.

Início da mudançaPara utilizar o catálogo de mensagens do intermediário atual, especifique BIPv600 em todos os sistemas operacionais. Alternativamente, você pode criar seu próprio catálogo de mensagens.Fim da mudança

Quando o rastreio é formatado, uma mensagem da versão NLS desse catálogo é escrita.

O código do idioma utilizado é esse do ambiente, no qual o rastreio é formatado. É possível executar o intermediário em uma plataforma, ler o log nessa plataforma e, em seguida, formatar o log em uma plataforma diferente. Por exemplo, se o intermediário estiver em execução no Linux, UNIX ou z/OS mas nenhum arquivo .cat estiver disponível, você poderá ler o log e, então, transferi-lo para o Windows onde o log pode ser formatado utilizando o arquivo .properties.

Se este parâmetro for NULL, o resultado será o mesmo que a especificação de uma cadeia vazia. Isto é, todas as outras informações serão gravadas no registro e o campo catalogue terá um valor de cadeia vazio. Portanto, o formatador de log não poderá localizar a origem da mensagem e falhará ao formatar esta entrada.

messageNumber
O número que identifica a mensagem dentro do messageSource especificado (entrada). Se o messageSource não contiver uma mensagem que corresponde a esse messageNumber, o formatador de registro falhará ao formatar essa entrada.
traceText
Uma cadeia de caracteres que termina com NULL (entrada). Essa cadeia será gravada no rastreio de serviço e fornece uma maneira fácil de correlacionar as entradas de rastreio com os caminhos através do código-fonte. Por exemplo, pode haver vários caminhos por meio do código que resultam na mesma mensagem (messageSource e messageNumber) sendo gravada no rastreio. traceText pode ser utilizado para distinguir entre esses caminhos diferentes. Isto é, a cadeia traceText é uma cadeia literal estática na origem e, portanto, a mesma cadeia está no arquivo de código-fonte e no arquivo de rastreio formatado.
...
Uma lista de argumentos variáveis em C contendo quaisquer inserções de mensagem que acompanham a mensagem (entrada). Essas inserções são tratadas como cadeias de caracteres, e os argumentos variáveis são considerados como sendo do tipo pointer to char.O último argumento nesta lista precisa ser (char*)0.
  • Para obter extensões definidas pelo usuário sendo executadas em plataformas distribuídas, os argumentos char* devem estar na página de códigos ISO-8859-1 (ibm-918).
  • Para obter extensões definidas pelo usuário sendo executadas em plataformas Z/OS, os argumentos char* devem estar em EBCIDIC (1047).
Isso inclui todos os argumentos char* em traceText e a lista de argumentos de variáveis de inserções (...).

Valores de Retorno

Nenhum. Se ocorrer um erro, o parâmetro returnCode indica o motivo do erro.

Exemplo

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);
Tarefas relacionadas
Criando Catálogos de Mensagens
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:13:12

as24510_