import.css=/download/attachments/6062824/tecnologia.css

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

GetUserInfoArray( [ 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

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.

Exemplos

user function exemplo()
  aInfo := GetUserInfoArray() // Resultado: (Informações dos processos)
  varinfo("Threads:",aInfo)
Return
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