4D v16.3

GET ACTIVITY SNAPSHOT

Página Inicial

 
4D v16.3
GET ACTIVITY SNAPSHOT

GET ACTIVITY SNAPSHOT 


 

GET ACTIVITY SNAPSHOT ( arrActivities | arrUUID ; arrInicio ; arrDuracao ; arrInfo {; arrDetails}{; *} ) 
Parâmetro Tipo   Descrição
arrActivities | arrUUID  Array objeto, Array texto in Descrição completa de operações (object array) ou
UUIDs das operações (text array)
arrInicio  Array texto in Horas de início das operações
arrDuracao  Array inteiro longo in Duração das operações em segundos
arrInfo  Array texto in Descrição
arrDetails  Array objeto in Details of context and sub-operations (if any)
Operador in Se passar = Trazer atividade do servidor

O comando GET ACTIVITY SNAPSHOT retorna um array ou vários que descrevem as operações em progresso sobre os dados 4D. Estas operações usualmente mostram uma janela de progresso.

Este comando se usa para trazer uma imagem das x operações que mais consumem tempo e/ou que passam mais frequentemente, tais como escritura de cachê ou execução de fórmulas.

Nota: a informação devolvida pelo comando GET ACTIVITY SNAPSHOT é a mesma mostrada na página "Monitor em tempo real" (RTM) da janela de administração de 4D Server (veja o Manual de 4D Server).

Por padrão, GET ACTIVITY SNAPSHOT processa as operações realizadas a nível local (com 4D autônomo, 4D Server ou 4D em modo remoto). No entanto, com 4D em modo remoto, também pode obter uma instantânea das operações realizadas no servidor: só tem que passar o asterisco (*) como último parâmetro. Neste caso, o servidor de dados se recupera localmente.
O parâmetro * se ignora quando o comando se executa em 4D Server ou 4D autônomo.

O comando GET ACTIVITY SNAPSHOT aceita duas sintaxes:

  • sintaxe usando somente um array de objetos.
  • sintaxe utilizando vários arrays.

Com esta sintaxe, todas as operações se devolvem em um formulário estruturado no array de objetos 4D (arrAtividades). Cada elemento do array é um objeto construído da seguinte maneira:

[
    {
        "message":"xxx",
        "maxValue":12321,
        "currentValue":63212,
        "interruptible:0,
        "remote":0,
        "uuid":"deadbeef",
        "taskId":xxx,
        "startTime":"2014-03-20 13:37:00:123",
        "duration":92132,
        "dbContextInfo":{
            "task_id": xxx,
            "user_name": Jean,
            "host_name": HAL,
            "task_name": "CreateIndexLocal",
            "client_uid": "DE4DB33F33F"
            "user4d_id ": 1,
            "client_version ": 123456
        },
        "dbOperationDetails":{
            table: "myTable"
            field: "Field_1"
        },
        "subOperations":[
            {"message":"xxx",
            ...}
            ]
    },
    {...}
]

Esta é uma descrição de cada propriedade devolvida:

  • message (texto): etiqueta da operação
  • maxValue (número): número de interações definidas para a operação (-1 se a operação não é interativa)
  • currentValue (número): interação atual
  • interruptible (número): a operação pode ser interrompida pelo usuário (0=true, 1=false)
  • remote (número): operação por pares entre cliente e servidor (0=true, 1=false)
  • uuid (texto): identificador UUID da operação
  • taskId (número): identificador interno do processo na origem da operação
  • startTime (texto):  a hora de início da operação em formato "aaaa:mm:dd hh:mm:ss:mls"
  • duration (número): duração da operação em milisegundos
  • dbContextInfo (objeto): informação relativa as operações manipuladas pelo motor da base de dados. Contém as seguintes propriedades:
    • host_name (cadeia): nome do host que lançou a operação
    • user_name (cadeia): nome do usuário 4D cuja sessão lançou a operação
    • task_name (cadeia): nome do processo que lançou a operação
    • task_id (num): número do ID do processo que lançou a operação
    • client_uid (cadeia): opcional, uuid do cliente que lançou a operação
    • is_remote_context (booleano, 0 o 1): opcional, indica se a operação da base foi lançada por um cliente (valor 1) ou pelo servidor por meio do procedimento armazenado (valor 0)
    • user4d_id (num): número do ID do usuário 4D atual do lado do cliente
    • client_version (cadeia): quatro dígitos representam a versão do motor 4D da aplicação, como os devolveu o comando Application version.
    Nota: client_uid and is_remote_context só está disponível em modo cliente/servidor. client_uid só se devolve se a operação da base de dados se iniciou em uma equipe cliente.
  • dbOperationDetails (objeto): propriedade devolvida unicamente se a operação chama ao motor de base de dados (este é o caso, por exemplo, para pesquisa e ordenações). Este é um objeto que contém informação específica relacionada com a operação em si. As propriedades disponíveis dependem do tipo da operação de base de dados realizada. Mais especificamente, estas propriedades incluem:
    • table (cadeia): nome da tabela implicado na operação
    • field (cadeia): nome do campo implicado na operação
    • queryPlan (cadeia): plano de pesquisa definido para a operação
    • ...
  • subOperations (array): array de objetos que contém sub operações da operação atual (se existe). A estrutura de cada sub elemento é idêntica a do objeto principal. Se a operação atual não tem sub operações, então subOperations está vazio.

Com esta sintaxe, todas as operações se devolvem em vários arrays sincronizados (cada operação provoca que um elemento se adiciona a todos os arrays). Os seguintes arrays se devolvem:

  • arrUUID: contém os identificadores UUID para cada operação (corresponde a propriedade uuid do objeto arrAtividades na sintaxe anterior).
  • arrInicio: contém as horas de início de cada operação (corresponde a propriedade startTime do objeto arrAtividades ).
  • arrDuracao: contém as durações de cada operação em milissegundos (corresponde a propriedade duration do objeto arrAtividades ).
  • arrInfo: contém as etiquetas que descrevem cada operação (corresponde a propriedade message do objeto arrAtividades ).
  • arrDetalhes (opcional): cada elemento deste array é um objeto que contém as seguintes propriedades:
    • "dbContextInfo" (objeto): ver acima
    • "dbOperationDetails" (objeto): ver acima
    • "subOperacoes". O valor desta propriedade é um array objeto que contém todas as sub operações da operação atual. Se a operação atual não têm sub operações, o valor da propriedade subOperacoes é um array vazio. (corresponde a propriedade subOperacoes do objeto arrAtividades).

Exemplo  

Este método, executado em um processo separado em 4D ou 4D Server, oferece uma instantânea das operações que estão em marcha:

 ARRAY TEXT(arrUUID;0)
 ARRAY TEXT(arrStart;0)
 ARRAY LONGINT(arrDuration;0)
 ARRAY TEXT(arrInfo;0)
 
 Repeat
    GET ACTIVITY SNAPSHOT(arrUUID;arrStart;arrDuration;arrInfo)
    If(Size of array(arrUUID)>0)
       TRACE // chamada do depurador
    End if
 Until(False// Bucle infinito

Obtém arrays do tipo:

 
PROPRIEDADES 

Produto: 4D
Tema: Ferramentas
Número 1277

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v14
Modificado: 4D v14 R3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)