Á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/6062824/tecnologia.css

Pagetitle
GetUserInfoArray
GetUserInfoArray

Retorna um array multidimensional com as informações de cada um do processos em execução no Protheus 8 Server e/ou Application Server

Inclusão de trecho
Application Server
Application Server
nopaneltrue
.

Sintaxe

Bloco de código
collapsefalse
GetUserInfoArray( [ lShowMoreInfo* ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

lShowMoreInfo*

lógicological

Se informado verdadeiro (.T.), retorna mais informações por thread (apenas 4GL/Telnet 4GL).

 

 



Retorno

Nome

Tipo

Descrição

aRet

vetorarray

Retorna um array multidimensional com os números e dados de cada uma das threads.

Observações

Nota
icontrue
titleAtenção

O parâmetro lShowMoreInfo

...

está disponível em builds superiores a 7.00.131227A e

...

deve ser utilizado apenas para threads 4GL (Logix).

  • Esta função é um espelho dos dados que aparecem no TOTVS Monitor.
  • O array retornado possui a seguinte estrutura:

    Posição

    Tipo

    Descrição

    aInfo[x][01]

    C

    Nome de usuário

    aInfo[x][02]

    C

    Nome da máquina local

    aInfo[x][03]

    N

    ID da Thread

    aInfo[x][04]

    C

    Servidor (caso esteja usando Balance; caso contrário é vazio)

    aInfo[x][05]

    C

    Nome da função que está sendo executada

    aInfo[x][06]

    C

    Ambiente(Environment) que está sendo executado

    aInfo[x][07]

    C

    Data e hora da conexão

    aInfo[x][08]

    C

    Tempo em que a thread está ativa (formato hh:mm:ss)

    aInfo[x][09]

    N

    Número de instruções

    aInfo[x][10]

    N

    Número de instruções por segundo

    aInfo[x][11]

    C

    Observações

    aInfo[x][12]

    N

    (*) Memória consumida pelo processo atual, em bytes

    aInfo[x][13]

    C

    (**) SID - ID do processo em uso no

...

  • Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
    , caso utilizado

    aInfo[x][14]

    N

    (***)Identificador de processo do ctreeserver e/ou boundserver

    aInfo[x][15]

    C

    (***)Tipo da thread (JOB, WEB, WEBEX, TELNET, SmartClient Standard, Smartclient HTML, Smartclient ActiveX, ...)

    aInfo[x][16]

    C

    (***)Informação de tempo de inatividade de cada thread

  • (*) Este elemento em builds anteriores, somente retornava caso o monitoramento de memória

...

  • do
    Inclusão de trecho
    Application Server
    Application Server
    nopaneltrue
     estivesse habilitado na chave DebugThreadUsedMemory, da seção

...

  • General

...

  • . Nas builds

...

  • a partir da 081215P, esta coluna sempre será retornada, mas caso o monitoramento de memória não esteja ativo, o valor sempre será -1 (menos um).
  • (**) Esta coluna será retornada

...

  • em builds superiores a 081215P. Caso o processo atual não tenha conexão com o

...

  • Inclusão de trecho
    DBAccess
    DBAccess
    nopaneltrue
     ativo, esse elemento conterá uma string em branco.
  • (***) Estas 3 informações só estão disponíveis em builds superiores a 7.00.131227A.
  • As informações retornadas são espelho dos processos em execução no servidor onde a função foi executada, independente do environment ou tipo de programa, inclusive Working Thread WEBEX, Webservices e Jobs.
  • No ambiente com balanceamento de carga (Load Balance), a função mantém o mesmo comportamento, somente retornando as informações dos processos em execução no serviço slave secundário onde foi executada. Mas, se essa função for executada diretamente em um no servidor Primário do serviço de balanceamento, utlizando o serviço de RPC, o retorno será as informações de todos os processos em execução no balance e em todas as slaves secundários relacionadas e on-line naquele determinado momento.
  • Caso o balanceamento seja feito via Broker, a função retornará apenas os dados do
    Inclusão de trecho
    Application Server
    Application Server
    nopaneltrue
     secundário em que foi executado.

Exemplos

Bloco de código
languagecpp
themeEclipsetitleExemplo 1
linenumberstrue
collapsefalse
user function exemplo()
  Local aInfo := GetUserInfoArray() // Resultado: (Informações dos processos)
  varinfo("Threads:",aInfo)
Return
Bloco de código
languagecpp
themeEclipse
titleExemplo 2
linenumberstrue


User Function exemplo4gl()
  Local i
  Local aInfo := GetUserInfoArray(.F.)
  conout("GetUserInfoArray com parametro .F.")
  for i := 1 to Len(aInfo)
    conout("ThreadID:" + cvaltochar(aInfo[i][3]) + " Program:" + aInfo[i][5] + " Obs:" + aInfo[i][11])
  next
  //Resultado:
  //[Thread  4920] GetUserInfoArray com parametro .F.
  //[Thread  4920] ThreadID:4920 Program:U_GINFARR Obs:
  //[Thread  4920] ThreadID:6392 Program:MAN0110.4GL Obs:
  //[Thread  4920] ThreadID:6428 Program:MEN1100 Obs:
  
  aInfo := GetUserInfoArray(.T.)
  conout("GetUserInfoArray com parametro .T.")
  for i := 1 to Len(aInfo)
    conout("ThreadID:" + cvaltochar(aInfo[i][3]) + " Program:" + aInfo[i][5] + " Obs:" + aInfo[i][11])
  next
  //Resultado:
  //[Thread  4920] GetUserInfoArray com parametro .T.
  //[Thread  4920] ThreadID:4920 Program:U_GINFARR Obs:
  //[Thread  4920] ThreadID:6392 Program:MAN0110.4GL Obs:Parent=1
  //[Thread  4920] ThreadID:6392 Program:RUN4GLPROCESS.4GL Obs:Parent=0
  //[Thread  4920] ThreadID:6428 Program:MEN1100 Obs:
Return

Abrangência

Advanced Protheus 6.09, Advanced Protheus 7.10, Microsiga Protheus 8.11, Protheus 10, TOTVS Application Server 10, ByYou Application Server