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. Collected data is transferred with no impact on the user experience. No personal data is collected. For more information on 4D policy regarding personal data protection, please got to this page.
The section below explains:
- 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,
- uso de recursos específicos, como php, open datastore, depurador remoto,
- ligação cliente,
- envio da recolha de dados.
Alguns dados são também recolhidos a intervalos regulares.
| Dados | Tipo | Notas |
|---|---|---|
| buildNumber | Number | Número da versão da aplicação 4D |
| cacheMissBytes | Object | Número de bytes perdidos na cache |
| cacheMissCount | Object | Número de leituras falhadas na cache |
| cacheReadBytes | Object | Número de bytes lidos da cache |
| cacheReadCount | Object | Número de leituras na cache |
| cacheSize | Number | Tamanho da cache em bytes |
| classUsage | Object | Number of instances of certain language classes |
| compiled | Parâmetros | Verdadeiro se a aplicação for compilada |
| connectionSystems | Collection | SO do cliente sem o número de compilação (entre parêntesis) e número de clientes que o utilizam |
| CPU | Text | Nome, tipo, e velocidade do processador |
| dataFileSize | Number | Tamanho do arquivo de dados em bytes |
| dataSegment1.diskReadBytes | Object | Número de bytes lidos no ficheiro de dados |
| dataSegment1.diskReadCount | Object | Número de leituras no ficheiro de dados |
| dataSegment1.diskWriteBytes | Object | Número de bytes escritos no ficheiro de dados |
| dataSegment1.diskWriteCount | Object | Número de escritas no ficheiro de dados |
| databases.externalDatastoreOpened | Number | Número de chamadas para 'Open datastore' |
| databases.internalDatastoreOpened | Number | Número de vezes que o armazenamento de dados é aberto por um servidor externo |
| databases.remoteDebugger4DRemoteAttachments | Number | Número de anexos ao depurador remoto de um 4D remoto |
| databases.remoteDebuggerQodlyAttachments | Number | Número de anexos ao depurador remoto da Qodly |
| databases.remoteDebuggerVSCodeAttachments | Number | Número de anexos para o depurador remoto do Código VS |
| databases.restMaxLicensedSessions | Number | Número máximo de sessões REST web no servidor que usa a licença REST |
| databases.restMaxUnlicensedSessions | Number | Número máximo de outras sessões da Web REST no servidor |
| databases.webIPAddressesNumber | Number | Número de endereços IP diferentes que fizeram uma solicitação ao 4D Server |
| databases.webMaxLicensedSessions | Number | Número máximo de sessões Web não REST no servidor que usam a licença do servidor Web |
| databases.webMaxUnlicensedSessions | Number | Número máximo de outras sessões não-REST no servidor |
| databases.webScalableSessions | Parâmetros | True se as sessões escalonáveis estiverem ativadas |
| encrypted | Parâmetros | True se o arquivo de dados estiver criptografado |
| encryptedConnections | Parâmetros | True se as ligações cliente/servidor forem encriptadas |
| externalPHP | Parâmetros | True se o cliente efetuar uma chamada para PHP execute e utilizar a sua própria versão de php |
| hasDataChangeTracking | Parâmetros | True if a "__DeletedRecords" table exists |
| headless | Parâmetros | Verdadeiro se a aplicação estiver a correr em modo sem cabeça |
| id | Texto (cadeia de caracteres com hash) | Identificação única associada à base de dados (Polinômio Rolling hash do nome da base de dados) |
| indexSegment.diskReadBytes | Number | Número de bytes lidos no ficheiro de índice |
| indexSegment.diskReadCount | Number | Número de leituras no ficheiro índice |
| indexSegment.diskWriteBytes | Number | Número de bytes escritos no ficheiro de índice |
| indexSegment.diskWriteCount | Number | Número de escritas no ficheiro de índice |
| indexesSize | Number | Tamanho do índice em bytes |
| isEngined | Parâmetros | Verdadeiro se a aplicação for fundida com o Volume Desktop 4D |
| isRosetta | Parâmetros | True se 4D for emulado através do Rosetta no macOS, False caso contrário (não emulado ou no Windows). |
| LDAPLogin | Number | Number of calls to LDAP LOGIN |
| licença | Object | Nome comercial e descrição das licenças do produto |
| maximum4DClientConnections | Number | Número máximo de ligações 4D Client ao servidor |
| 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 |
| memory | Number | Volume de armazenamento de memória (em bytes) disponível na máquina |
| mobile | Collection | Informação sobre sessões móveis |
| numberOfCores | Number | Número total de núcleos |
| numberOfFields | Number | Number of fields |
| numberOfKeepRecordSyncInfo | Number | Number of tables with the "Enable Replication" option checked |
| numberOfRecordsMax | Number | Total number of records |
| numberOfTables | Number | Number of tables |
| numberOfWebServices | Number | Number of methods published as Web Services |
| ODBCLogin | Number | Number of calls to SQL LOGIN using ODBC |
| phpCall | Number | Número de chamadas para 'PHP execute' |
| projectMode | Parâmetros | Verdadeiro se a aplicação for compilada |
| qodly.webforms | Number | Número de formulários web Qodly |
| QueryBySQL | Number | Number of calls to QUERY BY SQL |
| restHits | Number | Número de acessos ao servidor REST durante a recolha de dados |
| SQLBeginEndStatement | Number | Number of uses of Begin SQL / End SQL |
| SQLLoginInternal | Number | Number of calls to SQL LOGIN using SQL_INTERNAL |
| SQLServer | Number | Number of SQL requests through the network |
| system | Text | Versão do sistema operativo e número de construção |
| uniqueID | Text | ID único do 4D Server |
| uptime | Number | Tempo decorrido (em segundos) desde que a base de dados 4D local foi aberta |
| 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 |
| version | Number | Número da versão da aplicação 4D |
| webServer | Object | "started":true se o servidor Web estiver a arrancar ou iniciado |
| webserverBytesIn | Number | Bytes recebidos pelo servidor Web durante a recolha de dados |
| webserverBytesOut | Number | Bytes enviados pelo servidor Web durante a recolha de dados |
| webserverHits | Number | Número de acessos ao servidor Web durante a recolha de dados |
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:
- en Windows:
Users\[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 arquivo é 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, passe o valor False para a chave ServerDataCollection no arquivo buildApp.4DSettings, utilizado para construir a aplicação cliente/servidor.