Recolha de dados
Para ajudar a tornar os produtos melhores, automaticamente coletamos dados referentes a estatísticas de usuário nas aplicações 4D Server Dados completados são anônimos e dados são transferidos sem ter impacto na experiência de usuário. Dados completados são anônimos e dados são transferidos sem ter impacto na experiência de usuário.
Esta página explica:
- que informação é coletada,
- onde a informação é armazenada e quando é enviada a 4D,
- como desativar a coleção de dados automática em aplicações cliente/servidor
Informação coletada
Dados são coletados durante os eventos abaixo:
- arranque da base de dados,
- fechamento de banco de dados,
- início do servidor Web,
- execução php,
- ligação cliente,
- envio da recolha de dados.
Alguns dados são também recolhidos a intervalos regulares.
Recolhidos no arranque da base de dados
| Dados | Tipo | Notas |
|---|---|---|
| CPU | Text | Nome, tipo, e velocidade do processador |
| numberOfCores | Number | Número total de núcleos |
| memory | Number | Volume de armazenamento de memória (em bytes) disponível na máquina |
| system | Text | Versão do sistema operativo e número de construção |
| headless | Parâmetros | Verdadeiro se a aplicação estiver a correr em modo sem cabeça |
| version | Number | Número da versão da aplicação 4D |
| buildNumber | Number | Número da versão da aplicação 4D |
| licença | Object | Nome comercial e descrição das licenças do produto |
| isRosetta | Parâmetros | True se 4D for emulado através do Rosetta no macOS, False caso contrário (não emulado ou no Windows). |
| uniqueID | Text | ID único do 4D Server |
| id | Texto (cadeia de caracteres com hash) | Identificação única associada à base de dados (Polinômio Rolling hash do nome da base de dados) |
| dataFileSize | Number | Tamanho do arquivo de dados em bytes |
| indexesSize | Number | Tamanho do índice em bytes |
| cacheSize | Number | Tamanho da cache em bytes |
| usingLegacyNetworkLayer | Parâmetros | Verdadeiro se a usar a camada de rede herdada para o servidor de aplicações |
| usingQUICNetworkLayer | Parâmetros | True se a base de dados utilizar a camada de rede QUIC |
| encryptedConnections | Parâmetros | True se as ligações cliente/servidor forem encriptadas |
| encrypted | Parâmetros | True se o arquivo de dados estiver criptografado |
| compiled | Parâmetros | Verdadeiro se a aplicação for compilada |
| isEngined | Parâmetros | Verdadeiro se a aplicação for fundida com o Volume Desktop 4D |
| projectMode | Parâmetros | Verdadeiro se a aplicação for compilada |
| mobile | Collection | Informação sobre sessões móveis |
Recolhidos no arranque do servidor Web e no envio da recolha de dados
| Dados | Tipo | Notas |
|---|---|---|
| webServer | Object | "started":true se o servidor Web estiver a arrancar ou iniciado |
Recolha a intervalos regulares
| Dados | Tipo | Notas |
|---|---|---|
| maximumNumberOfWebProcesses | Number | Número máximo de processos Web simultâneos |
| maximumUsedPhysicalMemory | Number | Utilização máxima da memória física |
| maximumUsedVirtualMemory | Number | Utilização máxima da memória virtual |
Recolhido no envio da recolha de dados
| Dados | Tipo | Notas |
|---|---|---|
| uptime | Number | Tempo decorrido (em segundos) desde que a base de dados 4D local foi aberta |
| cacheReadBytes | Object | Número de bytes lidos da cache |
| cacheMissBytes | Object | Número de bytes perdidos na cache |
| cacheReadCount | Object | Número de leituras na cache |
| cacheMissCount | Object | Número de leituras falhadas na cache |
| dataSegment1.diskReadBytes | Object | Número de bytes lidos no ficheiro de dados |
| dataSegment1.diskWriteBytes | Object | Número de bytes escritos no ficheiro de dados |
| dataSegment1.diskReadCount | Object | Número de leituras no ficheiro de dados |
| dataSegment1.diskWriteCount | Object | Número de escritas no ficheiro de dados |
| indexSegment.diskReadBytes | Number | Número de bytes lidos no ficheiro de índice |
| indexSegment.diskWriteBytes | Number | Número de bytes escritos no ficheiro de índice |
| indexSegment.diskReadCount | Number | Número de leituras no ficheiro índice |
| indexSegment.diskWriteCount | Number | Número de escritas no ficheiro de índice |
Recolhidos aquando do encerramento da base de dados e do envio da recolha de dados
| Dados | Tipo | Notas |
|---|---|---|
| webserverHits | Number | Número de acessos ao servidor Web durante a recolha de dados |
| restHits | Number | Número de acessos ao servidor REST durante a recolha de dados |
| webserverBytesIn | Number | Bytes recebidos pelo servidor Web durante a recolha de dados |
| webserverBytesOut | Number | Bytes enviados pelo servidor Web durante a recolha de dados |
Recolhido sempre que PHP execute é chamado
| Dados | Tipo | Notas |
|---|---|---|
| phpCall | Number | Número de chamadas para PHP execute |
| externalPHP | Parâmetros | True se o cliente efetuar uma chamada para PHP execute e utilizar a sua própria versão de php |
Recolhido na ligação do cliente
| Dados | Tipo | Notas |
|---|---|---|
| maximum4DClientConnections | Number | Número máximo de ligações 4D Client ao servidor |
| connectionSystems | Collection | SO do cliente sem o número de compilação (entre parêntesis) e número de clientes que o utilizam |
Onde é armazenado e enviado?
Os dados coletados são escritos em um arquivo de texto (formato JSON) por banco de dados quando 4D Servidor abandona. O ficheiro é armazenado dentro da pasta 4D ativa, ou seja:
- no Windows:
Utilizadores\[userName]\AppData\Roaming\4D Server - em macOS:
/Users/[userName]/Library/ApplicationSupport/4D Server
Uma vez por semana, o ficheiro é automaticamente enviado através da rede para 4D. O arquivo é então apagado da pasta 4D activa.

Se o arquivo não pôde ser enviado por algum motivo, é, no entanto, apagado e não é exibida nenhuma mensagem de erro no lado do Servidor 4D.
O ficheiro é enviado para o seguinte endereço de servidor: https://dcollector.4d.com (ip: 195.68.52.83).
Desativar a coleção de dados em aplicações cliente/servidor geradas
Pode desactivar a recolha automática de dados em aplicações construídas cliente/servidor.
Para desativar a coleção, passar o valor False para a chave ServerDataCollection no arquivo buildApp.4DSettings, utilizado para construir a aplicação cliente/servidor.