Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.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.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
user function exemplo() aInfo := GetUserInfoArray() // Resultado: (Informações dos processos) varinfo("Threads:",aInfo)
Return
|
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 |