O Web server embutido 64-bits para Windows e OS X permite que aproveite totalmente o poder de computadores multi-núcleo para usar processoes Web preemptivos em suas aplicações compiladas. Pode configurar seu código relacionado com a Web, incluindos etiquetas 4D e métodos base Web, para executar simultâneamente em tantos núcleos quantos sejam possíveis.
Para saber mais sobre processos preemptivos em 4D, veja a seção Processos 4D Preemptivos.
O uso de modo preemptivo para os processos web só está disponível nos seguintes contextos:
- uso de uma versão de 64 bits de 4D
- uso de 4D Server ou 4D modo local (4D em modo remoto não admite o modo preemptivo)
- uso de um banco de dados compilado
- uso da configuração de banco de dados de processos preemptivos selecionado (ver mais adiante)
- todos os métodos de bancos de dados relacionados com a Web e os métodos de projeto são confirmados thread seguro pelo Compilador 4D.
Se algum requisito não for encontrado, o servidor web utilizará processos cooperativos.
Para ativar o modo preemptivo para o código de servidor Web de seu aplicativo, deve selecionar a opção Utilizar os processos preemptivos na página e"Web/Opciones (I)" de diálogo Propriedades de banco de dados:

Quando esta opção for selecionada, o compilador 4D avaliará automaticamente a propriedade thread seguro de cada código relacionado com a Web (ver abaixo) e devolve os erros em caso de incompatibilidade.
Todo o código 4D executado pelo servidor Web deve ser thread seguro se deseja que seus processos web são executados em modo preemptivo. Quando a opção Utilizar processos preemptivos estiver selecionada nas propriedades de banco de dados, as seguintes partes da aplicação serão avaliadas automaticamente pelo compilador 4D:
- Todos os métodos banco de dados relacionados com a Web:
- Método projeto compiler_web (qualquer seja sua propriedad "Modo de execução");
- basicamente, qualquer código processado pelo comando PROCESS 4D TAGS no contexto Web, por exemplo através de páginas .shtml.
- qualquer método de projeto com o atributo "Disponível através de etiquetas HTML 4D e URLS (4DACTION...)"
- disparadores para as tabelas com o atributo "Expor com Servico 4D Mobile"
- métodos de projeto disponiveis através de 4D Mobile (Propriedad "4D Mobile" selecionada)
Para cada um destes métodos e partes de código, o compilador comprovará se forem respeitadas as normas thread seguro, e devolverá erros em caso de problemas. Para mais informação sobre regras thread seguro, consulte o parágrafo Como escrever um código thread seguro.
A partir de 4D v16, a maioria dos comandos 4D relacionados com a Web, métodos banco de dados e URLs são thread seguro e pode ser utilizados no modo preventivo:
Todos os comandos relacionados com a Web 4D são threads seguro, ou seja:
Os métodos abaixo de banco de dados são thread seguro e podem ser utilizados em modo preemptivo:
O código executado por estes métodos também deve ser thread seguro.
As URLs abaixo de servidor web 4D são thread seguro e podem ser utilizadas em modo apropriativo:
- 4daction/ (o método de projeto chamado deve também ser thread seguro)
- 4dcgi/ (os métodos de banco chamados deve também ser thread seguro)
- 4dscript/ (obsoleto como URL, utilizado como una etiqueta)
- 4dwebtest/
- 4dblank/
- 4dstats/
- 4dhtmlstats/
- 4dcacheclear/
- rest/
- 4dimgfield/ (gerado por PROCESS 4D TAGS para petição web em campos imagem)
- 4dimg/ (gerado por PROCESS 4D TAGS para petição web em variáveis imagem)
As URLs abaixo de 4D Web Server não são thread seguro e não são suportados em modo apropriativo:
- 4dsync
- 4dsqlauth (obsoleto, utilizado para Flex 1.1)
Tanto o Explorador de execução e a janela de administração de servidor 4D mostram um ícone específico para processos web preemptivos:
Tipo de processo | Icone |
|
Método Web preemptivo |  |