Histórico da Página
| Composition Setup |
|---|
import.css=/download/attachments/6062824/tecnologia.css
|
| Pagetitle | ||||
|---|---|---|---|---|
|
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 | ||||||
|---|---|---|---|---|---|---|
|
Sintaxe
| Bloco de código | ||
|---|---|---|
| ||
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 | ||||
|---|---|---|---|---|
| ||||
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
...
, caso utilizadoInclusão de trecho DBAccess DBAccess nopanel true 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
estivesse habilitado na chave DebugThreadUsedMemory, da seçãoInclusão de trecho Application Server Application Server nopanel true
...
- 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
...
ativo, esse elemento conterá uma string em branco.Inclusão de trecho DBAccess DBAccess nopanel true - (***) 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
secundário em que foi executado.Inclusão de trecho Application Server Application Server nopanel true
Exemplos
| Bloco de código | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
user function exemplo() Local aInfo := GetUserInfoArray() // Resultado: (Informações dos processos) varinfo("Threads:",aInfo) Return | ||||||||||
| Bloco de código | ||||||||||
| ||||||||||
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