Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css

...

Pagetitle

...

...

TCSQLReplay
TCSQLReplay

Permite

...

habilitar

...

e

...

desabilitar

...

a

...

coleta

...

de

...

logs

...

de

...

trace

...

de

...

execuções

...

do

...

DBaccess

...

via

...

TOTVS

...

|

...

Application

...

Server

...

das

...

conexões

...

ativas

...

do

...

processo

...

atual.

...

Sintaxe

...

lRet := TCSqlReplay ( nOpc , <@cParmRet> )

 

Bloco de código
collapsefalse
TCSQLReplay( < nOption >, < @cMessage > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

...

nOption

...

Número da opção de controle

  1. Verificar existência do recurso
  2. Habilitar Trace
  3. Desabilitar trace
  4. Verificar se a coleta está ligada
  5. Coletar informações do processo atual

 

...

numérico

Opção desejada detalhada nas observações.

X


cMessage

caractere

Parametro de entrada e/ou Mensagem de retorno

X

X

Retorno

Nome

Tipo

Descrição

lRet

lógico

Retorna .T. se a stored procedure existir, caso contrário, retorna .F.

Observações

...

 

lOk
    (logico)
  • Retorna verdadeiro (.T.), se a operação solicitada foi realizada com sucesso. Caso contrário, retorna .F., e a string em cParmRet é preenchida com algum detalhe ou informação adicional sobre o motivo ou falha envontrados.

...

  • Caso estejam em uso as configurações SQLReplay no Environment do APPServer.ini, as chamadas da TCSqlReplay vão atuar sobre a coleta de dados do processo atual, podendo interferir com a coleta já em andamento. O objetivo desta função é permitir ao FrameWork AdvPL criar uma forma instrumentada de, dicamicamente de dentro de uma aplicação AdvPl, permitir instrumentar um trecho

...

  • de código para gerar informações pertinentes a um processamento, para fins de deputação ou mesmo profiler, sem que uma coleta global esteja habilitada no ambiente.

Exemplo

  • Existe praticamente um aumento de duas vezes a quantidade de I/O quando utilizamos a coleta de dados de trace do DBAccess no TOTVS | Application Server. Este overhead será mais percebido em ambientes onde o TOTVS Application Server e o DBAccess estão em equipamentos separados por uma rede física. Por estas questões, recomendamos o uso deste recurso apenas em processos onde uma rastreabilidade em maior profundidade seja realmente necessária.

Opções

  • 1 - Retorna .T. se a versão utilizada do DBAccess contempla a implementação do TCSqlReplay
  • 2 - Inicia o TCSqlReplay e se necessário é possível definir o nome do arquivo a partir do RootPath
  • 3 - Finaliza o TCSqlReplay
  • 4 - Verifica se o TCSqlReplay está ativo
  • 5 - Retorna o Buffer com o log do usuário atual.
  • 6 - Altera / Retorna o valor do Log de rotinas internas
  • 7 - Altera / Retorna o tamanho do stack AdvPL.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
User Function exemplo()
  
  Local cMessage := ""
  
  TcLink()
  
  if TCSqlReplay(1, @cMessage) == .F.
    conout("Não existe a implementação")
    Return
  endif
  
  // inicia o TCSqlReplay
  cMessage := "/sqlreplay.log"
  TCSqlReplay(2, @cMessage)
  
  // liga o log de rotinas internas
  cMessage := "1"
  TCSqlReplay(6, @cMessage)
  
  // altera o valor de call stack para 5
  cMessage := "5"
  TCSqlReplay(7, @cMessage)
  
  cMessage := ""
  if TCSqlReplay(4, @cMessage) == .T.
    conout("TCSqlReplay foi iniciado")
  endif
  
  // TODO: your code here
  
  // Finaliza o TCSqlReplay
  TCSqlReplay(3, @cMessage)
  
  TcUnlink()
  
Return

Abrangência

Esta função está disponível no Application Server - build

// VErifica se o recurso esta disponivel 
cParmRet := ''
lOk := TCSqlReplay(1,@cParmRet)
If !lOk 
MsgStop(cParmRet)
Return
Endif 
// Habilita a coleta de dados em arquivo
cParmRet := '\sqlreplay\meulog.txt'
TCSqlReplay(2,@cParmRet)
DoSomeStuff()
// desabilita a coleta 
cParmRet := ''
TCSqlReplay(3,@cParmRet)

 

...

7.00.131227A, com data de geração superior a

...

09/

...

08/2016

...

e depende de um DBAccess com build superior a 20161016.

Veja também

...