Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20 R7
4D Server e a linguagem 4D

4D Server e a linguagem 4D  


 

 

Com 4D Server, há três situações nas quais pode executar código 4D no computador servidor:

  • Triggers
  • Procedimentos armazenados
  • Métodos de projeto com o atributo "Executar no servidor"
  • Métodos base

Um trigger é um método associado a uma tabela. Os triggers podem evitar operações “ilegais” nos registros de seu banco de dados. Os triggers é uma ferramenta muito poderosas que permite restringir as operações em uma tabela, como também evitar perdidas acidentais de dados ou sabotagem. Por exemplo, em um sistema de faturação, pode evitar que agregar uma fatura sem especificar o nome do cliente.

Os triggers se executam na máquina na qual está o motor do banco de dados. Com 4D Server, os triggers se executam no contexto dos processos que correm no computador servidor e não no computador cliente. Mais precisamente, se executam no contexto dos processos "gêmeos" dos processos usuários que chamam a operação do banco de dados. Estes processos gêmeos compartilham o contexto da base com ls processos usuário no computador cliente (em particular, o estado das transações e o bloqueio dos registros) mas não compartilham o contexto da linguagem (variáveis, processos, conjuntos, seleções atuais). Observe no entanto que o registro atual da tabela do trigger é o mesmo em todos os contextos.

Para maior informação sobre triggers, consulte a seção Triggers do manual de Linguagem 4D.

Nota: no servidor, um trigger é executado no processo responsável da ação associada (criar, atualizar, apagar). Se a ação foi desencadeada desde um processo preemptivo no servidor (por exempo um procedimento armazenado, uma solicitação no modo de sessão escalável), o trigger será executado no mesmo processo preemptivo. Mas, se a ação foi disparada de desde um 4D remoto, então o trigger será executado no processo gêmeo, que sempre está em modo cooperativo (um processo gêmeo é compartilhado para todas as chamadas de um usuário). Ver Processos preemptivos em developer.4d.com.

 

Um procedimento armazenado 4D é um método de projeto executado em um processo separado na máquina servidor (ou em qualquer máquina cliente), no lugar da máquina cliente que lançou o método. Ver a seção Stored Procedures.

Todos os procedimentos armazenados rodando no servidor partilham a mesma sessão de usuário virtual. Esta sessão é retornada como um objeto da classe Sessão com o comando Session

Objetos Session permitem obter informação sobre a sessão e partilhar dados entre os processos, graças a propriedade .storage.

A sessão de usuário virtual está disponível a partir dos contextos abaixo:

  • métodos chamados com o comando Execute on server,
  • métodos de evento de database On Server Startup, On Server Shutdown, On Backup Startup, On Backup Shutdown e On System

Nota: toda sessão de usuário no servidor tem seu próprio objeto Session. Para saber mais, veja esta página em developer.4d.com.

Os métodos de projeto que tem o atributo "Execute on Server" também são executados no servidor. No entanto, a diferença dos procedimentos armazenados, são executados nos processos "gêmeos" do processo cliente e se beneficiam de seu contexto do banco de dados. Para maior informação, consulte a seção Executar no atributo servidor.

Quatro métodos base unicamente são executados na máquina servidor:

Cinco métodos base podem ser executados na máquina servidor ou em uma máquina cliente em função do contexto:

Três métodos base unicamente podem ser executados em uma máquina cliente:

Ver as seções correspondentes neste manual e no manual de Linguagem de 4D para maiores informações sobre os métodos base.

  • 4D Server mantém uma tabela de variáveis interprocesso. O alcance destas variáveis é o computador servidor. Para executar uma base compilada a definição da tabela das variáveis interprocessos é comum entre o servidor e todos os computadores cliente, cada máquina tem sua própria instância.
  • Como todos os processos, cada procedimento armazenado, o método base e o trigger tem sua própria tabela de variáveis processo. Essas variáveis processo podem ser criadas e usados dinamicamente durante cada fase da execução.

Com 4D Server, a visibilidade dos conjuntos e das seleções temporais dependem da origem da criação (processo servidor ou processo cliente) e o tipo destes objetos (objetos locais, processo ou interprocesso). Para maior informação, consulte a seção 4D Server, conjuntos e seleções temporais.

 
PROPRIEDADES 

Produto: 4D
Tema: 4D Server e a linguagem 4D

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Modificado: 4D v20 R5

 
PALAVRAS CHAVES 

Twin Process, twins

 
ARTICLE USAGE

Manual de 4D Server ( 4D v20 R7)