Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
portuguese
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.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.

Sintaxe

Bloco de código
collapsefalse
GetUserInfoArray(
) --> aRet aRet(array_of_record)
 [ lShowMoreInfo* ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

lShowMoreInfo*

lógico

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

 

 

Retorno

Nome

Tipo

Descrição

aRet

vetor

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

Observações

  • O parâmetro lShowMoreInfo só está disponível em builds superiores a 7.00.131227A e só deve ser utilizado 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

...

TOPConnect/TOTVSDBAccess,

...

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 Application Server, estivesse habilitado na chave DebugThreadUsedMemory, da seção [General]. Nas builds atuais, 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 TOPConnect/DBAccess 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, a função mantém o mesmo comportamento, somente retornando as informações dos processos em execução no serviço slave onde foi executada. Mas, se essa função for executada diretamente em um serviço de balanceamento, o retorno será

...

  • as informações de todos os processos em execução no balance e em todas as slaves relacionadas e on-line naquele determinado momento.

Exemplos

Bloco de código
languagecpp
themeEclipse
titleExemplo 1
linenumberstrue
collapsefalse
user function exemplo()
  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
  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
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server