Registo de chamadas ORDA no servidor

Desde seu lançamento, a popularidade de ORDA nunca para de crescer e agora é amplamente usado em seus servidores de produção. Com 4D v20, fornecemos 2 melhorias em como os pedidos ORDA são registados no lado do servidor. A primeira é uma melhoria do registo de pedidos que agora vai dar mais informação sobre chamadas ORDA. A segunda é a adição de um registro ORDA do lado do servidor semelhante ao registo ORDA do lado do cliente. Deixe-me apresentar-lhe estas novas funcionalidades.

A primeira melhoria tem impacto no registo de pedidos. O registo de pedidos é extremamente importante se quiser otimizar o seu servidor de produção. Fornece-lhe informações sobre os pedidos recebidos, o tempo necessário para os tratar e os dados enviados na rede. Também é importante considerar que a ativação dos registos tem um impacto no desempenho. O registo de pedidos é muito optimizado e, como tal, pode ser utilizado em produção sem afetar demasiado o desempenho do servidor.

Se ativar o registo de pedidos no seu servidor, verá que os pedidos ORDA são registados com um ID de pedido na casa dos 14000 (pode encontrar os IDs dos pedidos aqui). Também tem informações sobre a classe de dados ou atributo na coluna extra. Por exemplo, esta linha indica que o atributo Employee.Bloby foi modificado (a negrito o id do pedido e o conteúdo da coluna extra):


A segunda melhoria é bastante fácil de utilizar. É possível ativar os registos ORDA do lado do servidor chamando a função startRequestLog no datastore. Por exemplo:

ds.startRequestLog()

Se executar este trecho de código, todos os seus pedidos ORDA serão registados no arquivo ORDAlog.jsonl. Os registos ORDA do lado do servidor utilizam a sintaxe de linhas json, sendo cada linha uma descrição json do pedido enviado. Aqui está um exemplo de uma linha desse tipo:

{
"url": "rest/Company[4]",
"systemUserName": "nbrachfogel",
"userName": "Designer",
"machineName": "OPT9010-1168",
"taskID": 5,
"taskName": "P_1",
"startTime": "2023-05-22T14:29:00.289",
"response": {
"status": 200,
"body": {
"__entityModel": "Empresa",
"__DATACLASS": "Empresa",
"__KEY": "4",
"__TIMESTAMP": "2023-03-30T14:16:47.337Z",
"__STAMP": 1,
"ID": 4,
"Name": "Compagnie 31740",
"Turnover": 32205,
"MyEmployees": {
"__deferred": {
"uri": "/rest/Company[4]/MyEmployees?$expand=MyEmployees"
}
}
}
},
"sequenceNumber": 60,
"duration": 282
}
Pode ver informações sobre o usuário, a duração que demorou a executar o pedido e a resposta do servidor. Também tem o número de sequência, que é o mesmo número que encontrará no registo de pedidos, ligando ambos os registos (se o registo de pedidos não estiver ativado, o número de sequência é omitido no registo ORDA).

O registo ORDA do lado do servidor é muito interessante para a resolução de problemas. Fornece-lhe informações detalhadas sobre os pedidos que o servidor recebe e as suas respostas. Mas consome muitos recursos, tanto de CPU como de espaço em disco, pelo que deve ser utilizado com precaução no seu servidor de produção.

Esses 2 logs também podem ser ativados com o arquivo de configuração de log ou diretamente da aba de manutenção da janela de administração do 4D Server.

blank
O botão Start Request and Debug Logs ativará tanto o pedido quanto o log ORDA.

Esperamos que estas duas características o ajudem a resolver problemas e otimizar as suas chamadas ORDA. Se tiver comentários ou perguntas, não hesite em trazê-los para os fóruns 4D.

Nicolas Brachfogel
• Proprietário do produto e Desenvolvedor Senior -Nicolas Brachfogel entrou a 4D em 2017 como Senior Developer (4D Server e Networking). Como Product Owner para gerenciar o lançamento de Apple Silicon, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais, além de garantir que as implementações de funcionalidade cumpram com as necessidades do cliente. Diplomado pelo Instituto Superior de Informática Aplicada (INSIA), Nicolas começou sua carreira como desenvolvedor de software em 2001. Depois de vários anos codificando em Java e C++, passou a especializar-se no desenvolvimento cliente-servidor para empresas de videogames. Como desenvolvedor/arquiteto de servidores, trabalhou com sucesso nas arquiteturas de servidores de muitos jogos (Dofus Arena, Drakerz, Trivial Pursuit Go!)