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 visit 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 |
|---|---|---|
| appServer | Object | Object containing application server information |
| appServer.hits | Number | Number of requests from internal processes |
| appServer.bytesIn | Number | Bytes received by internal processes |
| appServer.bytesOut | Number | Bytes sent by internal processes |
| appServer.executionTime | Number | CPU execution time for internal processes |
| 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 |
| classUsage | Object | Number of instances of certain language classes |
| connectionSystems | Collection | SO do cliente sem o número de compilação (entre parêntesis) e número de clientes que o utilizam |
| databases[].cacheSize | Number | Tamanho da cache em bytes |
| databases[].externalDatastoreOpened | Number | Número de chamadas para 'Open datastore' |
| databases[].id | Number | Database ID |
| databases[].internalDatastoreOpened | Number | Número de vezes que o armazenamento de dados é aberto por um servidor externo |
| databases[].maxConcurrent4DClients | Number | Maximum number of simultaneous 4D Client sessions (using a 4D Client license) over the collection interval |
| databases[].maxConcurrentRestSessions | Number | Maximum number of simultaneous REST sessions over the collection interval |
| databases[].maxConcurrentWebSessions | Number | Maximum number of simultaneous Web sessions (4DACTION and SOAP) over the collection interval |
| databases[].maximum4DClientConnections | Number | Número máximo de ligações 4D Client ao servidor |
| databases[].numberOfDistinctClients | Number | Distinct count of client persistent UUID seen over collection interval |
| databases[].numberOfFields | Number | Number of fields |
| databases[].numberOfKeepRecordSyncInfo | Number | Number of tables with the "Enable Replication" option checked |
| databases[].numberOfRecordsMax | Number | Total number of records |
| databases[].numberOfTables | Number | Number of tables |
| databases[].qodly.webforms | Number | Número de formulários web Qodly |
| 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[].structureHash | Text | |
| databases[].uniqueID | Texto (cadeia de caracteres com hash) | Identificação única associada à base de dados (Polinômio Rolling hash do nome da base de dados) |
| databases[].uptime | Number | Time elapsed (in seconds) between two collection events |
| databases[].uuid | Text | Database UUID |
| databases[].webIPAddressesNumber | Number | Número de endereços IP diferentes que fizeram uma solicitação ao 4D Server |
| databases[].webMaxScalableSessions | Number | Maximum number of scalable sessions on the server |
| databases[].webScalableSessions | Parâmetros | True se as sessões escalonáveis estiverem ativadas |
| 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 |
| dataSize | Number | Tamanho do arquivo de dados em bytes |
| dbServer | Object | Object containing DB4D server information |
| dbServer.hits | Number | Number of requests from internal processes |
| dbServer.bytesIn | Number | Bytes received by internal processes |
| dbServer.bytesOut | Number | Bytes sent by internal processes |
| dbServer.executionTime | Number | CPU execution time for internal processes |
| 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 |
| general.buildNumber | Number | Número da versão da aplicação 4D |
| general.headless | Parâmetros | Verdadeiro se a aplicação estiver a correr em modo sem cabeça |
| general.isRosetta | Parâmetros | True se 4D for emulado através do Rosetta no macOS, False caso contrário (não emulado ou no Windows). |
| general.license | Object | Nome comercial e descrição das licenças do produto |
| general.uniqueID | Text | ID único do 4D Server |
| general.version | Text | Número da versão da aplicação 4D |
| hasDataChangeTracking | Parâmetros | True if a "__DeletedRecords" table exists |
| 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 |
| indexSize | Number | Tamanho do índice em bytes |
| isCompiled | Parâmetros | Verdadeiro se a aplicação for compilada |
| isEncrypted | Parâmetros | True se o arquivo de dados estiver criptografado |
| isEngined | Parâmetros | Verdadeiro se a aplicação for fundida com o Volume Desktop 4D |
| isProjectMode | Parâmetros | Verdadeiro se a aplicação for compilada |
| LDAPLogin | Number | Number of calls to LDAP LOGIN |
| license.sffPrimaryKey | Number | Server master product number |
| machine.CPU | Text | Nome, tipo, e velocidade do processador |
| machine.memory | Number | Volume de armazenamento de memória (em bytes) disponível na máquina |
| machine.numberOfCores | Number | Número total de núcleos |
| machine.system | Text | Versão do sistema operativo e número de construção |
| 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 |
| mobile | Collection | Informação sobre sessões móveis |
| 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' |
| QueryBySQL | Number | Number of calls to QUERY BY SQL |
| restServer | Object | Object containing REST server information |
| restServer.bytesIn | Number | Bytes received by the REST server |
| restServer.bytesOut | Number | Bytes sent by the REST server |
| restServer.hits | Number | Number of hits on the REST server |
| restServer.executionTime | Number | CPU execution time for the REST WEB server |
| soapServer | Object | Object containing SOAP server information |
| soapServer.bytesIn | Number | Bytes received by the SOAP server |
| soapServer.bytesOut | Number | Bytes sent by the SOAP server |
| soapServer.hits | Number | Number of hits on the SOAP server |
| soapServer.executionTime | Number | CPU execution time for the SOAP server |
| SQLBeginEndStatement | Number | Number of uses of Begin SQL / End SQL |
| SQLLoginInternal | Number | Number of calls to SQL LOGIN using SQL_INTERNAL |
| sqlServer | Object | Object containing SQL server information |
| sqlServer.hits | Number | Number of SQL queries executed |
| sqlServer.bytesIn | Number | Bytes received by the SQL engine |
| sqlServer.bytesOut | Number | Bytes sent by the SQL engine |
| sqlServer.executionTime | Number | CPU execution time for SQL queries |
| usingQUICNetworkLayer | Parâmetros | True se a base de dados utilizar a camada de rede QUIC |
| totalExecutionTime | Number | Total CPU execution time: sum of all request types |
| totalRequests | Number | Total requests: sum of web, REST, SOAP, SQL, and internal traffic |
| webServer | Object | Object containing Web server information |
| webServer.bytesIn | Number | Bytes received by the Web server |
| webServer.bytesOut | Number | Bytes sent by the Web server |
| webServer.hits | Number | Number of hits on the Web server |
| webServer.executionTime | Number | CPU execution time for the Web server |
| webStaticServer | Object | Object containing the static Web server information |
| webStaticServer.bytesIn | Number | Bytes received by the static Web server |
| webStaticServer.bytesOut | Number | Bytes sent by the static Web server |
| webStaticServer.hits | Number | Number of hits on the static Web server |
| webStaticServer.executionTime | Number | CPU execution time for the static Web server |
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.