123
Manual de 4D Server Introdução 4D Server em 10 minutos Uso de 4D Server Janela de administração de 4D Server Métodos banco de dados 4D Server Uso de um 4D Remoto 4D Server e a linguagem 4D Novidades - 1 -

4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Manual de 4D Server

Introdução 4D Server em 10 minutos Uso de 4D Server Janela de administração de 4D Server Métodos banco de dados 4D Server Uso de um 4D Remoto 4D Server e a linguagem 4D Novidades

- 1 -

Page 2: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Introdução

Apresentação Arquitetura de 4D Server

- 2 -

Page 3: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Apresentação

4D Server é o servidor de dados e de aplicações de multiplataforma de 4D.Com o 4D Server, você pode criar e usar banco de dados multiusuários e aplicações personalizados en arquiteturacliente/servidor. A arquitetura cliente/servidor independentemente da plataforma de 4D Server administra pedidos paraclientes 4D em Windows e Macintosh. 4D Server inclui desenvolvimento de ferramentas e segurança de dados,escalabilidade completa e conectividade para todas as opções de sistemas da empresa.

A arquitetura de 4D Server está totalmente integrada: o cliente e o servidor usam um aplicativo único 4D e osdesenvolvedores não precisam projetar aplicativos específicos para o servidor e os clientes. Além disso, o 4D Server é umservidor "zero administração", é fácil de instalar, usar, administrar e é extremamente rentável.

4D Server fecha a lacuna entre sistemas baseados no compartilhamento de arquivos para nível baixo, lento e pouco eficaz eos mais avançados sistemas de RDBMS baseado em SQL que apesar de poderosos são complexos para implantar eevoluir com o tempo. Um aplicativo 4D Server pode ser facilmente integrado aos sistemas de informação existentes nasempresas (tais como Oracle, Sybase ou qualquer servidor compatível com ODBC). 4D Server direciona as necessidadesdos grupos de trabalho em empresas de todos os tamanhos.

Arquitetura cliente/servidor integrado

Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de cliente e o aplicativode servidor são dois lados do mesmo produto, 4D. A aplicação 4D Server está dividida em duas partes: 4D Server e 4D emmodo remoto, que formam a arquitetura cliente/servidor. A parte 4D Server reside na máquina do servidor e armazena e gerencia o banco de dados no servidor e permite aosusuários manipular a base de seus próprios computadores (clientes).A aplicação 4D reside em cada máquina cliente e pode ser usada no modo local ou remoto. Em modo local, os usuáriospodem trabalhar com um banco de dados ou uma aplicação 4D armazenado localmente em sua máquina. No modo remoto,os usuários acessam à base no servidor e executam operações de banco de dados, como adição de registros, gerarrelatórios e modificar o design da base. Tudo pode ser feito com o 4D em modo local utilizando o 4D Server e 4D em modoremoto.

Não é necessário nenhum middleware ou desenvolvimentos adicionais para operar em um ambiente cliente/servidor. 4D e4D Server compartilham as mesmas ferramentas de interface, a mesma linguagem e o mesmo sistema de gerenciamentode informações.

Uma aplicação local independente facilmente se transforma em um configuração cliente/servidor para o grupo de trabalho.Da mesma forma, uma aplicação criada com 4D Server passa automaticamente a uma aplicação independente com 4D emmodo local.

Servidor de dados e de aplicações “Zero Administração”

4D Server é como 4D, centrado no usuário. 4D Server é um sistema Plug and Play (PNP) completo.

- 3 -

Page 4: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Janela de administração de 4D Server

Administração centralizada em linha, gráfica: A janela de administração de 4D Server exibe automaticamenteinformações importantes relacionadas com a atividade do aplicativo: total memória atribuída para o 4D Server, osdados em cachê, número e nome de usuários conectados, número de processos e o estado de cada um,monitoramento de backups e solicitações e atividade dos servidores.

Auto configurável e escalável: 4D Server está desenhado para integrar novos protocolos, clientes e plug-ins semque seja necessário reconfigurar ou fazer reengenharia.

Atualização automática e dinâmica das equipes clientes, controle de versões: Todas as equipes de 4Dconectadas recebem automaticamente e dinamicamente os novos elementos de uma aplicação cada que a baseevolui o que um plug-in ou componente de plug-in é adicionado, excluído ou modificado. Além de se há criado umaaplicação de cliente/servidor personalizada, é possível baixar automaticamente as novas versões das aplicações 4Dclient executável quando a aplicação 4D Server é atualizada.

Conexões automáticas assíncronas via o protocolo estandarte TCP/IP: 4D Server e 4D se comunicam demaneira transparente utilizando o protocolo TCP/IP sem importar a plataforma do cliente e do servidor. Como oprotocolo TCP/IP está integrado em todos os sistemas operativos, seu uso não requer nenhuma instalação adicional.

Gestão simultânea das sessões e dos contextos das conexões 4D, SQL e HTTP: 4D Server cria e mantémautomaticamente um ambiente de trabalho atual para cada combinação tabela/processo/usuário. Esta arquiteturabaseada nas sessões permitem a cada processo usuário manipular os dados independentemente e simultaneamente.O servidor SQL de 4D Server lida automaticamente as petições SQL internas ou externas. O servidor HTTP de 4DServer responde as petições HTTP e eventualmente as petições SOAP.

Bloqueio automático de registros: 4D Server oferece bloqueio e liberação automática dos registros, evitandoproblemas comuns associados à modificação dos registros “em uso”. O bloqueio de registros também eliminaproblemas associados com o bloqueio de páginas os arquivos que se encontram em outros sistemas.

Sistema de mensagens usuário integrada: 4D Server oferece todos os aspectos de interface usuário querespondem as necessidades dos entornos de desenvolvimento integrados modernos. Por exemplo, 4D Server podeinformar aos clientes das ações de administração que se estão levando a cabo, tais como desconexões e backups.

Métodos de inicio e de desconexão automatizados: 4D Server chama automaticamente vários métodos base querespondem a aspectos específicos: On Server Startup, On Server Shutdown, On Server Open Connection, OnServer Close Connection, e On Web Connection. Método banco de dados On Server Startup pode inicializar ecarregar automaticamente todos os objetos que se utilizarão durante o resto da sessão.

- 4 -

Page 5: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Um conjunto de funções inigualáveis

Além das funções de 4D, 4D Server oferece as seguintes características:

Gestão de dados em ambiente multiusuário: Vários usuários simultaneamente podem executar operações debanco de dados na mesma tabela ou tabelas diferentes, como adicionar, modificar, excluir, pesquisar, classificar eimprimir registros. A integridade dos dados é assegurada por um sistema de bloqueio interno de registros.

Desenvolvimento de multiusuário: Vários usuários podem desenvolver e projetar uma base ao mesmo tempo. Porexemplo, membros de uma equipe podem, simultaneamente, modificar os atributos de uma tabela, criar e modificarformas e métodos. A integridade da estrutura está protegida por um sistema interno de objetos de bloqueio.

Arquitetura independente da plataforma cliente /servidor: A arquitetura gerencia o desempenho de banco dedados de forma idêntica para os clientes Macintosh e Windows. Incluindo plataformas desenvolvimento plataformacruzada simultânea ou para operações de dados de entrada e modificação de dados para as equipes em diferentesambientes materiais.Versões 64-bit: 4D Server em Windows (desde versão 12.1) e em Mac OS (desde versão 15.1) estão disponíveis emversões 64-bit. Arquitetura 64-bit permite que suas aplicações direcionem mais RAM.

Arquitetura de plug-ins Windows e Mac OS: A versão do Windows e a versão de Mac OS de 4D Server permiteque você instale plug-ins Windows e Mac OS X ao mesmo tempo no computador servidor. Essa arquitetura simplificaa distribuição de plug-ins 4D independentemente da plataforma. Os plug-ins são tratadas com transparência por 4D e4D Server, independentemente da plataforma que executam o cliente.

Servidor HTTP integrado: Como 4D em modo local, 4D Server e cada 4D em modo remoto tem um motor HTTP quepermite publicar as bases 4D na Web. Sua base de dados pode ser publicada diretamente na Web. Não necessitadesenvolver um sistema de base de dados, um site web ou uma interface CGI entre eles. Sua base é seu site web.Também pode transformar toda equipe 4D remoto em um servidor web. Para maior informação sobre o motor webintegrado de 4D Server e 4D, consulte a seção SORT ARRAY no manual Linguagem de 4D.

Seguridade das conexões via SSL (Secured Socket Layer): Pode criptografar as conexões 4D Server. A arquiteturacliente/servidor “clássica” pode utilizar os serviços de criptografar SSL. Para maior informação, consulte a seçãoCriptografar conexões cliente-servidor.

Triggers: Um trigger é um método associado a uma tabela. É uma das propriedades da tabela. Você não chama aostriggers; eles são chamados automaticamente pelo motor da base de dados cada vez que manipula os registros databela (adicionar, excluir e modificar). Com 4D Server, os triggers se executam na equipe servidor. Todo cliente, bemseja 4D ou uma aplicação conectada via ODBC, está sujeita as regras da base de dados controladas pelos triggers.Para maior informação sobre os triggers 4D, consulte a seção ARRAY REAL no manual Linguagem de 4D.

Procedimentos armazenados: Pode criar métodos 4D que se executarão localmente em seu próprio processo naequipe servidor ou em vários equipes clientes. Utilizando a terminologia da indústria cliente/servidor estas funções sechamam “procedimentos armazenados.” No entanto, 4D Server oferece uma arquitetura que vai além do conceitoestandarte dos procedimentos armazenados. Com 4D Server, um procedimento armazenado é em realidade umprocesso servidor (ou um processo cliente, ver a continuação) que executa o código de maneira assíncrona eindependentemente de todos os outros processos executados nos equipes cliente o servidor. Em uma arquiteturacliente/servidor estandarte, um procedimento armazenado executa e devolve um resultado (de maneira síncrona ouassíncrona). Com 4D Server, pode iniciar um procedimento armazenado que se executa durante uma sessãocliente/servidor e que responde a demanda, as mensagens enviados pelos clientes. Simultaneamente, pode lançaroutro procedimento armazenado que não interage com os clientes, mas que sincronize os dados com um servidorSQL ou com outro 4D Server, utilizando um plug-in de conectividade 4D ou ODBC. Não há limite (exceto hardware ememória) para o número de procedimentos armazenados que pode executar simultaneamente. Um procedimentoarmazenado se executa em seu próprio processo e portanto, como qualquer processo usuário, pode manter seupróprio contexto de base de dados (seleção atual). Adicionalmente, a linguagem 4D oferece comandos que permitemaos processos cliente ler e escrever as variáveis processo nos procedimentos armazenados (incluindo as variáveisBLOB), permitindo uma comunicação eficaz e flexível entre os clientes e os procedimentos armazenados. Utilizandoprocedimentos armazenados, pode adicionar novos serviços personalizados a 4D Server. Para maior informaçãoconsulte a seção Stored Procedures.

Procedimentos armazenados executados em cliente: 4D Server permite, a partir de uma equipe cliente ouservidor, executar procedimentos armazenados em um ou várias equipes clientes. Portanto, pode otimizar a repartiçãode cargas de trabalho entre as equipes e o servidor, o construir aplicações utilizando as possibilidades decomunicação entre clientes. Para maior informação, consulte a seção Stored Procedures.

Rota de acesso ao servidor: A rota de acesso a uma base de dados servidor pode ser guardada com uma senha deusuário. Esta funcionalidade permite a um usuário conectar-se a uma base de dados no servidor fazendo dobre cliquesimplesmente em um documento .4DLink. Para maior informação, consulte a seção Conexão a um banco de dados4D Server.

- 5 -

Page 6: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Registro como serviço: Em Windows, 4D Server pode ser lançado como um serviço.

Sistema de backup integrado: Em Windows, 4D Server inclui um módulo completo de back-up de base de dados ede restauração. Este modulo permite fazer back up de uma base em uso, sem ter que sair da aplicação. Os back-upspodem ser lançados manual ou automaticamente, a intervalos regulares e sem intervenção do usuário. Em caso de umincidente, a restituição e/o reinício da base podem igualmente ser iniciado automaticamente.

Backup por espelho lógico: Em aplicações críticas, é possível estabelecer um sistema de backup por espelhológico, o qual permite um reinicio instantâneo se ocorre um incidente na base operacional.

Plug-ins de conectividade: Com los plug-ins de conectividade 4D tais como 4D ODBC Pro, 4D Server e 4D podemacessar diretamente as bases em mini ou grandes sistemas como ORACLE ou toda fonte de dados ODBC. Ainformação pode ser compartilhada de forma interativa entre estas bases. Além disso, 4D oferece um driver 4D ServerODBC que permite a todos clientes ODBC se conectar e trabalhar com 4D Server.

- 6 -

Page 7: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Arquitetura de 4D Server

Com sua arquitetura cliente/servidor, 4D Server não só armazena e gerencia a base, também fornece serviços aos clientes.Esses serviços funcionam através de uma rede através de um sistema de solicitações e respostas.Para pesquisar um conjunto de linhas, por exemplo, um computador cliente envia uma solicitação para o servidor. Uma vezrecebido o pedido, o servidor executa a pesquisa no local, ou seja, no computador do servidor, e quando ela termina retornao resultado (registros encontrados).A arquitetura de 4D Server se baseia no modelo cliente/servidor. Por muitos anos, prevaleceu a arquitetura cliente/servidor,tornando-se no modelo mais eficiente em bancos de dados de multiusuários.O tipo de arquitetura cliente/servidor de 4D Server é semelhante à usada no mundo dos minicomputador. No entanto, 4DServer oferece duas importantes inovações:

Uma interface intuitiva e gráfica, presente em todos os níveis da baseUma arquitetura integrada que oferece maior eficiência e velocidade

Arquitetura de compartilhamento de arquivos

Antes do aparecimento da arquitetura cliente/servidor, os sistemas multiusuários usavam como um modelo de arquitetura derede o compartilhamento de arquivos. Neste modelo, todos os usuários compartilham os mesmos dados, mas ogerenciamento de dados não é controlado por um motor de base de dados central. Cada máquina cliente deve guardar umacópia da estrutura do motor da base, enquanto o servidor é responsável pela gestão do software de compartilhamento dearquivos na rede.No modelo de compartilhamento de arquivos, cada estação de trabalho opera no local todas as ações de modificação dedados. Isso cria um tráfego significativo na rede, uma vez que cada solicitação consiste em várias comunicações através darede. O diagrama a seguir é um exemplo de tráfego de rede gerado quando um usuário procura por pessoas de sobrenome"Gómez."

Outra desvantagem do modelo do compartilhar de arquivos é a incapacidade de usar um cachê para conservar registros namemória. Se os registros são mantidos na memória, pode haver diferentes versões do mesmo registro armazenados namemória cachê, produzindo inconsistência nos dados. Portanto, cada vez que um usuário acessa um registro, deve serbaixado do servidor de arquivos. Isso produz um tráfego de rede e aumenta o tempo necessário para acessar os dados.

A arquitetura cliente / servidor heterogênea

A arquitetura cliente/servidor é amplamente utilizada no mundo dos minicomputador, para o gerenciamento de bancos dedados muito grandes, graças a sua eficiência e rapidez. Nesta arquitetura, o trabalho é dividido entre os clientes e o servidorpara aumentar o desempenho.O servidor contém o motor central da base, que armazena e gerencia os dados. O mecanismo de base é o único softwareque acessa aos dados armazenados no disco rígido. Quando um cliente envia uma solicitação ao servidor, o servidor enviao resultado. O resultado pode ser de todos os tipos desde um simples registro para alterar até uma lista ordenada deregistros.Geralmente, a maioria das arquiteturas cliente/servidor são chamadas arquiteturas heterogêneas, porque as aplicações

- 7 -

Page 8: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

frontais executadas nos computadores cliente e o motor do banco de dados executado no computador servidor são doisprodutos diferentes. Nessa situação, um driver de banco de dados é necessário para servir de tradutor entre os clientes e oservidor.Para procurar um registro, por exemplo, um cliente envia uma solicitação para o servidor. Como a base é armazenada noservidor, o servidor executa o comando localmente no computador do servidor e envia o resultado para o cliente. A imagema seguir mostra um exemplo de tráfego de rede gerado quando um usuário procura cada pessoa de apelido "Smith" emostra o primeiro registro encontrado.

Este exemplo mostra duas diferenças maiores entre o compartimento de arquivos e a arquitetura cliente/servidor:

A arquitetura cliente/servidor autoriza o uso de uma memória cachê: como o motor é o único software queacessa fisicamente aos dados, o servidor pode utilizar um cachê que conserva em memória os registros modificadosaté que escrevam no disco. Como os dados são enviados desde um lugar central, as máquinas clientes asseguram dereceber sempre a última versão de um registro. Adicional ao controle de integridade dos dados assegura, o uso de ummecanismo de cachê central acelera as operações de base de dados substituindo os acessos ao disco por acesso àmemória. Sobre o modelo de compartimento de arquivos, todos os acessos são de acesso de disco.As operações de base de dados de baixo nível se realizam no servidor: a arquitetura cliente/servidor oferece umaumento significativo na velocidade de execução, como a navegação de tabelas de índice e direções, localmente seexecutam no servidor, na velocidade da máquina. Com o compartimento de arquivos, as mesmas operações setornam lentas pelas transferências de rede e as limitações da máquina cliente.

Arquitetura cliente/servidor integrada de 4D Server

Na maiorias das arquiteturas cliente/servidor, a aplicação cliente e a aplicação de servidor são dois produtos distintos, queprecisam de uma camada de comunicação para entender uns aos outros. Com 4D Server, a arquitetura cliente/servidor étotalmente integrada. 4D Server e 4D são dois aplicativos que compartilham a mesma estrutura e se comunicamdiretamente. Como 4D Server e 4D falam a mesma língua, não é necessário traduzir as solicitações. A divisão do trabalho entre o clientee o servidor é transparente e automaticamente é gerenciada pelo 4D Server.

A divisão do trabalho está organizada de tal maneira que um pedido está associado a uma resposta. Como você pode verno diagrama anterior, o cliente é responsável de:

Pedidos: o cliente 4D envia solicitações ao 4D Server. Essas solicitações podem ser construídas com a ajuda doseditores integrados, tais como o editor de pesquisas e o editor de tipos, usando a linguagem integrada de 4D ouatravés de SQL. 4D oferece editores em que os métodos podem ser criados e alterados. Também lida com os

- 8 -

Page 9: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

elementos dos métodos tais como as variáveis e arrays.Recepção de respostas: o cliente 4D recebe as respostas de 4D Server e atualiza o usuário através da interface deusuário (os diferentes registros são exibidos em um formulário, etc.). Por exemplo, se o cliente busca todos osregistros com o sobrenome "Gomez", 4D recebe os registros de 4D Server e os mostra em um formulário.

O servidor é responsável das seguintes tarefas:

Gestão de acesso: 4D Server utiliza todas as conexões simultâneas e os processos criados pelos clientes. Estagestão aproveita a arquitetura múltiplas tarefas de 4D Server.

Objeto de estrutura e de dados: 4D Server guarda e administra todos os objetos de estrutura e de dados, incluindocampos, registros, formulários, métodos, barras de menus e listas.Cachê: 4D Server mantém uma cachê com os registros também com os objetos de dados criados pelas máquinasclientes, tais como seleções e conjuntos.Operações de base de dados de nível baixo: 4D Server realiza operações de base de dados de nível baixo, taiscomo pesquisas e ordens, que implicam o uso de tabelas de índices e direções.

Esta divisão do trabalho é extremamente eficaz graças à integração de 4D Server e 4D. A integração da arquitetura de 4DServer está presente em cada nível:

A nível da petição: quando 4D envia a 4D Server uma petição, tal como uma pesquisa ou uma ordem, 4D envia umadescrição da operação de procura ou ordenação utilizando a mesma estrutura interna que 4D Server.A nível da estrutura e dos dados: quando 4D e 4D Server trocaram uma estrutura de objeto ou de dados, ambos osaplicativos usam o mesmo formato interno. Por exemplo, quando 4D necessita de um registro, 4D Server enviadiretamente os dados em formato que estão no cachê de disco ou de memória. Da mesma forma, quando 4D desejaatualizar um registro e envia os dados a 4D Server, o qual armazenam dados diretamente na cachê tal como érecebido.A nível da interface de usuário: quando 4D mostra uma lista de registros, o formulário utilizado exibe os registrosque desempenham um papel na arquitetura cliente/servidor. Por exemplo, a seguinte imagem mostra o resultado deum pedido na tabela [Clientes].

Como o tamanho da janela só permite exibir 12 registros e 5 campos ao mesmo tempo. 4D Server envia exatamente 12registros. Em vez de enviar todos os registros, 4D Server envia apenas o número de registros de campos que podem serexibidos na janela. Se o usuário se desloca pelo formulário, 4D Server envia os registros adicionais ou campos necessários.Essa otimização reduz o tráfego de rede, garantindo que os registros e campos sejam enviados somente quandonecessário.

- 9 -

Page 10: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Server em 10 minutos

Verificação da instalação Criar um banco de dados servidor Conexão ao banco de dados servidor com um 4D remoto Definir a estrutura do banco de dados Processamento de dados com 4D Server Criar uma barra de menus personalizada Trabalhar simultaneamente com vários 4D remotos

- 10 -

Page 11: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Verificação da instalação

O capítulo de iniciação 4D Server em 10 minutos permite descobrir rapidamente 4D Server, particularmente lhe mostrarácomo:

Criar uma base servidorConectar um cliente à base servidorCriar a estrutura da base, incluindo tabelas, campos, formulários, menus e métodosConectar um segundo cliente e trabalhar simultaneamente

Para realizar estes exercícios necessitará pelo menos de dois computadores:

Um computador com 4D Server, 4D e um navegador webOutro ordenador no qual esteja instalado 4D

Antes de começar a trabalhar por primeira vez com 4D Server e 4D em modo local, é uma boa idéia verificar sua instalação.Para fazer isto, leia esta seção.

Elementos instalados

Este parágrafo especifica a localização dos elementos instalados em seu disco logo de uma instalação padrão de 4D + 4DServer.

Windows

Os elementos se instalam na pasta Program Files\4D\4D vXX e aparece no menu Inicio.

4D Server: Esta pasta contém a aplicação 4D Server como os arquivos e pastas associadas. Para lançar 4D Server,simplesmente faça duplo clique no arquivo 4DServer.exe.4D: Esta pasta contém a aplicação 4D assim como os arquivos e pastas associadas. Para lançar 4D, simplesmentefaça duplo clique no arquivo 4D.exe.

Mac OS

Os elementos se instalam na pasta Aplicações:4D:4DXX e aparecem nas aplicações.

4D Server: software (pacote) de 4D Server. Para lançar 4D Server, simplesmente faça duplo clique neste pacote.4D: 4D software (pacote) de 4D. Para lançar 4D, faça duplo clique neste pacote.

Para este exercício em particular, deve instalar 4D em um computador adicional.

Para onde ir agora?

Observe que o protocolo TCP/IP deve ser configurado corretamente para que suas máquinas possam se comunicar pelarede. Se 4D Server e 4D estão instalados corretamente, continue com a seção Criar um banco de dados servidor. Casocontrário, se falta qualquer um dos arquivos listados acima, consulte a Guia de instalação e siga para a instalação dosarquivos.

- 11 -

Page 12: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Criar um banco de dados servidor

Esta seção descreve a criação de um servidor de banco de dados que pode ser acessado pela rede, usando 4D em modoremoto. Antes de trabalhar com 4D Server e 4D pela primeira vez, é uma boa ideia para verificar a instalação. Para fazerisso, leia a seção Verificação da instalação. Nota: Neste exemplo, nós assumimos que você ativou sua licença de 4D Server, conforme descrito no Guia de instalação. Autilização de 4D no modo remoto não requer uma licença no computador cliente. As licenças são geradas na máquina 4DServer. Para obter mais informações, consulte a Guia de instalação.Para criar ou abrir uma base servidor, lance 4D Server.1. Lance 4D Server fazendo duplo clique no ícone do programa.

Quando é lançado por primeira vez a aplicação, mostra a caixa de diálogo de ativação da aplicação. Posteriormente, semostrará uma janela vazia ao início. Este funcionamento pode ser configurado utilizando as Preferências da aplicação.Neste exercício, criaremos uma nova base vazia.2. Selecione o comando Nova base de dados... no menu Arquivo de 4D Server.

Aparece uma caixa de diálogo estandarte de guardar arquivo, a qual lhe permite definir o nome e o lugar da base a criar.3. Defina uma localização, logo ingresse o nome de sua base.Digite Empregados, logo faça clique em Guardar.4D Server cria automaticamente os arquivos e pastas necessárias para a operação da base, logo aparece a janela deadministração:

- 12 -

Page 13: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

A Janela de administração de 4D Server é composta por várias páginas, acessíveis através de guias. A página Monitorexibe informações dinâmicas relativa a operação do banco de dados e também informações sobre o sistema e a aplicação4D Server.Entre outras páginas, note que as páginas Usuários e Processos indicam respectivamente o número de usuáriosconectados a base e o número de processos em execução atualmente. Observe que, neste momento, o número de usuáriosconectados é zero. Isso significa que atualmente nenhum cliente está conectado a base. O número de processos que estásendo implementado é doze. Estes doze processos são criados automáticos pelo motor de base e servidores integrados de4D Server (servidor de aplicação, servidor HTTP, servidor SQL).

Para onde ir agora?

Neste ponto, a base está disponível para as conexões distantes 4D Windows e/o Macintosh. No entanto, a base não estápronta para as conexões HTTP, porque estas conexões não estão autorizadas por padrão.Consulte a seção Conexão ao banco de dados servidor com um 4D remoto . Neste tutorial, primeiro se conectaráutilizando um 4D remoto, definirá a estrutura da base e adicionará alguns registros à base.

- 13 -

Page 14: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Conexão ao banco de dados servidor com um 4D remoto

Esta seção trata os seguintes temas:

Como conectar um 4D remoto à base servidor que você criou.Como criar a estrutura da base. Esta seção inclui um tutorial no qual você cria tabelas e campos na base, introduznovos registros e modifica registros existentes.Como conectar um segundo usuário.Como trabalhar simultaneamente com os dois clientes remotos.

Conexão a base de dados

Ainda que criou a base com 4D Server (ver a seção Criar um banco de dados servidor), todas as modificações nodesenho e os dados da base se realizam desde computadores clientes. Nesta seção, aprenderá como se conectar aoservidor e abrir a base servidor.1. Duplo clique no ícone da aplicação 4D remota.

Nota: Para este tutorial, pode utilizar uma aplicação 4D instalada na mesma máquina que 4D Server.Se este é o primeiro lançamento da aplicação 4D ou se não há modificado os parâmetros de inicio, aparece a caixa dediálogo de boas vindas:

2. Faça clique em "Conectar-se a 4D Server".Ou:Se não aparece esta caixa de diálogo, escolha o comando Abrir>Base de dados remota... no menu Arquivo de 4D:

- 14 -

Page 15: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

É mostrada a caixa de diálogo de conexão, por padrão mostra os servidores utilizados recentemente (a lista está vazia aprimeira vez que é usada:

3. Faça clique na guia TCP/IP para mostrar a lista de bases 4D publicadas na rede.A base Empregados deve aparecer na lista:

- 15 -

Page 16: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4. Selecione Empregados e faça clique em Aceitar.A base se abrirá no computador remoto, em modo Desenho, preparado para criar a estrutura de sua base.

Recomendações

Caso não veja o nome da base que acaba de criar com 4D Server, revise os seguintes pontos:

4D Server se está executando em outro computador?Se utiliza um segundo computador, as duas máquinas estão conectadas a rede?O protocolo TCP/IP está configurado corretamente em ambas máquinas?Se não está seguro sobre o uso da caixa de diálogo de conexão, consulte a seção Conexão a um banco de dados4D Server.

Atividade do Servidor

Quando você olhar a janela de administração de 4D Server, você pode perceber que seu nome de usuário é exibida napágina correspondente, e que o número de usuários conectados é um (1).

- 16 -

Page 17: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Agora há um total de dezesseis processos em execução:

Nota: por padrão, como na imagem acima, os processos são agrupados para melhor legibilidade. Desmarque a opçãoMostrar os processos por grupos para exibir todos os processos.Os primeiros doze processos são necessários para o funcionamento do servidor e foram criados durante o lançamento de4D Server. Os quatro novos processos (agrupados em duas linhas) são da conexão do primeiro usuário ao servidor:

- 17 -

Page 18: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

o processo principal administra a exibição dos registros e o modo de Aplicação.o processo design administra o modo Desenho.

Cada usuário adicional adicionará, pelo menos, quatro processos para a lista de processos.Você pode filtrar a lista de processos exibidos usando os botões Processos usuários, Processos 4D e a área de filtrolocalizada na parte superior direita da janela de administração.

Para onde ir agora?

Agora que está conectado, pode trabalhar com a base com as mesmas funcionalidades que utiliza 4D em modo local.Primeiro, deve definir a estrutura. Consulte a seção Definir a estrutura do banco de dados.

- 18 -

Page 19: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Definir a estrutura do banco de dados

No computador 4D remoto, logo de conecta-se a base servidor (ver a seção Conexão ao banco de dados servidor comum 4D remoto ), escolha o comando Database Structure no menu Design.Aparece a janela de estrutura, vazia por padrão. Vamos criar uma simples tabela.

Criar a tabela [Empregados]

1. Escolha Nova>Tabela no menu Arquivo ou na barra de ferramentas de 4D.OuFaça clique direito na janela de estrutura e escolha Adicionar tabela no menu contextual.OuFaça clique no botão adicionar da janela de estrutura (em forma de +) e escolha Tabela.É criada a tabela.2. Faça clique na área de título e de nome a tabela Empregados.

3. Faça duplo clique na área de campos para criar um novo campo.

4. Renome o campo Sobrenome e conserve o tipo Alfa (255). Pode fazer duplo clique no campo para mostrar a paleta do Inspetor.5. Adicione da mesma forma os campos seguintes na tabela [Empregados]:

Nome do campo Tipo de campoNome Alfa (255 caracteres)Salário RealDepartamento Alfa (255 caracteres)

Nota: Se outras aplicações 4D remotas trabalham simultaneamente com a mesma base, os campos que acabou de criaraparecerão no computador cliente dentro de alguns instantes. As alterações são implementadas no servidor em tempo real,mas não aparecem em outras telas imediatamente, para evitar a atualização da tela com frequência.

Criar formulários para a tabela [Empregados]

- 19 -

Page 20: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Uma vez definido o conteúdo da tabela [Empregados], deve criar os formulários para poder adicionar e trabalhar com seusregistros. Para fazer, pode utilizar o Assistente de criação de formulários e criar os formulários a sua conveniência. Noentanto, 4D oferece um recurso prático para criar rapidamente formulários de entrada e saída por padrão.1. Faça clique no botão Tabelas da barra de ferramentas de 4D.

OuEscolha o comando Mostrar a tabela atual no menu Registros.É mostrada a janela de registros. 4D detecta que a tabela não dispõe de nenhum formulário e lhe pergunta se deseja que oprograma crie por você.

2. Faça clique em Sim.Agora tem um formulário de entrada para adicionar ou mostrar registros um por um e um formulário de saída para mostrar ointroduzir múltiplos registros em modo listado.

Para onde ir agora?

Sua base servidor está lista para a manipulação de dados. Vá para a seção Processamento de dados com 4D Server.

- 20 -

Page 21: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Processamento de dados com 4D Server

Na seção Definir a estrutura do banco de dados, você criou a tabela [Empregados] e permitiu 4D criar os formulários porpadrão para esta tabela. Agora está pronto para introduzir registros.

Introduzir os registros

No modo Desenho, 4D lhe oferece por padrão as ferramentas e editores para a entrada, pesquisa, impressão oumodificação de registros. Portanto, pode definir suas próprias ferramentas para o modo Aplicação.1. Escolha Novo registro no menu Registros.Aparece o formulário de entrada vazio.2. Indique seu primeiro registro.Use a tecla Tab ou o mouse para navegar entre os campos.

3. Faça clique no botão de validação do formulário para validar sua entrada.Aparece um formulário de entrada vazio, que lhe permite continuar adicionando novos registros.4. Indique cinco registros mais, com os seguintes valores.

Sobrenome Nome Salário DepartamentoSilva Miguel 39500 EngenhariaDa Silva João 32500 ProduçãoPedrosa Maria 43000 EngenhariaSales Manuel 34250 ProduçãoLuís Gabriel 35000 Produção

Depois de ter introduzido o último registro, clique no ícone de cancelamento (que contém uma cruz sobre o ícone devalidação) para cancelar o novo formulário de entrada vazia. Aparece o formulário de saída.5. Se não são mostrados todos os seis registros, escolha Mostrar todos no menu Registros e redimensione ajanela ou as colunas caso seja necessário.Deve ter:

- 21 -

Page 22: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Agora os registros são guardados no banco de dados na máquina servidor. Se um segundo 4D remoto está conectado aoequipo servidor, poderia mostrar os registros que acaba de agregar. Caso contrário, se os outros clientes também estavamintroduzindo registros, pode escolher Mostrar todos desde o menu Registros para mostrar todos os registros, incluindo osque foram inseridos. Os registros armazenados no servidor são acessíveis a todos os usuários.

Consultar registros

Uma vez criado os registros na tabela [Empregados], pode realizar pesquisas, classificações, impressões, etc. com osregistros. Por exemplo, procuremos os empregados do departamento de Engenharia.1. Faça clique no botão Pesquisar na barra de ferramentas.

Aparece o editor de pesquisas:

2. Conserve "[Empregados]Departamento" como critério de pesquisa e “é” na lista de comparadores, logointroduza "Engenheria":

3. Faça clique no botão Buscar.A petição é enviada ao 4D Server, depois 4D Server responde a 4D. O formulário de entrada mostra unicamente osempregados que trabalham no departamento de Engenharia.

Para mostrar todos os registros novamente, escolha Mostrar todos no menu Registros.

Para onde ir agora? - 22 -

Page 23: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Em poucos minutos, você criou uma base servidor, definindo uma tabela, adicionando registros, depois realizou umapesquisa utilizando os dados introduzidos na base.Agora é tempo de adicionar uma barra de menus personalizada para seu banco de dados. Consulte a seção Criar umabarra de menus personalizada.

- 23 -

Page 24: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Criar uma barra de menus personalizada

Nesta seção, você desenhará dois métodos e uma barra de menus personalizada. Em resumem, irá criar uma aplicação4D.

Criar os dois métodos

1. Selecione Novo > Método.. no menu Arquivo.Aparece a caixa de diálogo de criação do método.2. Insira “M_ADD_RECORDS” na caixa de diálogo Novo método, depois faça clique em Aceitar.Aparece uma janela do editor de métodos chamada “Método:M_ADD_RECORDS”.3. Insira o código do método M_ADD_RECORDS como é mostrado a continuação:

4. Crie um segundo método chamado “M_LIST_RECORDS” com o seguinte código:

Agora que os dois métodos foram criados, crie uma barra de menus personalizada e associe os métodos aos comandos demenus.

Criar uma barra de menu personalizado

1. Selecione Caixa de ferramentas > Menus no menu Desenho.O editor de barras de menus é mostrado com uma barra de menus por padrão.2. Selecione a etiqueta "Barra # 1" faça clique no botão adicionar na parte central da janela.

3. Insira “Tutorial” como título do menu e pressione Intro.4. Faça clique direito no título “Tutorial” e escolha o comando Adicionar um elemento ao menu "Tutorial":

5. Insira “Adicionar registros...” e pressione Intro.6. Faça clique direito novamente no título “Tutorial” para adicionar um segundo comando de menu ao menu"Tutorial”.7. Insira “Pesquisar...” e pressione Intro.

- 24 -

Page 25: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

A barra de menus #1 deve ser vista assim:

8. Faça clique no comando de menu “Adicionar registros...” e selecione “M_ADD_RECORDS” na caixa decombinação Nome do método.9. Faça clique no título “Pesquisar...” e selecione “M_LIST_RECORDS” na caixa de combinação Nome dométodo.A barra de menus #1 agora é vista assim:

10. Feche a janela da caixa de ferramentas.Pronto!11. Selecione testar a aplicação no menu Execução.Agora pode utilizar a aplicação com os menus que desenhou:

Por exemplo, se seleciona Pesquisar... no menu Tutorial, aparece o editor de pesquisas padrão de 4D. Pode definir suapesquisa, depois mostrar e modificar os registros encontrados.O ponto interessante, é que sem saber, você acaba de desenvolver duas aplicações!Para saber por que, consulte a seção Trabalhar simultaneamente com vários 4D remotos.

- 25 -

Page 26: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Trabalhar simultaneamente com vários 4D remotos

Se você faz os exercícios deste tutorial em Windows, pode utilizar o banco de dados servidor “como está” em Macintosh. Éfeito os exercícios deste tutorial em Macintosh, pode utilizar este banco de dados servidor “como está” em Windows.

Conexão ao banco de dados servidor com um segundo usuário

Para este tutorial, nos conectaremos ao banco de dados servidor com um 4D remoto em Windows e um 4D remoto em MacOS. Logo como seja estabelecida a conexão, poderá ver ao segundo usuário na janela de administração de 4D Server (aprimeira coluna indica o sistema operativo do computador remoto):

Em cada computador cliente, tudo que seja feito na base é reutilizado instantaneamente e de maneira transparente. Este é oambiente Desenho no computador cliente remoto em Mac OS:

Os seus seis registros e seus dois métodos estão aqui!

Trabalhar simultaneamente nos registros

1. No primeira computador remoto, em modo "Test Application", escolha Pesquisar... no menu Tutorial e procureos registros onde “Departamento é igual a Engenharia”.2. Faça o mesmo no segundo computador remoto.Em ambos computadores, obtém uma lista composta por três registros.3. Na primeira máquina, faça duplo clique no registro “Santos, José”.Você deve ser sua tela assim:

- 26 -

Page 27: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4. Faça a mesma coisa no segundo computador.4D Server tem um sistema de gestão integrado de bloqueio de dados que lhe adverte que o registro já está em uso:

No entanto, você tem acesso ao registro em somente modo leitura (você pode ver, mas não modificar).

- 27 -

Page 28: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

5. No primeiro computador, mude o nome “Miguel” e valide suas mudanças.A lista é atualizada com o novo nome.

6. No segundo computador, cancele a visualização do registro no formulário de entrada.A lista foi atualizada com o novo nome também!

- 28 -

Page 29: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Trabalhar simultaneamente com objetos de desenho

4D Server é um servidor de dados e de aplicações. Vamos ver o que isto significa.

No segundo equipo, pressione a tecla Esc., em seguida, escolha o comando Voltar ao modo Desenho no menu Modo.

Faça a mesma coisa na primeira máquina.

Na primeira máquina, escolha Explorador> Formulários no menu Desenho. Aparece a janela do Explorador. Escolha os formulários tabela e desloque a tabela Empregados:

Faça duplo clique no formulário de entrada. Aparece o editor de formulários, com o formulário de entrada:- 29 -

Page 30: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Faça a mesma coisa na segunda máquina. Como o formulário está em modo edição na outra máquina, o mecanismointegrado de bloqueio de objetos 4D Server lhe informa:

Não obstante, pode abrir o formulário na segunda máquina no modo de visualização. Pode selecionar objetos e copiar aoutros formulários, mas não pode modificar o formulário mesmo.Note o ícone de cadeado na esquina superior direita do formulário. Este ícone lhe lembra que não pode mudar o formulário.

Na primeira máquina, selecione a etiqueta "Sobrenome" a esquerda do campo [Empregados]Nome. Selecione no menuhierárquico Objeto>Cor. Se torna vermelha a cor deste objeto.

Selecione Salvar o formulário: [Empregados]Entrada no menu Arquivo.Na segunda máquina, feche e volte a abrir o formulário para que o recarregue. A mudança realizada na outra máquina agoraestá disponível nesta.

- 30 -

Page 31: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Server lhe permite desenvolver ao mesmo tempo uma base de dados com outros usuários

Fechar o servidor

Além de informações dos usuários remotos 4D durante os acessos simultâneos os mesmos registros ou objetos, 4D Serverinclui uma mensagem de aviso de encerramento interno através da rede.1. Mantendo aos dois clientes conectados, na máquina de servidor, selecione Sair no menu Arquivo (Windows) ou no menude 4D Server (Mac OS).Aparece a caixa de diálogo Fechar:

2. Faça clique em Aceitar.Quase que instantaneamente, as duas máquinas cliente são informadas que o servidor está sendo desligado. Por exemplo,se um cliente estava adicionando um registro, o usuário teria tempo suficiente para completar e validar a entrada de dados.

Esta caixa de diálogo de advertência se repete regularmente em cada máquina de cliente.Nota: alternativamente, pode fechar o servidor utilizando a opção "Aguardar que todos os usuários sejam desconectados"(enviando-lhes uma mensagem pedindo-lhes para desconectar-se logo que possível) ou forçar a desconexão imediata dosclientes por meio da opção "Desconectar todos os clientes e sair".3. Enquanto o servidor fecha, feche 4D nas duas máquinas remotas.

Conclusão

Com este tutorial, você descobriu como fácil que é utilizar 4D Server:

Criou uma base de dados desde zero.Criou uma tabela e permitiu a 4D Server criar os formulários por si.Adicionou e manipulou registros.Personalizou sua aplicação com sua própria barra de menus.Utilizou o banco de dados servidor simultaneamente em Windows e Macintosh.Fechou e reiniciou o servidor

Em conclusão, ele criou dois aplicativos personalizados (Windows e Macintosh) com um desenvolvimento único. Além disso,se você precisar usar o banco de dados em modo local, você pode abrir diretamente, com 4D.Para saber mais sobre 4D Server, leia as seções introdutórias deste manual, bem como as outras seções que descrevem ofuncionamento de 4D Server.Para obter informações completas sobre o ambiente 4D, consulte:

- 31 -

Page 32: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

O manual de Desenho para aprender acerca de desenhar e utilizar aplicações e bases de dados 4D.O manual de Linguagem para aprender acerca dos comandos da linguagem 4D. Por exemplo para aprender acercada capacidade web de 4D Server, leia a seção Introdução ao Web Server no manual de Linguagem de 4D.

- 32 -

Page 33: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Uso de 4D Server

Criar ou abrir um banco de dados 4D Server Sair de 4D Server Usando 4D Server 64 bits (Windows) Utilizar 4D Server 64 bits para OSX (pré versão) 4D Server Menus Preferências de configuração Preferências de publicação Criptografar conexões cliente-servidor Single Sign On (SSO) em Windows New 15 R5.0 Gerenciamento da pasta Resources Registrar um banco de dados como serviço Configurar um espelho lógico

- 33 -

Page 34: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Criar ou abrir um banco de dados 4D Server

Para criar um novo banco de dados ou abrir uma base existente, lance 4D Server fazendo duplo clique no ícone daaplicação.

Então pode criar um novo banco de dados ou abrir um existente no menu Arquivo de 4D Server.

Criar um banco de dados

Para criar um novo banco de dados, escolha um dos comandos do submenu Novo>:

Banco de dados: Pode ser utilizada para criar uma base de dados vazia, em outras palavras, sem tabelas,formulários ou interface predefinidos. Quando seleciona este comando, aparece uma caixa de diálogo estandarte deguardar arquivos para que possa definir o nome e a localização do banco de dados.Banco de dados de modelo: Cria um banco de dados utilizando um modelo "pronto para usar" que podepersonalizar posteriormente. Para poder utilizar esta função, as bases modelos devem estar localizadas em uma pasta"4D Templates" ou "4D Modèles" ao mesmo nível que o arquivo 4D Server.exe (Windows) ou o pacote 4D Server (MacOS). Quando se seleciona este comando, aparece a caixa de diálogo de seleção de modelos do banco de dados.Banco de dados de definição de estrutura: Permite criar um banco de dados baseada em uma descrição deestrutura em formato XML. Esta definição pode vir de uma estrutura exportada desde 4D ou toda aplicação dedesenho. Quando é selecionado este comando, aparece uma caixa de diálogo padrão de abertura de arquivos, quelhe permite designar o arquivo XML a utilizar.

Para obter mais informação sobre estas opções, consulte o Manual de Desenho.

Abrir um banco de dados

Para abrir um banco de dados existente, pode usar uma caixa de diálogo padrão de abertura de documentos (comandoArquivo>Abrir...) ou selecionar diretamente um banco de dados aberto previamente (comando Arquivo>Abrir recente).Se um banco de dados já estava aberto quando seleciona um comando Abrir, primeiro será fechado. Se algum computadorcliente está conectado, se desconectam com o modo "Espere a que todos os usuários se desconectem" (ver a seção Sairde 4D Server).

Nota: Também pode abrir um banco de dados existente diretamente arrastando e soltando um arquivo de estruturainterpretado ou compilado (.4db ou .4dc) ou de um arquivo de acesso direto (.4 dlink) no ícono da aplicação 4D Server.

- 34 -

Page 35: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Sair de 4D Server

Para fechar 4D Server:

1. Selecione o comando Sair no menu Arquivo de 4D Server (Windows) ou no menu 4D Server (Mac OS).A seguinte janela é mostrada no equipo servidor:

2. Insira o número de minutos nos que deseja que o servidor seja fechado ou selecione a opção "Espere a quetodos os usuários se desconectem".Assim que você fizer isso, nenhum cliente novo pode ser conectado ao servidor.

As opções abaixo estão disponíveis:

Desconecte do Servidor em XX min.Depois do período especificado de tempo, o servidor termina e todos os usuários serão desconectados, incluindoqualquer cliente em modo sleep. A janela abaixo aparece no servidor:

Uma janela idêntica aparece em cada máquina 4D remota. Esta janela é repetida ou atualisada em cada máquinacliente a cada 20 segundos aproximadamente, de modo a forçar as máquinas a desconectar. Quando o tempo limitefor alcançado, o servidor termina mesmo que ainda haja máquinas clientes conectadas.

Esperar que todos os clientes se desconectemO servidor vai terminar apenas depois que todos os clientes, incluindo aqueles em modo sleep, tenham sedesconectado. Esta opção pode ser inapropriada para operações de manutenção durante o almoço, por exemplo, jáque é muito provável que haja clientes em modo sleep.

Esperar que todos os clientes ativos se desconectem (Ignora clientes em modo sleep)O servidor vai terminar apenas quando todos os clientes ativos tiverem se desconectado (ou seja, todas as máquinasclientes que não estão em modo sleep). Com esta opção, qualquer cliente em modo sleep não são considerados

- 35 -

Page 36: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

como conectados. Use esta opção se quiser realizar operações de manutenção durante o almoço, por exemplo.Quando esta opção for usada, qualquer cliente que esteja em modo sleep vai ter um erro de conexão quando acordar..

Nota: Um cliente sleeping (dormindo) se refere a um aplicativo remoto 4D em uma máquina que mudou para o mododormir enquanto ainda conectado ao servidor ativo. Para saber mais, veja [#title id="300" anchor="2967151"/].

Quando escolher uma destas opções, a janela abaixo aparece, o que indica o número de clientes que aindaestão conectados:

Em cada máquina cliente 4D, a janela abaixo aparece exibindo a mensagem padrão:

Se digitar uma mensagem personalizada na caixa de diálogo de shutdown (apagar) de 4D Server, é exibida nolugar da mensagem padrão em cada máquina cliente. Por exemplo:

Desconectar todos os clientes e terminarO servidor termina todos os processos e conexões e desconecta depois de alguns segundos

Notas:

Em todos os casos, se nenhum cliente estiver conectado ao servidor quando a janela de fechamento é validada, 4DServer é fechado imediatamente.Se clicar em Cancelar na janela de apagar de 4D Server, o processo de apagado do servidor se cancela.Pode fechar o banco de dados (e desconectar os clientes) sem fechar a aplicação 4D Server utilizando o comandoFechar o banco... Para obter mais informação, consulte 4D Server Menus.

- 36 -

Page 37: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Usando 4D Server 64 bits (Windows)

A partir da versão 12.1, 4D Server suporta sistemas operativos Windows 64 bits. A principal vantagem da tecnologia de 64bits é o fato de permitir direcionar mais memória RAM.Esta seção cobre as particularidades relativas a implementação e uso da versão 64 bits de 4D Server v12.1.

Versões Windows mínimas

4D Server 64 bits requer pelo menos um dos seguintes sistemas operativos Windows 64 bits:

Windows Vista 64 bitsWindows 2003 Server 64 bits

Arquitetura

A aplicação 4D server.exe destinada as arquiteturas 64 bits é uma versão específica dedicada a este entorno. Não seexecutará em um sistema 32 bits.Pelo contrário, se lançar a aplicação padrão 4DServer.exe (32 bits) em um sistema Windows 64 bits, será executado, masem modo emulado.Do lado do cliente, toda máquina 4D v12 (Mac OS ou Windows), pode ser conectado a 4D Server v12 64 bits. Asaplicações 4D a utilizar são as versões 32 bits padrão (ver o diagrama a continuação).

Compatibilidade Em modo interpretado, os mesmos bancos de dados 4D podem ser executados com um 4D Server 64 bits ou um 4D Server32 bits. O desenvolvimento é idêntico independentemente da aplicação utilizada. Em modo compilado, as bases devem ter sido compiladas para processadores 64 bits para poder ser executadas com 4DServer 64 bits (ver o parágrafo "Compilação 64 bits" ).Uma base compilada em 32 bits unicamente e sem código interpretado não poderá ser executado com um 4D Server 64bits.

Durante a execução, as seguintes diferenças devem ser levadas em conta:

Só os plug-ins compilados especificamente em 64 bits serão carregados por 4D Server 64 bits. Um plug-in 64 bitsdeve ser construído como uma pasta e ser localizado na pasta Plugins do servidor (a antiga arquitetura baseada nosarquivos .4DX e .RSR na pasta Win4DX já não é suportada). Os plug-ins 32 bits não são carregados por 4D Server 64bits. No entanto, podem ser armazenadas na pasta Plugins do servidor e ser distribuído nas máquinas remotas, seminicialização. Os mecanismos que chamam ao servidor (por exemplo a escritura ou a leitura de modelos no servidorcom o comando WR SET AREA PROPERTY de 4D Write) não funcionará.O arquivo .4DX para 32 bits deve ser localizado em uma sub pasta chamada /Contents/Windows e o arquivo para 64bits deve ser colocado em uma sub pasta chamada /Contents/Windows64.Os recipientes 4D compilados utilizados com 4D Server 64 bits devem ser compiladas em 64 bits.A quantidade de memória utilizada pelos BLOBs carregados pela aplicação segue limitada a 2 GB.QuickTime não é suportada por um 4D Server 64 bits.Geralmente, não se recomenda trabalhar com imagens em formato PICT: se a imagem é 100% QuickDraw, pode sermanipulada por 4D Server 64 bits, mas se contém Quicktime, não pode ser carregado.O uso de Web Kit integrado em Web areas não é suportado pelo 64-bit 4D Server

- 37 -

Page 38: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Internet Commands Para poder utilizar 4D Internet Commands con 4D Server 64 bits, deve instalar a versão 12.Pode baixar a versão 12 de 4D Internet Commands do web site de 4D.

Compilação 64 bits

Agora as aplicações 4D v12 podem ser compiladas para processadores 32 bits e 64 bits. Para isso está disponível umanova opção Compilação múltiplo (32 bits e 64 bits) bits na página "Compilador" das Propriedades da base:

Quando esta opção está selecionada, o compilador inclui o código 64 bits e o código 32 bits nos arquivos .4DC e .4DB.Estes arquivos podem ser executados seja com 4D Server 32 bits ou 4D Server 64 bits. Por padrão, esta opção não estáselecionada.

Nota: para compilar uma base em 64 bits, deve estar operando em modo Unicode. Caso contrário, é gerado um errodurante a compilação.

Tamanho da memória cachê

As arquiteturas 64 bits permitem direcionar até 1 TB (1000 GB) de memória RAM, a memória cachê que pode ser atribuídaa aplicação 4D Server 64 bits é virtualmente ilimitada.Nota: em comparação, as arquiteturas 32 bits estão limitadas a 4 GB de RAM.Se a quantidade de cachê definida na página "Base de dados/Memória" das Propriedades da base não podem se obter,4D Server atribui o maior tamanho possível e lhe informa ao usuário no início da aplicação. Então é possível sair ou continuarcom o tamanho proposto.

Interface

Durante a execução, pode diferenciar entre a aplicação 4D Server 64 bits 4D e a aplicação 4D Server estandarte por umlogo que aparece na página Monitor da janela de administração do servidor:

- 38 -

Page 39: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Nota: este logo também aparece na janela Sobre 4D Server.

Linguagem

Comandos modificados Os seguintes comandos da linguagem 4D foram adaptados as novas capacidades de 4D Server 64 bits: Version type,SET DATABASE PARAMETER e Get database parameter. Para obter mais informação, consulte as descrições destescomandos.

Tamanho da pilha do processo A pilha de um processo executado em um 4D Server 64 bits requer mais memória que em um 4D Server 32 bits (duas vezesmais). Quando cria um processo no servidor com a ajuda do comando Execute on server ou New process com 4D Server64 bits, se recomenda passar no parâmetro pilha um valor mínimo de 128 000 bytes e aumentar ele em caso de uma cadeiade chamada importante ou é recebido o erro "out of stack".

Comandos não permitidos no servidor 64 bits

Além dos comandos padrão que não podem ser utilizados em 4D Server (ver Procedimentos armazenados), os seguintes comandos não podem ser executados em um servidor 64 bits. Se forem chamados, por exemplo dentro de umprocedimento armazenado, é devolvida uma caixa de diálogo de advertência com o erro 67. Este erro pode ser interceptadopor um método de gestão de erros instalado pelo comando ON ERR CALL.

4D, tema Quick Report QR New offscreen area4D Chart, tema CT Area CT New offscreen area

- 39 -

Page 40: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Utilizar 4D Server 64 bits para OSX (pré versão)

A partir da versão 15.1, uma versão 64 bits de 4D Server é oferecida para OS X. Graças a esse novo produto, seuaplicativos 4D Server podem aproveitar o poder das máquinas 64-bit de Apple. A maior vantagem da tecnologia de 64-bit éque mais memória RAM pode ser direcionada.Esta seção trata de particularidades sobre a implementação e uso da versão de 64-bit de 4D Server em OS X.

Versão mínima OS X

A versão 64 bits de 4D Server requer OS X em versão 10.9 (Mavericks) ou superior. Por favor, consulte os arrays decertificação disponíveis no site web de 4D para saber que sistemas operativos são compatíveis com sua versão de 4DServer.

Arquitetura

A aplicação 4D Server dirigida as arquiteturas 64 bits é uma versão específica, dedicada a este entorno (não funciona emum sistema operativo de 32 bits).

Do lado do cliente, toda aplicação 4D (OS X ou Windows) pode ser conectado a uma versão 64 bits de 4D Server. Asaplicações 4D que se utilizam são as versões de 32 bits estandarte (veja o seguinte diagrama).

Em modo interpretado, as mesmas bases de dados 4D podem ser executadas com um 4D Server 64 bits ou 4D Server 32bits. O desenvolvimento é idêntico independentemente da aplicação que se utiliza (salvo as limitações que se indicam acontinuação).

Em modo compilado, as bases de dados devem ter sido compiladas para processadores de 64 bits com o propósito de serexecutadas por um 4D Server 64 bits. Uma base de dados compilada unicamente em 32 bits e que não contém códigointerpretado não pode ser executado com um 4D Server 64 bits.

Se a base utiliza plug-ins, também devem ser instalados em versão 64 bits para OS X na máquina servidor. Tenha em contaque 4D Internet Commands e4D Pack estão disponíveis em versão 64 bits para OS X.

Compilação 64 bits

As aplicações 4D podem ser compiladas para processadores 32 bits e 64 bits. Para isso, é necessário utilizar a opçãoCompilação múltiplo (32 bits e 64bits) 64 bits disponível na página "Compiler" das Propriedades da base:

- 40 -

Page 41: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Quando se ativa esta opção, o compilador inclui o código 64 bits e o código 32 bits nos arquivos .4DC e .4DB. Estesarquivos podem ser executados seja com um 4D Server 32 bits ou 64 bits. De forma pré determinada, esta opção não estáselecionada.

Compatibilidade do código compilado

Com a finalidade de suportar a arquitetura OS X 64 bits, se modificou o compilado integrado em 4D v14 R3. Emconsequência, só os bancos de dados compiladas com 4D v15 ou superior (nota: efetivo desde 4D v14 R3 ) podem serexecutados em OS X de 64 bits. Isto significa que:

se deseja utilizar bases 4D existentes em OS X 64 bits em modo compilado, deve voltar a compilar elas com 4D v15(ou superior),se suas bases utilizam componentes compilados, deve voltar a compilar os recipientes com 4D v15 (ou superior).

Tamanho da pilha do processo

A pilha de um processo executado em um 4D Server 64 bits requer mais memória que em um 4D Server 32 bits (duas vezesmais). Quando cria um processo no servidor com a ajuda do comando Execute on server ou New process com 4D Server64 bits, se recomenda passar no parâmetro pilha um valor mínimo de 512 Kb e aumentar ele em caso de uma cadeia dechamada importante ou é recebido o erro "out of stack".

Funcionalidades não suportadas

As seguintes funções ou tecnologias não serão admitidas na versão atual 4D Server 64 bits para OS X:

- 41 -

Page 42: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Função/Tecnologia Comentário

XSLT with Xalan_o_XSLT APPLY TRANSFORMATION, _o_XSLT SET PARAMETER e _o_XSLT GETERROR não funcionarão. Utilize o módulo PHP libxslt em seu lugar.

Formato PICTÍcone de formato de imagem não disponível + será mostrada a extensão de arquivo em seulugar (ver Unavailable picture format). O formato PICT é obsoleto a nível global em 4D, vertambém AP Is Picture Deprecated

cicn icons O comando GET ICON RESOURCE não é suportado no servidor (*)arquivos de banco dedados .RSR

Arquivos de banco de dados .RSR não será aberto automaticamente. Precisa usar Openresource file.

Arquivos writableresource

_o_Create resource file não são suportados no servidor (*); pode apenas abrir arquivosresource em modo leitura.Recordatório: os arquivos de recursos Mac OS são obsoletos desde 4D v11.

_o_Font number Este comando não é suportdo no servidor (*)Modo compatibilidadeASCII Só é suportado o modo Unicode

Capa de rede antiga Só é suportada ServerNet (ver Nova capa de rede ServerNet (compatibilidade))Comunicação portaserial Não disponível

Caixa de diálogo deimportação/exportação Não disponível

Editor de etiquetas Não disponívelUsar Web Kitintegrado em Webareas

Não disponível

(*) Um erro é devolvido se este comando se executa no servidor.

- 42 -

Page 43: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Server Menus

A interface da aplicação 4D Server se compõe dos seguintes menus: Arquivo, Edição, Janela, Ajuda. Em Mac OS, algunscomandos se encontram no menu 4D Server (menu aplicação).

Arquivo

Novo

Este comando hierárquico contém submenus que permitem criar um banco de dados ou um novo arquivo de dados namáquina servidor. Os comandos de criação de bases se detalham na seção Criar ou abrir um banco de dados 4D Server.

Abrir.../Abrir Recente

Estes comandos permitem abrir uma base com 4D Server. O comando Abrir recente> mostra um submenu que lista osbanco de dados abertos recentemente por 4D Server. Para reiniciar este menu, selecione o comando Apagar lista derecentes. Os comandos de abertura de banco de dados se detalham na seção Criar ou abrir um banco de dados 4D Server.

Fechar o banco de dados...

Este comando fecha o banco de dados atual sem fechar a aplicação 4D Server. Quando você escolhe este comando,aparece a caixa de diálogo de fechamento do servidor, o que lhe permite definir o modo de desconexão dos possíveisclientes conectados (ver a seção Sair de 4D Server).

Fechar a janela

Este comando fecha a janela da aplicação 4D Server localizada no primeiro plano.

Fechar todas as janelas

Este comando fecha todas as janelas da aplicação 4D Server. Note que neste caso só a ativação do comando Fechar obanco de dados... no menu Arquivo lhe permite saber se o banco de dados ainda está publicada.

Dar alta o banco de dados atual como serviço/Dar baixa o banco de dados atual/Dar baixatodos os serviços de Server

(Comandos disponíveis em Windows) Estes comandos permitem administrar o registro do banco de dados como Serviço.

- 43 -

Page 44: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Esta função se detalha na seção Registrar um banco de dados como serviço.

Gravar cachê de dados

Este comando permite "forçar" o registro no disco dos dados localizados na cachê. Por padrão, 4D Server escreveautomaticamente a cachê no disco depois de um tempo limite definido nas preferências da base (página Banco dedados/Gestão de dados).

Backup

Este comando permite lançar um backup do banco de dados em qualquer momento. Quando você seleciona este comando,aparece a seguinte caixa de diálogo:

O botão Backup lança imediatamente um backup que leva em conta os parâmetros definidos na caixa de diálogo dePreferências da aplicação (arquivos aos quais realizar backup, localização dos arquivos, número de conjuntos, etc.).O botão Propriedades do banco de dados abre o tema “Backup” das Propriedades do banco dados, que lhepermite visualizar, e se é necessário, modificar os parâmetros do backup atual.O botão Cancelar interrompe o processo de backup.Para maior informação sobre a configuração de backups, consulte o manual de Desenho.

Restaurar...

Este comando mostra uma caixa de diálogo de abertura de arquivos que lhe permite selecionar um arquivo a restituir.

Sair

Este comando permite fechar a aplicação 4D Server. Para maior informação, consulte a seção Sair de 4D Server.Nota: Em Mac OS X, o comando Sair está no menu 4D Server (menu aplicação).

Editar

- 44 -

Page 45: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

O menu Editar de 4D Server inclui os comandos padrão copiar/colar, o comando Exibir a prancheta, etc.Este menu também inclui (em Windows) o comando Preferências..., que mostra a caixa de diálogo de preferências daaplicação, permitindo definir numerosas performances do banco de dados. Para maior informação sobre esta caixa dediálogo, consulte o manual de Desenho da documentação de 4D. As preferências especificas de 4D Server são descritasnas seções Preferências de configuração e Preferências de publicação.Nota: Em Mac OS, o comando Preferências... se encontra no menu 4D Server (menu aplicação).

Janela

O menu Janela inclui os comandos padrão para organizar as janelas no espaço de trabalho (estes comandos diferemdependendo da plataforma). Também contém os comandos de visualização de janelas específicas de 4D Server:

Administração

Este comando mostra a janela de administração de 4D Server, se foi fechado ou minimizado. Esta janela é detalhada nocapítulo Janela de administração de 4D Server (ver a seção Página Monitor).

Explorador de execução

Este comando mostra a janela do Explorador de execução de 4D Server.

- 45 -

Page 46: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

O Explorador de execução permite visualizar o comportamento dos diferentes elementos estruturais da base e verificar queos recursos disponíveis sejam utilizados corretamente. O Explorador de execução é particularmente útil na fase dedesenvolvimento e análise de um banco de dados.A janela contém quatro páginas, acessíveis através de botões correspondentes: Rastreamento, Processo, Ponto deinterrupção e Captura. O funcionamento do Explorador de execução em 4D Server é idêntico ao de 4D. Para obter maisinformações, consulte o manual de Desenho.

Ajuda

Centro de segurança e manutenção (CSM)

Este comando mostra o centro de segurança e manutenção (CSM), que reúne todas as ferramentas necessárias paracontrole, análise, manutenção, backup e compactação de arquivos de dados e estrutura. Este comando está disponível mesmo quando nenhuma base foi aberta pelo 4D Server: neste caso, pode ser usado paraabrir um banco de dados no modo"manutenção" (que mostra uma caixa de diálogo padrão de abertura de arquivos demaneira que você pode nomear o banco de dados a abrir). Modo de manutenção é mais especificamente aplicado paraoperações, como compactação ou a abertura de bases danificadas. Para obter mais informações sobre o CSM, consulte o Manual do Desenho.

Atualizar licença...

Este comando de menu mostra a janela utilizada para ativar licenças adicionais no ambiente 4D.Para maior informação sobre esta caixa de diálogo, consulte a Guia de instalação.

Sobre 4D Server...

Este comando mostra a janela Sobre 4D Server..., o qual oferece a seguinte informação:

Versão e licença de 4D ServerDireitos de autor e informação legal4D no mundo

- 46 -

Page 47: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Nota: Em Mac OS, o comando Sobre 4D Server se encontra no menu 4D Server (menu aplicação).

- 47 -

Page 48: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Preferências de configuração

Pode definir diferentes parâmetros relativos a rede e a comunicação cliente-servidor na guia "Opções rede" da páginaCliente-Servidor das Propriedades do banco de dados (acessíveis desde 4D em modo remoto e 4D Server):

Além disso, a partir de 4D Server v14 R5, uma opção de compatibilidade lhe permite ativar ou desativar em qualquermomento a capa de rede antiga:

Estes parâmetros são detalhados nesta seção.

Rede

- 48 -

Page 49: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Publicar o banco ao iniciar Esta opção permite indicar se o banco 4D Server deve aparecer ou não na lista de bancos publicados na caixa de diálogode conexão.

Quando a opção estiver selecionada (opção selecionada como padrão), o banco se torna público e aparece na listade bancos publicados (página TCP/IP).Quando a opção não estiver selecionada, o banco não se torna público e não aparece na lista de bancos publicados.Para conectar, os usuários devem introduzir manualmente a direção do banco na página Personalizado da caixa dediálogo de conexão.

Nota: se modificar este parâmetro, deve reiniciar o banco servidor para que seja considerada.

Nome de publicação Esta opção permite modificar o nome de publicação de um banco publicado pelo 4D Server, ou seja, o nome que émostrado na página de publicação dinâmica TCP/IP da caixa de diálogo de conexão (ver a seção Conexão a um bancode dados 4D Server).Como padrão, 4D Server utiliza o nome do arquivo de estrutura do banco. Pode escrever qualquer nome personalizado quedeseje.

Nota: este parâmetro não é considerado nas aplicações cliente-servidor personalizadas. Em teoria, a aplicação cliente seconecta diretamente à aplicação servidor, sem passar pela caixa de diálogo de conexão. Entretanto, em caso de erro, estacaixa de diálogo aparecerá, neste caso, o nome da publicação da aplicação servidor é o nome do banco compilado.

Número de porta Esta opção permite modificar o número da porta TCP na qual o 4D Server publica o banco de dados. Esta informação searmazena na estrutura do banco e em cada máquina cliente. Como padrão, o número de porta TCP utilizado pelo 4D Servere 4D em modo remoto é 19813.Personalizar este valor é necessário quando se deseja utilizar várias aplicações 4D no mesmo aparelho com o protocoloTCP, neste caso, deve especificar um número de porta diferente para cada aplicação.Ao modificar este valor desde 4D Server ou 4D, se transmite automaticamente a todas as máquinas 4D conectadas aobanco. Para atualizar as outras máquinas clientes não conectadas, apenas deve entrar o novo número de porta (precedidopor dois pontos) depois da direção IP da máquina servidor na página Personalizado da caixa de diálogo de conexão. Porexemplo, se o novo número de porta é 19888:

Nota: somente os bancos publicados na mesma porta que o definido no cliente 4D são visíveis na página de publicaçãodinâmica TCP/IP.

4D Server e números de porta 4D Server utiliza três portas TCP para as comunicações entre os servidores internos e os clientes:

Servidor SQL: 19812 como padrão (modificável através da página "SQL/Configuração" das Preferências).

- 49 -

Page 50: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Servidor da aplicação: 19813 como padrão (modificável através da página "Cliente-Servidor/Configuração" dasPreferências, ver acima).Servidor DB4D (servidor de banco de dados): 19814 como padrão. Este número de porta não pode ser modificadodiretamente, mas é sempre o número da porta do servidor da aplicação + 1.Quando um cliente 4D se conecta ao 4D Server, se utiliza a porta TCP do servidor da aplicação (19813 ou a portaindicada depois dos dois pontos ':' na direção IP que se mostra na caixa de diálogo de conexão). A conexão a outrosservidores através de suas respectivas portas é então automática, já que não é necessário especificar-la.Tenha em mente que no caso de acesso através de um router ou um firewall, as três portas TCP devem estar abertasde forma explícita.

Autenticação de usuário com servidor de domínio Esta opção permite que implemente capacidades SSO (Single Sign On) em seu banco de dados 4D Server em Windows.Quando checar esta opção, 4D conecta de forma transparente ao diretório Ativo no servidor de domínio Windows e obtémos tokens de autenticação disponíveis.Esta opção está descrita na seção Single Sign On (SSO) em Windows.

Nome do serviço principal Quando Single Sign On (SSO) estiver ativado (ver acima), é necessário preencher o campo se quiser usar Kerberos como oprotocolo de autenticação.Esta opção está descrita na seção Single Sign On (SSO) em Windows.

Tempo limite de conexão Cliente-servidor Este termômetro permite definir o tempo limite (timeout - período de inatividade depois do qual a conexão se fecha) entre4D Server e as máquinas clientes conectadas a ele.A opção ilimitado elimina o tempo limite. Quando esta opção estiver selecionada, o controle de inatividade do cliente sedesativa. Quando se seleciona um tempo limite, o servidor fechará a conexão de um cliente se não recebe nenhuma petição do clientedurante o tempo limite especificado.

Comunicação cliente-servidor

Inscrever os clientes ao início para executar no cliente Quando esta opção está selecionada, todos as máquinas 4D remotas que se conectam ao banco podem executar osmétodos remotamente. Este mecanismo é detalhado na seção Procedimentos armazenados nas máquinas clientes.

Encriptar as conexões cliente-servidor Esta opção permite ativar o modo SSL (modo de segurança) para a comunicação entre a máquina servidora e as possíveismáquinas 4D remotas. Esta opção é detalhada na seção Criptografar conexões cliente-servidor

Atualizar a pasta "Resources" durante uma sessão Esta configuração permite definir globalmente o modo de atualização da instância local da pasta nas máquinas 4Dconectadas quando a pasta do banco foi modificada durante a sessão (a pasta se sincroniza automaticamente noequipamento remoto cada vez que uma sessão se abre). Três opções estao disponíveis:

Nunca: a pasta local não se atualiza durante a sessão. A notificação enviada pelo servidor é ignorada. A pasta localpode ser atualizada de forma manual utilizando o comando Update Local Resources.Sempre: a sincronização da pasta local é realizada automaticamente durante a sessão cada vez que se envia anotificação pelo servidor.Perguntar: quando é enviada a notificação pelo servidor, é mostrada uma caixa de diálogo nas máquinas cliente,indicando a modificação. O usuário pode aceitar ou recusar a sincronização da pasta local.A pasta centraliza os arquivos personalizados necessários para a interface do banco (arquivos de tradução, imagens,etc.) Os mecanismos automáticos ou manuais permitem notificar a cada cliente quando o conteúdo desta pasta foimodificado. Para mais informação, consulte a seção Gerenciamento da pasta Resources.

Abrir a estrutura em modo Esta opção permite definir o modo de abertura da estrutura do banco para as máquinas clientes. Como padrão, estádefinido o modo Leitura/Escrita mas também é possível configurar a abertura no modo Somente leitura para evitarmodificações na estrutura.

Nova capa de rede ServerNet (compatibilidade)

A partir de 4D v14 R5, as aplicações 4D contém uma nova capa de rede, chamada ServerNet, para gerenciar ascomunicações entre 4D Server e equipes 4D remotas (clientes). ServerNet se baseia em uma API moderna e robusta. Éfácil de manter e facilitará a implementação das últimas tecnologias de rede ao tempo que oferece um alto nível de

- 50 -

Page 51: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

rendimento.Usar ServerNet é transparente do ponto de vista do usuário. Entretanto, lembre-se que quando ServerNetis é usado, osnomes dos bancos de dados publicados em modo seguro não são mais precedidos por um caractere circunflexo "^" , comoera na antiga capa de rede (ver Criptografar conexões cliente-servidor).A capa de rede antiga está obsoleta, mas ainda se suporta com o propósito de garantir a compatibilidade das basesexistentes. ServerNet se utiliza automaticamente em bases de dados novas.Há opções que lhe permitem ativar/desativar o ServerNet. Para ter certeza de que suas aplicações se beneficiem dasfuturas evoluções de rede, lhe recomendamos que habilite ServerNet o mais rápido possível em todos os ses bancos dedados.

Ativar ou desativar a capa de rede antiga Pode ativar ou desativar em qualquer momento a capa de rede antiga em seu 4D Server. Pode utilizar:

a constante Use legacy network layer com o comando SET DATABASE PARAMETER, oa opção Usar a capa de rede antiga a caixa de diálogo Propriedades da base; esta opção está disponível só emaplicações convertidas (ver Página Compatibilidade):

Nota: como se indica em seu título, esta opção é ignorada em 4D Server v14 R5 versão 64 bits para OS X; só ServerNetpode ser utilizada nesta plataforma.Por padrão, a capa de rede ServerNet se:

ativa automaticamente nas novas bases, criadas com 4D v14 R5 ou versões posteriores,desativa automaticamente nas bases convertidas.

Migração dos clientes 4D fusionados Quando se ativa a capa ServerNet em sua aplicação servidor existente, só as aplicações cliente 4D só compatíveispoderão se conectar:

As aplicações clientes em versão 15 (a partir de 4D v14 R4) e superior podem se conectar sem modificação.As aplicações cliente em versões anteriores (v14.x e todas as outras releases v14 'R') primeiro devem ser atualizadaspara poder se conectar ao servidor.

Se sua aplicação funciona com clientes 4D Volume Desktop fusionadas em versões anteriores a v14 R4, e deseja utilizar omecanismo automático de 4D Server para distribuir suas aplicações cliente atualizadas através da rede, é necessárioestabelecer uma estratégia de migração. Esta estratégia deve ser baseada nos seguintes princípios:

Osclientes não compatíveis só podem se conectar a um 4D Server utilizando a capa de rede antiga.Os clientes atualizados podem adaptar seu protocolo de forma dinâmica para que possam se conectar a 4D Serverv14 R5 e superiores, independentemente da capa de rede que o servidor esteja utilizando.

Sua estratégia de migração deve seguir estes passos:

1. Crie uma atualização da aplicação cliente com 4D v14 R5 ou superior.2. Lance 4D Server v14 R5 com o parâmetro "Utilizar la capa de rede antiga" ativada.

Esta configuração permite que todos os clientes se conectem.Nota: tenha em conta que 4D Server v14 R5 versão de 64 bits para OS X não suporta esta opção.

3. Espere um período de tempo determinado até que cada cliente se conecte e baixe a nova versión.Isto pode durar um dia, uma semana ou inclusive mais tempo. Durante este período de transição, os clientes antigos eatualizados podem se conectar ao servidor de rede antigo..

4. Uma vez que todos os clientes se atualizaram, pode desativar a capa de rede antiga e ativar definitivamenteServerNet em 4D Server.

Esta estratégia se representa no siguiente diagrama:

- 51 -

Page 52: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Registrar as petições dos clientes (Added) Durante o processo de migração, se recomenda que habilite o arquivo "Diagnostic log recording". Quando se ativa estearquivo, 4D Server registra cada solicitação de atualização de clientes neste arquivo, o que lhe permite controlar o processo.Este registro não se ativa por padrão: deve chamar ao comando SET DATABASE PARAMETER com a constanteDiagnostic log recording definida em 1.Para cada solicitação de atualização, a seguinte informação se registra:

IP do clienteversão do cliente

O seguimento do arquivo de histórico também é útil depois de que tenha mudado o servidor a capa de rede ServerNet, parater certeza de que todos os clientes tenham se atualizado corretamente. Se um cliente não compatível tentar se conectar, oservidor registra a seguinte entrada:

IP do clienteversão do clienteevento "Fail to connect"

Neste caso, pode decidir, por exemplo, atualizar o cliente de forma manual.

- 52 -

Page 53: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Preferências de publicação

Você pode definir parâmetros relativos a configuração rede dos banco de dados 4D Server na guia "Configuração IP" dapágina Cliente-Servidor das Propriedades do banco de dados (acessíveis desde 4D em modo remoto e 4D Server):

Estes parâmetros são detalhados nesta seção.

Tabela de configuração Autorizar-Negar

Esta tabela permite estabelecer as regras de controle de acesso ao banco em função da direção IP dos equipamentos 4Dremotos. Esta opção permite reforçar a segurança, por exemplo, para aplicações estratégicas.

Nota: esta tabela de configuração não controla as conexões web.

O funcionamento da tabela de configuração é o seguinte:

A coluna "Autorizar-Negar" permite selecionar o tipo de regra a aplicar (Autorizar ou Negar) utilizando um menu pop-up. Para agregar uma regra, clique no botão Adicionar (+). Uma nova linha aparece na tabela. O botão Eliminar (-)permite eliminar a linha atual.A coluna "Direção IP" permite designar a direção ou direções IP, incluídas na regra. Para especificar uma direção,clique na coluna e escreva a direção da seguinte forma: 123.45.67.89.Pode utilizar um caractere * (asterisco) para especificar as direções do tipo "começa com". Por exemplo, 192.168 .*indica todas as direções que começam com 192.168.

- 53 -

Page 54: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

A aplicação das regras é efetuada na ordem de visualização da tabela. Se duas regras são contraditórias, se dáprioridade à regra localizada mais acima na tabela.Pode re-organizar as linhas modificando a ordem atual (clique no cabeçalho da coluna para alternar o sentido deordenação).Também pode mover linhas através de arrastar e soltar.Por razões de segurança, somente as direções correspondentes a uma regra de autorização explícita poderão serconectadas.Em outras palavras, se a tabela só conter uma ou mais regras Negar, todas as direções serão negadas porquenenhuma cumpria ao menos uma regra. Se deseja negar somente determinadas direções (e permitir outras), adicioneuma regra Autorizar * ao final da tabela. Por exemplo:- Negar 192.168.* (negar todas as direções que comecem por 192.168)- Autorizar * (e autorizar todas as demais direções)Como padrão, não se aplicam restrições de conexão por 4D Server: a primeira linha da tabela contêm a etiquetaAutorizar e o caractere * (todas as direções).

- 54 -

Page 55: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Criptografar conexões cliente-servidor

Pode configurar suas conexões cliente/servidor de maneira que 4D Server e as máquinas 4D remotos se comuniquem emmodo seguro.A comunicação cliente/servidor está baseada no protocolo TLS (Transport Layer Security), que anteriormente era SSL(Secured Socket Layer).

O protocolo SSL e as conexões cliente/servidor

O protocolo TLS foi desenhado para dar seguridade aos intercâmbios de dados entre duas aplicações, principalmente entreum servidor web e um navegador. O protocolo está desenhado para autenticar ao remetente e o receptor e para garantir aconfidencialidade e integridade da informação intercambiável. Para obter uma descrição detalhada, consulte a seção Usarprotocolo SSL no manual de Linguagem de 4D.

Quanto a 4D Server e 4D Client, os mecanismos de geração de chaves e de autenticação são manipulados de formatransparente por 4D Server e não requerem de nenhuma configuração adicional do usuário.

Nota: Criptografar conexões cliente/servidor diminui as conexões.

Configurações

A nível de rede, o protocolo TLS é inserido entre a capa TCP/IP (nível baixo) e o protocolo de alto nível.

Para usar TLS em uma configuração cliente/servidor "tradicional", certifique-se que na máquina 4D Server e em todas asmáquinas 4D Client, o arquivo 4DSLI.DLL (Windows) ou pacote 4DSLI.bundle (Mac OS) estão instalados corretamente.Este arquivo é a interface da capa de segurança (Secured Layer interface) dedicada à gestão do TLS. Ele deveria estar:

Em Windows: junto aos arquivos executáveis das aplicações 4D e 4D ServerEm Mac OS: na sub pasta [4D Extensions] dos pacotes de software de 4D e 4D Server.

Este arquivo se instala por padrão.

Por outro lado, a criptografia de conexões 4D Server não está habilitada por padrão. Você deve ativar desta maneira: Abraa página "Cliente-Servidor /Opções rede" das propriedades da base da caixa de diálogo e selecione a opção deCriptografar as conexões cliente-servidor (ver a seção Preferências de configuração).

Por padrão, a caixa de seleção não está selecionada. A continuação, você deve sair e relançar o 4D Server para que esta configuração seja tida em conta.

Todos os computadores remotos 4D se conectarão em modo de segurança.

Conexão em modo de segurança

Uso de ServerNetQuando a nova camada de rede ServerNet network for usada, a ativação doprotocolo seguro no servidor é transparete(o modo de publicação não aparece na caixa de diálogo de conexão). A conexão e troca para modo seguro aconteceapós uma negociação interna entre a aplicação servidor e a aplicação remota.

- 55 -

Page 56: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Para saber mais sobre ServerNet, veja Preferências de configuração.

Uso da camada de rede legado (legacy network layer)Quando a camada de rede legado for usada, o acento circunflexo ( )̂ é colocado antes do nome dos bancos de dadospublicados em modo TLS na caixa de diálogo de conexão em 4D Server:

Nota: W Quando o banco de dados não for publicado dinamicamente em uma página TCP/IP da caixa de diálogoConexão, o usuário pode entrar seu nome na página Custom (ver Conexão a um banco de dados 4D Server ePreferências de publicação). Neste caso, um acento circunflexo( ^) deve ser colocado antes do nome do banco dedados se o banco de dados estiver publicado em modo seguro; do contrário, a conexão será rejeitada.

- 56 -

Page 57: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Single Sign On (SSO) em Windows

A partir de v15 R5, 4D Server oferece uma nova funcionalidade que lhe permite implementar funcionalidades SSO (SingleSign On) em soluções cliente-servidor em Windows.A implementação de SSO em suas soluções 4D permitirá aos usuários acessar a aplicação 4D em Windows sem ter quevoltar a introduzir sua senha quando já estiverem registrados no dominio Windows de sua empresa (utilizando ActiveDirectory). Atrás, a aplicação 4D Server pode ter acesso a autenticação de início de sessão de Windows, que pode serutilizada para iniciar a sessão do usuário 4D no banco de dados utilizando o método de início de sessão normal.Nota: só está disponível em 4D Server (as aplicações mono usuário 4D não respaldam SSO).

Ativar a propriedade SSO

Normalmente, a funcionalidade SSO não está habilitada em 4D Server. Para se beneficiar destas funcionalidades, énecessário estabelecer a nova opção Autenticação de usuário com servidor de dominio na página cliente-servidor doquadro de diálogo Propriedades do banco de dados de 4D Server:

Quando selecionar esta opção, 4D se conecta de forma transparente ao diretório Active do servidor dominio de Windows eobtém os tokens de autenticação disponíveis.Esta opção oferece autenticação padrão através do protocolo NTLM. 4D suporta os protocolos NTLM e Kerberos. Oprotocolo utilizado é selecionado automaticamente por 4D em função da configuração atual (ver Exigências para SSO). Sedesejar utilizar o protocolo Kerberos, é necessário preencher o campo SPN adicional (ver mais adiante).

Ativar Kerberos Se desejar utilizar Kerberos como protocolo de autenticação, também é necessário preencher a opção Nome principal doserviço na página cliente-servidor/Opções do quadro de diálogo Propriedades do banco de dados:

Esta opção declara o SPN tal como se estabelece na configuração Active Directory. Um nome principal de serviço é umidentificador único de uma instância de serviço. Os SPNs são utilizados pela autenticação Kerberos para associar umainstância de serviço com uma conta de serviço de início de sessão. Isto permite que uma aplicação cliente solicite que oserviço autentique uma conta mesmo se o cliente não tiver o nome da conta. Para mais informação, por favor consulte apágina SPN no site web de msdn.OO identificador SPN deve respeitar este padrão:

"ServiceName/FQDN_user" se o SPN for um atributo do computador"ServiceName/FQDN_computer" se o SPN for um atributo de usuário

onde:

ServiceName é o nome de serviço ao que o cliente deseja se autenticar.

- 57 -

Page 58: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

O Fully Qualified Domain Name (FQDN) é um nome de dominio que especifica sua localização exata na hierarquíade árvore do Active Directory para equipamentos e usuários.

Nos bancos de dados 4D, o SPN pode ser configurardo:

na configuração da estrutura do banco de dados, para um uso com 4D Server.ou na configuração do usuário (settings. arquivo 4DSettings armazenado na pasta Preferências do banco de dados)para as necessidades de implementação.

Implementar SSO

Quando as funcionalidades SSO estão ativas (ver acima), pode confiar na autenticação de usuário baseada nas credenciaisde sessão de Windows para abrir uma sessão de usuário em 4D Server.Lembre que a funcionalidade SSO só oferece um início de sessão autenticado, deve passar esta informação de acesso aseu método de início de sessão 4D padrão. Quando uma aplicação remota 4D tenta se conectar ao servidor, deve chamarao novo comando 4D [#cmd id="1355"/, que devolverá o inicio de sessão do usuário, tal como se define no Active Directory.Depois, pode passar esta informação de acesso a seu proprio sistema de identificação (utilizando o usuário e gruposintegrados, os comandos LDAP, ou qualquer mecanismo personalizado) para abrir a sessão apropriada para o usuárioremoto em seu aplicativo 4D. Este principio se desceve no seguinte gráfico:

O comando [#cmd id="1355"/ deve ser chamado no método base On Server Open Connection Database Method, quese chama cada vez que um 4D remoto abre uma nova conexão ao banco 4D Server. Se a autenticação falhar pode devolverum valor não nulo em $0 para recusar a conexão.

Usar o comando Current client authentication Para chamar o comando Current client authentication , (autenticação de cliente atual) use a sintaxe abaixo:

login:=Current client authentication(domain;protocol)

onde:

login é a ID usada pelo cliente para fazer login no Active Directory (valor texto). É necessário usar este valor paraidentificar o suuário dentro do seu banco de dados.Se o usuário não estiver corretamente autenticado, uma string vazia é retornada mas nenhum erro é retornado.dominio e protocolo são parâmetros de texto opcionais. Eles são preenchidos pelo comando e permitem que aceiteou rejetite conexões dependendo destes valores:

dominio é o nome de domínio do Active Directoryprotocolo é o nome do protocolo usado por Windows para autenticar o usuário.

Para saber mais sobre este comando, veja a descrição do comando Current client authentication .

Exigências para SSO 4D Server maneja diversas configurações SSO, dependendo da arquitetura atual e configurações. O protocolo usado apraautenticação (NTLM ou Kerberos) assim como a informação retornada pelo comando Current client authenticationdependem da configuração atual, se todas as exigências forem respeitadas (abaixo). O protocolo atualmente usado paraautenticação é retornado no parâmetro protocolo do comandoCurrent client authentication.

- 58 -

Page 59: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

A tabela abaixo oferece as exigências da autenticaçao NTLM ou Kerberos:NTLM Kerberos

4D Server e 4D remote estão em máquinasdiferentes sim sim

Usuário 4D Server está no domínio sim sim4D remote está na mesma AD que o usuário4D Server sim ou não(*) sim

SPN é preenchido em 4D Server não sim(**)Informação retornada por Current clientauthentication se exigências foremrespeitadas

user=login esperado,dominio=dominio esperado,protocolo="NTLM"

usuario=login esperado,dominio=dominio esperado,protocolo="Kerberos"

(*) Esta configuração específica é suportada: o usuário 4D remoto é uma conta local em uma máquina que pertence aomesmo AD que 4D Server. Neste caso, o parâmetro dominio é preenchido com o nome da máquina 4D Server. Note que o suporte depende das configurações atuais do usuário: se não estiver disponível, strings vazias são retornadas.(**) se todas as exigências Kerberos forem respeitadas mas o comando Current client authentication retornar "NTLM"em protocolo, signfica que enfrenta uma das situaçoes abaixo:

a sintaxe SPN não é válida, ou seja, não respeita limites impostos por Microsoft.ou, o SPN tem duplicatas em AD. Este problema necessida ser resolvido pelo administrador AD.

Nota: uma sintaxe válida não significa que a declaração SPN seja coreta, em particular, se o SPN não existir em AD,Current client authentication retorna uma string vazia.

- 59 -

Page 60: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Gerenciamento da pasta Resources

A pasta de Resources da base é usada para compartilhar os dados personalizados (imagens, arquivos, subpastas, etc)entre a máquina do servidor e todos os computadores cliente. No computador do servidor, a pasta de Resourcessimplesmente deve estar localizada junto à estrutura do arquivo base.

Todos os mecanismos de referência associados à pasta Resources são suportados em modo cliente/servidor (pasta .lproj,XLIFF, imagens, etc). Para obter mais informações sobre este ponto, ver o Manual de Desenho 4D.

Cada cliente tem uma cópia desta pasta localmente. O conteúdo da pasta local é automaticamente sincronizado com oservidor cada vez que o cliente se conecta.

Por outro lado, computadores cliente podem ser "notificados" dinamicamente durante uma sessão quando o conteúdo dapasta Resources da base servidor seja alterada por um desenvolvedor. Esta notificação pode ser ativada:

De forma automática pelo servidor, dois minutos depois da última modificação realizada por um cliente (isto ajuda aevitar as notificações inoportunas em caso de copia de numerosos arquivos).Ou de forma manual através do comando Notify clients no menu de ação do Explorador de recursos na máquinacliente na origem da modificação.Ou pela programação, através de um comando NOTIFY RESOURCES FOLDER MODIFICATION. Este comando éútil quando o conteúdo da pasta Resources se modifica no servidor através de um procedimento armazenado.

No lado do cliente, a maneira que manipula a notificação das alterações depende da configuração da preferência"Atualização da pasta Resources" durante uma sessão. Isso também pode ser definido individualmente, usando o comandoSET DATABASE PARAMETER. Três opções estão disponíveis: sem sincronização, sincronização automática ouperguntar. Para obter mais informações, consulte as seções Preferências de configuração e Preferências depublicação e a descrição do comando SET DATABASE PARAMETER. Finalmente, cada máquina cliente pode sincronizar com o servidor em qualquer momento através do comando UpdateLocal Resources no menu ação do Gerenciador de recursos. Para obter mais informações sobre o Explorador derecursos, consulte o Manual de Desenho 4D.

Nota de compatibilidade: Em versões anteriores de 4D Server, a transferência de dados personalizados era levada acabo através de uma pasta chamada "Extras", localizada ao lado do arquivo de estrutura. Esta pasta é obsoleta e seu usonão é recomendável. No entanto, ainda é suportada por 4D Server com o propósito de preservar a compatibilidade dasaplicações existentes.

- 60 -

Page 61: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Registrar um banco de dados como serviço

Em Windows, 4D Server pode ser lançado como um ServiçoNota de compatibilidade: esta função não está disponível em Mac OS a partir da versão 12 de 4D Server.

Uma aplicação 4D Server registrada como serviço é lançada automaticamente no início da máquina com a base atual,antes mesmo que abra uma sessão de usuário. Não é fechada quando o usuário deixa a sessão. Este funcionamento lhe permite assegurar a disponibilidade de uma base de 4D Server, mesmo no caso de umincidente que requeira reiniciar a máquina. A manutenção pode ser feita remotamente.Notas:

Em uma plataforma Windows 64-bits, uma aplicação 4D Server registrada como serviço se executa sem interface(a janela de administração do servidor não é mais mostrada).Para maior informação sobre os mecanismos de gestão dos Serviços, consulte a documentação de seu sistema,consulte a documentação de seu sistema operativo.

Para registrar o banco de dados 4D Server como um serviço, selecione o comando Para registrar a base atual comoum serviço no menu Arquivo de 4D Server. Na próxima vez que você inicia a máquina, 4D Server iniciaráautomaticamente e será aberto o banco de dados atual. Você pode registrar quantos bancos de dados quiser. Cadabase pode registrar somente uma vez.Nota: Em Windows, este comando pode tornar-se cinza quando o acesso as funções de gerenciamento de serviçossão restritas. Neste caso, para pode usar este comando você deve:

Lançar 4D Server com um nível de administrador (para fazer isso, clique com o botão direito no ícone daaplicação e escolha o comando Executar como administrador no menu contextual)Desativar o Controle de conta usuário (UAC) através do painel de configurações de "Contas de usuário" (parafazer isso, selecione a opção "Nunca notificar").

Atenção: Certifique-se de usar uma conta válida quando você abre a reunião, caso contrário será exibida umamensagem de erro. Por padrão, 4D Server se executa com a "Conta sistema local", a qual pode não necessariamentecontar com os parâmetros necessários para utilizar sua aplicação. Em particular, se deseja realizar impressões, deveabrir a sessão com uma conta de usuário que tenha parâmetros de impressão por padrão. Para mudar de conta, vá aoPainel de controle> Sistema e segurança> Ferramentas de administração> Serviços. Na lista de Serviços, façaclique em 4D Server, escolha a opção Propriedades, e logo vá a guia Conexão e defina a conta com a que o servidordeve ser executado (configuração que será utilizado no próximo lançamento).Para dar baixa a sua base, selecione Dar baixa a base atual do menu Arquivo de 4D Server. Este comando está emcinza se a base não foi registrado como um serviço.Para dar baixa todas as bases de 4D Server ao mesmo tempo, selecione Dar baixa todos os serviços de 4D servera partir do menu Arquivo de 4D Server. Este comando está em cinza se nenhum serviço 4D Server está ativo.Não é possível mudar o estado do registro do serviço de 4D Server desde 4D Server, se a aplicação foi lançada comoum serviço ao inicio. Neste caso, os três elementos do menu são desativados. Para parar o serviço, utilize o painel decontrole de Serviços.

- 61 -

Page 62: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Configurar um espelho lógico

4D Server oferece uma solução integrada que permite configurar um sistema de backup sob um espelho lógico. Estasolução está baseada nos dois novos comandos: New log file e INTEGRATE MIRROR LOG FILE.

O que é um espelho lógico?

Um espelho lógico é um modo backup sofisticado, destinado especialmente para bancos de dados críticos ou de alta carga.

O uso de um espelho lógico consiste em operar um banco de dados em una máquina e manter em uma segunda máquinauma copia desta base que se atualiza periodicamente. Ambas máquinas se comunicam pela rede com a máquina emfuncionamento transmitindo regularmente para a máquina de espelho as mudanças realizadas no banco de dados atravésdo intermediário do arquivo de histórico.

Desta maneira, quando há um incidente que afeta o banco de dados operacional, o banco de dados espelho pode serutilizado para conseguir rapidamente voltar a trabalhar sem a perda de dados. Por outra parte, o banco de dadosoperacionais nunca está "bloqueado" pelas operações de backup.

Por que escolher o backup usando um espelho lógico?

O uso de um espelho lógico corresponde às necessidades específicas. A estratégia padrão com base em backupsperiódicos e a utilização de um arquivo de histórico é nas maiorias dos casos uma solução simples, confiável e econômica.Torna-se o backup de base regularmente (a cada 24 horas geralmente). Durante o backup, a base permanece acessível emmodo somente de leitura. Este período de indisponibilidade parcial é muito curto e mesmo no caso de grandes bancos dedados (maiores de 2 GB), não dura mais que 5 minutos. Esta operação ainda pode ser programada para realizar-se forados períodos normais de utilização da base.

No entanto, para certos tipos de organizações, tais como hospitais, por exemplo, as bases de dados essenciais devem sertotalmente operacionais 24 horas por dia. O banco de dados não pode estar "fazendo back up", embora por um períodomuito curto de tempo. Neste caso, a criação de um espelho lógico é uma boa solução.

Nota: O espelho base apenas reflete as alterações feitas aos dados. Esse método de backup não é adequado para basesno processo de desenvolvimento, onde freqüentes mudanças estruturais farão que o espelho seja rapidamente obsoleto ouque requerem várias atualizações da estrutura do espelho base.

Princípios de funcionamento

A criação de um sistema de backup por espelho lógico é baseado em dois novos comandos: #cmd id="926"/] e INTEGRATEMIRROR LOG FILE. Estes comandos se descrevem no manual de Linguagem de 4D.

Os seguintes princípios aplicam:

A base está instalada no computador 4D Server principal (máquina de funcionamento) e uma cópia idêntica da baseestá instalada na máquina 4D Server espelho.Uma prova no início do aplicativo (por exemplo, para detectar a presença de um arquivo específico na pasta 4DExtensions) nos permite distinguir entre as duas versões (operacional e espelho) e, por conseguinte, proceder aoperações adequadas.Na máquina 4D Server em funcionamento, o arquivo de histórico é "segmentado" a intervalos regulares com ocomando New log file . Dado que nenhuma copia de seguridade é levada a cabo no servidor principal, a base se mantémdisponível permanentemente em modo leitura-escritura.Cada “segmento” do arquivo histórico é enviado para a máquina espelho, onde junta-se a base espelho usando ocomando INTEGRATE MIRROR LOG FILE

A criação deste sistema necessita a programação de código específico, em particular:

Um contador de tempo no servidor principal para a gestão dos ciclos de execução do comando New log file Um sistema de transferência para os "segmentos" do arquivo de histórico entre a máquina operacional e a máquinaespelho (usando 4D Internet Commands para uma transferência via FTP ou por sistemas de mensagens, serviçosweb, etc),Um processo na máquina espelho destinada a supervisionar a chegada de novos "segmentos" do arquivo de histórico

- 62 -

Page 63: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

e de integrar usando o comando INTEGRATE MIRROR LOG FILE,Um sistema de comunicação e de gestão de erros entre o servidor principal e o servidor espelho.

ATENÇÃO: Um sistema de backup pelo espelho lógico não é compatível com o backup "padrão" em uma base no usocomo a utilização simultânea destes dois modos de backup irão conduzir à dessincronização das bases operacionais eespelho. Portanto, você deve ter certeza que nenhum backup, automático ou manual, seja realizado na base operacional.Por outro lado, é possível fazer backups do espelho base (veja o próximo parágrafo).

Backup da base do espelho

4D Server permite realizar backups do banco de dados na máquina espelho.Todas as mídias convencionais podem ser usadas para realizar backups na máquina espelho: backup manual através domenu Arquivo, backup periódico definido nas Preferências ou o backup agendado, usando os comandos da linguagem.

Para evitar riscos de dessincronização com a máquina operacional, 4D bloqueia automaticamente a máquina espelhoquando ele está a realizar uma das duas operações básicas: a integração do arquivo de histórico da máquina operacional eo backup do banco de dados espelho.

Durante a integração do arquivo de histórico, não é possível levar a cabo um backup. Se utiliza o comando BACKUP,é gerado o erro 1417 (ver a seção Erros de Gestão de backup (1401 -> 1421)).Quando um backup está em andamento, todos os processos são congelados e não é possível começar a integraçãode um arquivo de histórico.

A partir de 4D v14, pode ativar o arquivo de histórico atual na máquina espelho, o que significa que pode configurar um"espelho - espelho", ou uma série de servidores espelho em cascata ou uma arquitetura de espelho "hub and spoke"(múltiplos espelhos para o mesmo banco de dados operacionais). Neste primeiro caso, o atual arquivo de histórico éenviado em turno para outro mirror (mirror-mirror) para integração, e assim por diante se você usa uma série de espelhos.No segundo caso, o histórico atual é enviado diretamente para diversos servidores espelho idênticos. Este tipo deredundância assegura a disponibildade contínua do servidor, mesmo no caso de falha simultânea do servidor e do espelhoprincipal.

Cenário de operação de um espelho lógico

O seguinte cenário ilustra, desde o ponto de vista de cada máquina 4D Server, a configuração de um sistema de backupcom espelho:

- 63 -

Page 64: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Passo Máquina em operação Máquina espelho

1

Inicialização da aplicação, backupdo arquivo de dados e ativação(caso seja necessário) do arquivo dehistórico.4D cria o arquivoMyDatabase.journal. Para maiorsegurança, o arquivo de histórico éguardado em um disco duroseparado.Saímos da aplicação.Copia de todos os arquivos da base(arquivo de histórico incluído) namáquina espelho.

2Reinicio da aplicação e início daoperação (verificar que não existaum backup totalmente programado).

Inicio da aplicação espelho. 4D Server solicita o arquivo de históricoatual: seleção do arquivo MyDatabase.journal que foi transferido dabase operacional. Se não quer utilizar o histórico do espelho, desative ohistórico atual na página Backup/Configuração dasPreferências/Propriedades (tenha a certeza de que a opção Utilizar oarquivo de histórico não esteja selecionada).

3Decisão de atualizar o espelho (porexemplo, depois de um certo tempode operação).Execução do método que contém ocomando New log file. O arquivoguardado se chamaMyDatabase[0001-0001].journal.Envio por programação do arquivoMyDatabase[0001-0001].journal àmáquina espelho (utilizando 4DIC,Serviços web, etc.).A base está em operação.

4Detecção de um arquivo que está esperando ser integrado. Execuçãodo método que contém o comando INTEGRATE LOG FILE paraintegrar o arquivo MyDatabase[0001-0001].journal.

5Incidente no computador; a base éinutilizável. Decisão de passar àmáquina espelho.Copia do arquivo de histórico atualMyDatabase.journal a máquinaespelho, sob a pasta de recepçãohabitual.

6 Análises do incidente e reparação.Detecção de um arquivo que está esperando ser integrado. Execuçãodo método que contém o comando INTEGRATE MIRROR LOG FILE para integrar o arquivo MyDatabase.journal.Por segurança, criação de um arquivo de histórico atual na páginaBackup/Configuração das Preferências.A base está em operação.

7

A máquina se repara. Substituiçãodos arquivos da base pelas da baseespelho. Inicio da aplicação. 4DServer solicita o arquivo de histórico:seleção do arquivo transferido desdea máquina espelho.

Saímos da base. Voltar ao passo 2.

- 64 -

Page 65: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Janela de administração de 4D Server

4D Server tem uma janela de administração completa e fácil de usar.

Esta janela oferece diferentes ferramentas de análise e controle para bases de dados publicadas. A janela contém váriaspáginas que podem ser acessar utilizando os botões na parte superior:

Cada página se detalha em uma seção deste capítulo.Nota: A janela de administração pode acessar desde um computador 4D remoto. Para obter mais informação sobre esteponto, consulte a seção Administração de máquinas remotas.

Página Monitor Página Usuários Página Processos Página Manutenção Página Servidor de Aplicações Página Servidor SQL Página Servidor HTTP Página Monitor tempo real

- 65 -

Page 66: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Monitor

A página Monitor mostra informação dinâmica sobre o uso da base bem como informação do sistema e a aplicação 4DServer:

Nota: Em Windows, a visualização desta informação está relacionada com os direitos do usuário que abriu a sessão. Paramaior informação, consulte o parágrafo “Visualização de informação do monitor (Windows)”.

Área gráfica

A área gráfica permite visualizar a evolução em tempo real de vários parâmetros: o uso dos processadores, o tráfico derede e a ocupação da memória. Você seleciona o parâmetro a mostrar utilizando o menu localizado ao centro da janela:

Uso de processadores: uso global de CPU da máquina, para todas as aplicações juntas.A parte específica de 4D Server nesta taxa de uso está na área de informação "Processadores".

- 66 -

Page 67: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Rede: número de bytes recebidos por segundo por 4D Server.O número de bytes enviados por 4D Server se oferece na área de informação "Rede".Memória física: quantidade de memória RAM da máquina utilizada por 4D Server.Uma vista mais detalhada do uso da memória se encontra na área de informação "Memória".Memória Virtual: mostra na área gráfica a quantidade de memória virtual utilizada pela aplicação 4D Server. Estamemória é atribuída pelo sistema de acordo as necessidades da aplicação. O valor na parte inferior direita da áreaindica a quantidade de memória em uso. O valor na parte superior esquerda indica a quantidade máxima de memóriavirtual utilizada. O valor máximo se calcula dinamicamente em função dos parâmetros de memória geral da aplicação.Cachê: Mostra na área gráfica a quantidade de memória cachê utilizada pela aplicação 4D Server. O valor na parteinferior direita da área indica a quantidade de memória em uso. O valor na parte superior esquerda indica o tamanhototal da memória cachê, tal como foi definido nas Propriedades da base. Observe que quando esta opção está selecionada, o deslocamento da área gráfica desacelera porque uma análiseseficaz da cachê se realiza geralmente em um período de observação bastante longa.

Área Introdução

A área "Introdução" oferece diferente informação relativa ao sistema, a aplicação e as licenças instaladas na máquina de4D Server.

Área Detalhes

A área "Detalhes" repete parte da informação mostrada na área gráfica e oferece informação adicional.

Disco duro: Capacidade global do disco duro e distribuição entre o espaço ocupado pelos dados da base (arquivode dados + índice de dados), o espaço utilizado por outros arquivos e o espaço disponível.Memória: Memória RAM instalada na máquina e quantidade de memória ocupada por 4D Server, pelas outrasaplicações e memória disponível. A memória ocupada por 4D Server pode igualmente ser mostrada dinamicamente na área gráfica.Processadores: Taxa instantânea de ocupação dos processadores da máquina por 4D Server e pelas outrasaplicações. Esta taxa se recalcula permanentemente. A taxa de ocupação por 4D Server também pode ser mostrada dinamicamente na área gráfica.

- 67 -

Page 68: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Rede: Número instantâneo de bytes recebidos pela rede por 4D Server e número de bytes enviados pela aplicação.Este valor se atualiza constantemente. O número de bytes recebidos por 4D Server também podem ser mostrados dinamicamente na área gráfica.

Mostrar informação do monitor (Windows)

Em Windows, alguma informação do sistema mostrada na página Monitor se recupera nas ferramentas do "Monitor derendimento" de Windows. O acesso a estas ferramentas somente se permite quando o usuário que abre a sessão aonde foilançado 4D Server tem as autorizações necessárias. Este usuário deve:

Pertencer ao grupo "Administradores",Em Windows Vista: pertencer ao grupo "Usuários do monitor de rendimento" (para um usuário que não éAdministrador).

Para colocar um usuário no administrador no grupo "Usuários do analisador de rendimento" em Windows Vista (necessitaráusar uma conta Administrador para fazer estas operações):

1. Ir para o painel de controle e abra o painel de "Contas de usuário".2. Faça clique na guia "Opções Avançadas" e depois no botão "Avançado" da seção "Gestão avançada de usuários".

É executada a aplicação "Usuários e grupos locais".3. Duplo clique na pasta "Grupos".4. Duplo clique no grupo "Usuários do monitor de rendimento".

Aparece uma janela chamada "Propriedades de usuários do monitor de rendimento".5. Faça clique no botão Adicionar... para adicionar um usuário.6. Na área de texto titulada "Introduzir os nomes dos objetos a selecionar," introduzir os nomes dos usuários a autorizar.7. Faça clique em Aceitar (duas vezes).

Feche a aplicação "Usuários e grupos locais" depois as "Contas de usuários."

- 68 -

Page 69: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Usuários

A página Usuários lista os usuários conectados ao banco de dados:

O botão "Usuários" indica, entre parênteses, o número total de usuários conectados a base (este número não leva em contaos possíveis filtros de visualização aplicados a janela).

Esta página também contém uma área de pesquisa dinâmica e os botões de controle. Pode modificar a ordem das colunas arrastando e soltando a área de cabeçalho das colunas. Também pode ordenar a listade valores de uma coluna fazendo clique no seu cabeçalho:

Faça clique várias vezes para definir alternativamente uma ordem ascendente/descendente.

Lista de usuários

Para cada usuário conectado a base, a lista oferece a seguinte informação:

Sistema da máquina cliente (Mac OS ou Windows) forma de ícone.Usuário 4D: nome de usuário 4D. Se as senhas não estão ativas, todos os usuários se chamam "Desenhador."Nome de máquina: nome da máquina cliente.Nome de sessão: nome da sessão aberta na máquina cliente.Direção IP: direção IP da máquina cliente.Conexão: data e hora da conexão da máquina cliente.Tempo CPU: tempo de CPU consumido por este usuário desde a conexão.Atividade: rádio de tempo que 4D Server outorga a este usuário (visualização dinâmica). "Dormir" se a máquina docliente tiver passado ao modo dormir (ver abaixo).

Gerenciar usuários em modo dormindo 4D Server trata especificamente os casos em que um equipamento que executa uma aplicação remota 4D muda a mododormir enquanto sua conexão à máquina servidor ainda está ativa. Neste caso, a aplicação remota 4D conectada notificaautomaticamente a 4D Server de sua desconexão iminente.No servidor, o usuário conectado muda a um estado de atividade Dormir:

Este estado libera recursos no servidor. Além disso, a aplicação 4D remota volta a se conectar a 4D Server de formaautomática depois de despertar do modo dormir.O cenário a seguir é suportado: um usuário remoto deixa de trabalhar por um tempo, por exemplo durante uma pausa para oalmoço, mas mantém a conexão com o servidor aberta. A máquina passa ao modo dormir. Quando o usuário voltar, amáquina acorda e a aplicação remota 4D recupera automaticamente a conexão com o servidor, assim como o contexto desessão.

Área de pesquisa/filtro

Esta função permite reduzir o número de linhas mostradas na lista as quais correspondem ao texto introduzido na área depesquisa. A área indica as colunas nas quais será realizada a pesquisa/filtro. Na página Usuários, serão as colunas Usuário4D, Nome de máquina e Nome de sessão.

- 69 -

Page 70: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

A lista se atualiza em tempo real a medida que introduz o texto na área.

É possível introduzir mais de um valor a buscar. Utilize ponto e vírgula para separar os valores. O operador utilizado nestecaso é de tipo OU.

Por exemplo, é introduzido "João;Maria;Pedro," somente serão conservadas as linhas com João OU Maria OU Pedro nascolunas objetivo.

Botões de administração

Esta página inclui três botões de controle. Estes botões estão ativos se pelo menos uma linha está selecionada. Podeselecionar várias linhas pressionando a tecla Shift para uma seleção adjacente ou Ctrl (Windows) / Comando (Mac OS)para uma seleção não adjacente.

Enviar mensagem: Este botão permite enviar uma mensagem aos usuários 4D selecionados na janela. Se nenhumusuário 4D está selecionado, o botão se desativa. Ao fazer clique neste botão, aparece uma caixa de diálogo que lhe permite introduzir a mensagem. A caixa de diálogoindica o número de usuários que receberão a mensagem:

A mensagem será mostrada em forma de alerta nas máquinas clientes:

Visualizar processos: Este botão permite visualizar diretamente os processos de usuário selecionado na páginaProcesso da janela de administração. Ao fazer clique no botão, 4D Server passa para a página Processos e introduzos nomes de usuários selecionados na área de pesquisar/filtrar desta página. Para maior informação, consulte adescrição desta página.Desconectar: Este botão pode ser utilizado para forçar a desconexão dos usuários selecionados. Quando você faz clique neste botão, aparece uma caixa de diálogo de alerta que lhe permite confirmar ou anular aoperação.

Nota: Pode também desconectar diretamente os usuários selecionados sem mostrar a caixa de diálogo de confirmação:para fazer isto, pressione Alt (Windows) ou Opção (Mac OS) enquanto pressiona o botão Desconectar.

- 70 -

Page 71: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Processos

A página Processos lista os processos em execução:

O botão "Processos" indica entre parênteses o número total de processos em execução na base (este número não leva emconsideração os possíveis filtros de visualização aplicados a janela, nem ao estado da opção Mostrar os processos porgrupos).

Pode mudar a ordem das colunas simplesmente arrastando e soltando as áreas de cabeçalho das colunas. Também podeordenar a lista dos valores de uma coluna fazendo clique em seu cabeçalho.Como a Página Usuários, esta página contém uma área de pesquisa/filtro dinâmica, que permite reduzir o número delinhas mostradas na lista que corresponda o texto introduzido na área de pesquisa. A pesquisa/filtro se realiza nas colunasSessão e Nome de processo.

Também existem três botões de atalhos que permitem filtrar por tipo os processos mostrados na janela:

Processos de usuário: processos gerados por e para as sessões usuário. Estes processos estão precedidos por umícone em forma de pessoa.Processos 4D: processos gerados pelo motor de 4D Server. Estes processos estão precedidos por um ícone emformato de roda serrilhada.Processos livres: processos inativos mas que são conservados temporariamente e que podem ser reutilizados emqualquer momento. Este mecanismo otimiza a reatividade de 4D Server. Estes processos estão precedidos por umícone cinza em forma de pessoa.

A opção Mostrar os processos por grupos permite reagrupar os processos internos de 4D Server assim como osprocessos cliente, para maior legibilidade. Quando seleciona esta opção:

- 71 -

Page 72: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Os processos clientes 4D "twinned" (Processos cliente 4D principal e Processos base 4D client, ver o parágrafo “Tipode processo”) se juntam em um só,É criado um grupo "Administradores de tarefas"; o qual inclui os processos internos dedicados a repartição dastarefas (Shared balancer, Net session manager, Exclusive pool worker),É criado o grupo "Gerenciamento de clientes"; o qual inclui os diferentes processos internos clientes.

A área inferior da janela permite mostrar a representação gráfica da atividade dos processos selecionados:

Nota: Pode selecionar várias linhas pressionando a tecla Shift para uma seleção adjacente ou Ctrl (Windows) / Comando(Mac OS) para uma não adjacente.A atividade do processo é a porcentagem de tempo que 4D Server tem dado a este processo (radio). Como nas versões anteriores de 4D Server, a janela oferece a seguinte informação para cada processo:

Tipo de processo (ver a continuação),Sessão (vazia no caso de um processo 4D e nome de usuário 4D no caso de um processo usuário),Nome do processo,Número do processo (tal como devolve a função New process por exemplo). O número do processo é o númeroatribuído pelo servidor. No caso de um processo global, este número pode ser diferente do assinalado no computadorcliente.Estado atual do processo,Tempos (em segundos) de execução do processo desde sua criação,Porcentagem de tempo que 4D Server deu a este processo (radio).

Tipo de processo

Cada processo está identificado por um ícone e um tipo. A cor e a forma do ícone indica o tipo de processo:Aplicação servidorSQL ServerDB4D Server (database engine)Web ServerSOAP ServerProcesso cliente 4D protegido (processo de desenvolvimento de um 4D conectado)Processo 4D client principal (processo principal de 4D conectado). Processo colaborativo, equivalente no servidordo processo criado na máquina cliente)cliente 4D processo de banco (processo pararelo a um4D cliente processo. Processo preemptivo responsável porcontrolar o processo principal 4D)Spare process (former or future "4D client database process")SQL server worker processHTTP server worker process4D client process (processo executado em connected 4D)Stored procedure (processo lançado por connected 4D e executado no servidor)Web método (lançado por 4DACTION for example)SOAP metodo (lançado por a Web Service)LoggerTCP connection listenerTCP gerenciamento de sessãoOutros processosWorker process (cooperativo)Stored procedure (processo preemptivo)Worker process (preemptivo)

Nota: Um processo cliente 4D principal e seu processo base 4D client "twinned" são agrupados quando a opção Mostraros processos por grupos está selecionada.

Botões de administração

A página tem cinco botões de controle que atuam nos processos selecionados. Observe que somente se pode atuar nosprocessos usuário.

- 72 -

Page 73: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Abortar processo: permite abortar os processos selecionados. Ao fazer clique neste botão, aparece uma caixa dediálogo de alerta de maneira que possa confirmar ou cancelar a operação.Nota: também pode abortar diretamente os processos selecionados sem mostrar a caixa de diálogo de confirmaçãopressionando a tecla Alt (Windows) ou Opção (Mac OS) enquanto faz clique neste botão.Pausar processo: permite colocar pausa aos processos selecionados.Ativar processo: permite reativar ele ou os processos selecionados. Os processos devem ter sido suspendidosanteriormente (utilizando o botão Parar ou por programação); caso contrário, este botão não tem nenhum efeito. Depurar processo: permite abrir no computador servidor uma ou várias janelas do depurador para os processosselecionados. Ao fazer clique neste botão, aparece uma caixa de diálogo de maneira que pode confirmar ou cancelara operação. Observe que a janela do depurador não mostra quando o código 4D é executado no computador servidor (porexemplo dentro de um trigger ou da execução de um método com o atributo "Execute on Server").Nota: também pode depurar diretamente um processo, sem mostrar a caixa de diálogo de confirmação, pressionandoa tecla Alt (Windows) ou Opção (Mac OS) enquanto realiza clique neste botão.Olhar usuários: permite mostrar na página Usuários todos os processos dos usuários selecionados. Este botão estáativo quando pelo menos um processo usuário está selecionado.

- 73 -

Page 74: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Manutenção

A página Manutenção oferece informação sobre o funcionamento atual da base. Também oferece acesso às funções demanutenção básicas:

Última verificação: Esta área indica a data, hora e o estado da última verificação de dados realizada na base. Paramaiores informações sobre a verificação de dados, consulte o manual de Desenho. O botão Verificar registros e índices permite lançar diretamente a operação de verificação sem interromper oservidor. Observe que o servidor pode diminuir durante a operação.São verificados todos os registros e índices da base. Se você quiser definir a verificação ou ter opções adicionais,você precisará do Centro de segurança e manutenção (CSM). Após verificação, ele gera um relatório de arquivos no formato XML e HTML no servidor na pasta Logs localizado aolado da estrutura do arquivo base. O botão Ver relatório (chamado Baixar relatório se a operação for realizadadesde uma máquina cliente) permite exibir o arquivo no seu navegador.Última compactação: Esta área indica a data, hora e o estado da última compactação do banco de dados. Paraobter mais informações sobre o processo de compactação de dados, consulte o manual de Desenho. O botão Compactar dados... permite lançar diretamente uma operação de compactação de dados. Esta operaçãorequer parar o servidor: ao clicar neste botão, aparece a caixa de diálogo de fechamento da base 4D Server,permitindo que você escolha o modo de interrupção da operação:

- 74 -

Page 75: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Para maior informação sobre esta caixa de diálogo, consulte a seção Sair de 4D Server.Após a interrupção da base, 4D Server executa uma compactação padrão dos dados da base. Se você quer opçõesadicionais, você precisará do Centro de segurança e manutenção (CSM).Quando termine a compactação, 4D Server reiniciará automaticamente a base. Os usuários 4D podem se reconectar.Nota: Se o pedido de compactação é realizado de um computador 4D cliente remoto, esta máquina é reconectadaautomaticamente pelo 4D Server.Um arquivo de relatório é gerado nos formatos XML e HTML no servidor na pasta Logs localizado ao lado da estrutura doarquivo base. O botão Ver relatório (chamado Baixar relatório se a operação é feita de um computador cliente) permiteque você mostre o arquivo no seu navegador.

Duração de funcionamento: esta área indica a duração do funcionamento do servidor desde a última vez que seiniciou (dias, horas e minutos). O botão Reiniciar o servidor... permite reiniciar imediatamente o servidor. Ao fazer clique neste botão, aparece acaixa de diálogo de fechamento da base 4D Server de modo que possa escolher o modo de interromper a operação(ver a seção Sair de 4D Server). Depois de reiniciar, 4D Server faz o relançamento automaticamente da base. Osusuários 4D podem ser reconectados. Nota: se a petição de reinicio se realiza desde uma máquina 4D client remota, esta máquina se reconectaautomaticamente por 4D Server.Último backup: Esta área indica a data e hora do último backup da base e fornece informações sobre o próximobackup automático agendado (se houver). Os backups automáticos são configurados usando a página"periodicidade" das preferências de base. - Próximo backup – data e hora do próximo backup automático. - Espaço necessário: espaço estimado para o backup. O tamanho atual do arquivo de backup pode variar de acordocom os parâmetros (compressão, etc.) e de acordo as variações do arquivo de dados. - Espaço disponível: espaço disponível no volume do backup. O botão Backup da base permite iniciar o backup da base imediatamente usando os parâmetros atuais de backup(arquivos salvados, localização dos arquivos, opções, etc.). Você pode ver esses parâmetros clicando no botãoPreferências.... Durante um backup no servidor, as máquinas clientes são "bloqueadas" (mas não desligadas) e nãoé possível conectar novos clientes.Petições e depuração: Esta área indica a duração do registro do histórico de petições e dos eventos de depuraçãoquando ele estiver ativo.

O arquivo de histórico de petições guarda diferente informação sobre os pedidos recebidos pelo servidor(excluindo as solicitações da web): hora, número de processo, usuário, o tamanho da solicitação, duração doprocesso, etc., que podem ser usados para analisar a operação do servidor. Esse arquivo é denominado4DRequestsLog_X (onde X é o número sequencial do arquivo) e é armazenado na pasta Logs da base. Umavez que o arquivo chegar a um tamanho de 10 MB, fecha e gera um novo arquivo, com um número sequencialaumentado.O arquivo de eventos de depuração armazena cada execução de um método, comando 4D ou comando de plug-in em um arquivo chamado "4DDebugLog.txt", localizado automaticamente na pasta Registros da base, junto aoarquivo de estrutura. Cada evento se registra de maneira sistemática no arquivo antes de sua execução, o quegarante sua presença no arquivo inclusive se a aplicação é fechada inesperadamente. Tenha em conta que estearquivo é apagado e reescreve cada vez que é iniciada a aplicação. Pode configurar este arquivo com ocomando SET DATABASE PARAMETER.

O botão Iniciar o histórico de petições permite gerar um novo arquivo e ativar o modo de registro dos pedidos.Como isto pode prejudicar significativamente o desempenho do servidor, ele é reservado para a fase dedesenvolvimento do aplicativo. Uma vez ativado o registro de petições, o título do botão muda para Parar o histórico de petições, assim pode pararo registro das solicitações a qualquer momento. Lembre-se de que iniciar o histórico de solicitações após interrompê-lo "apaga" o arquivo anterior.

- 75 -

Page 76: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Nota: É possível iniciar e parar o histórico de petições por programação através do comando SET DATABASEPARAMETER.O botão Ver relatório (chamado Baixar relatório se a operação é realizada desde um computador cliente) lhe permite abriruma janela sistema mostrando o arquivo de histórico das petições.

- 76 -

Page 77: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Servidor de Aplicações

A página Servidor de aplicações reúne a informação relativa ao banco de dados publicado por 4D Server e permiteadministrar esta publicação:

Informação do estado

A parte superior da página oferece informação sobre o estado atual do servidor de aplicações de 4D Server.

Estado: Iniciado ou Parado.Hora de inicio: data e hora de lançamento da base servidor. Esta data corresponde a abertura da base por 4D Server.Duração de funcionamento: tempo decorrido desde a última abertura da base.

Botão Aceitar/Rejeitar novas conexões

Este botão alterna entre dois estados e permite administrar o acesso dos novos computadores clientes a aplicaçãoservidor.

Por padrão, quando é publicada a base:O botão se chama "Rejeitar novas conexões."Novos clientes podem ser conectados livremente (dentro dos limites das conexões permitidas pela licença).O nome da base é publicada na caixa de diálogo de conexão (se a opção "Publicar o nome da base ao início nodiálogo de conexão" está selecionada nas Preferências).

Se fizer clique no botão Rejeitar novas conexões:O título do botão mudar a "Aceitar novas conexões."Nenhum novo cliente pode ser conectado.O nome da base não é mais mostrado na caixa de diálogo de conexão.Os clientes conectados não se desconectam e podem continuar trabalhando normalmente.Se você fizer clique no botão Aceitar novas conexões, a base volta a seu estado por padrão.

- 77 -

Page 78: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Esta característica permite por exemplo a um administrador executar várias operações de manutenção (verificação,compactação, etc) apenas depois de iniciar o servidor. Se o administrador utiliza uma conexão cliente, pode ter certeza deser o único que modifica os dados. Também é possível usar essa função na preparação de uma operação de manutençãoque requer que nenhum computador cliente esteja conectado.

Configuração

Esta área oferece informação sobre o banco de dados 4D publicado pelo servidor: nome e localização dos arquivos deestrutura e de dados e nome do arquivo de histórico da base. Pode fazer clique no nome do arquivo de estrutura ou dedados com a finalidade de visualizar seu caminho de acesso completo:

O campo "Modo" indica o modo de execução atual da base: compilado ou interpretado.A parte inferior da área indica os parâmetros de configuração do servidor (lançado como serviço, porto e direção IP) e aativação do SSL para as conexões cliente servidor (não preocupa as conexões SQL ou Web).

Memória

Esta área indica a memória cachê total (parâmetro definido nas preferências da base) e a memória cachê utilizada(localização dinâmica por 4D Server em função das necessidades).

Conexões máximas

"Máximo:" indica o número máximo de conexões clientes simultâneas autorizadas pelo servidor da aplicação. Este valordepende da licença instalada no computador servidor."Used:" indica o número de conexões que atualmente estão sendo utilizadas.

- 78 -

Page 79: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Servidor SQL

A página Servidor SQL agrupa a informação relativa ao servidor SQL integrado de 4D Server. Isso também inclui um botãoque permite controlar a ativação do servidor:

Informação do estado

A parte superior da página oferece informação sobre o estado atual do servidor SQL de 4D Server.

Estado: Iniciado ou ParadoHora de inicio: data e hora de lançamento da base do servidor SQL. Esta valor pode diferir do valor do servidor daaplicação se o lançamento do servidor SQL não se realiza "ao início."Tempo de funcionamento: tempo decorrido desde a última iniciação do servidor SQL.

Botão Iniciar/ Parar o servidor SQL

Este botão muda e permite controlar a ativação do servidor SQL de 4D Server.

Quando o estado do servidor SQL é "Iniciado," o botão se chama Parar o servidor SQL. Se você fizer clique nestebotão, o servidor SQL de 4D Server é detido imediatamente; não responde mais as petições SQL externas recebidasno porto TCP designado.Quando o estado do servidor SQL é "Detido," o botão se chama Iniciar o servidor SQL. Se você faz clique nestebotão, o servidor SQL de 4D Server inicia imediatamente; responde as petições SQL externas recebidas no portoTCP designado. Você necessitará uma licença adequada para poder usar o servidor SQL de 4D.

Nota: O servidor SQL também pode ser lançado automaticamente ao inicio da aplicação (opção das Preferências) ou porprogramação.

Configuração

- 79 -

Page 80: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Esta área fornece informações sobre os parâmetros de configurações do servidor SQL: lançamento automático no início,endereço IP de escuta, porto TCP (19812 por padrão) e ativação do SSL para as conexões SQL (não sobre conexões 4Dnem Web).

Estes parâmetros podem ser alterados por meio das Preferências de 4D.

Conexões

Número de conexões SQL atualmente abertas em 4D Server.

Conexões máximas

Número máximo de conexões SQL simultâneas autorizadas. Este valor depende da licença instalada no computadorservidor.

- 80 -

Page 81: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Servidor HTTP

A página Servidor HTTP agrupa a informação relativa ao funcionamento do servidor web e do servidor SOAP de 4D Server.O servidor web permite publicar conteúdo web tal como páginas HTML ou imagens para os navegadores web. O servidorSOAP administra a publicação dos serviços web. Estes dois servidores são apoiados no servidor HTTP interno de 4DServer. A página contém igualmente botões que permitem controlar a ativação dos servidores:

Informação do estado

A parte superior da página oferece informação sobre o estado atual do servidor HTTP de 4D Server.

Estado: Iniciado ou ParadoHora de inicio: data e hora de lançamento da base do servidor HTTP. Este valor pode diferir do valor do servidor deaplicação se o lançamento do servidor HTTP não se realiza "ao início."Tempo de atividade: tempo decorrido desde a última iniciação do servidor HTTP.Número de visitas HTTP: número de visitas HTTP (nível baixo) recebidos pelo servidor HTTP desde seu início.

Botão Iniciar/ Parar o servidor HTTP

Este botão muda e permite controlar a ativação do servidor HTTP de 4D Server.

Quando o estado do servidor HTTP é "Iniciado," o botão se chama Parar o servidor HTTP. Se você fizer cliqueneste botão, o servidor HTTP de 4D Server é detido imediatamente; o servidor web e o servidor SOAP nãoaceitam mais solicitações.Quando o estado do servidor HTTP é "Detido," o botão se chama Iniciar o servidor HTTP. Se você fizer cliqueneste botão, o servidor HTTP de 4D Server inicia imediatamente; são aceitas as petições web e as petiçõesSOAP (observe que é possível parar separadamente o servidor SOAP, ver o parágrafo "Informação SOAP").

Notas:

- 81 -

Page 82: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Deve ter uma licença apropriada para poder iniciar o servidor HTTP.O servidor HTTP também pode ser lançado automaticamente ao inicio da aplicação (opção das Preferências) oupor programação.

Informação Web

Esta área oferece informação específica sobre o servidor web de 4D Server.

Petições web: Aceitadas ou Rejeitadas. Esta informação indica se o servidor web está ativo. Como o servidor webestá associado diretamente ao servidor HTTP, as petições web são aceitas quando se inicia o servidor HTTP e érejeitado quando se detém.Conexões máximas: número máximo de conexões web autorizadas. Este valor depende da licença instalada nocomputador servidor.

Informação SOAP

Esta área oferece informação específica relativa ao servidor SOAP de 4D Server e inclui um botão de controle.

Petições SOAP: Aceitadas ou Rejeitadas. Esta informação indica se o servidor SOAP está ativo. Para que seaceitem as petições SOAP, deve ser iniciado o servidor HTTP e o servidor SOAP deve aceitar explicitamente aspetições (ver o botão Aceitar/Rejeitar).Conexões máximas: número máximo de conexões SOAP autorizadas. Este valor depende da licença instalada nocomputador servidor.Botão Aceitar/Rejeitar as petições SOAP: este botão muda e permite controlar a ativação do servidor SOAP de 4DServer. Este botão modifica o valor da opção Autorizar petições SOAP na página "Serviços web/SOAP" dasPreferências (e vice versa).Se fizer clique no botão Aceitar petições SOAP e o servidor HTTP se detém, 4D inicia ele automaticamente.

Configuração servidor HTTP

Esta área oferece informação sobre os parâmetros de configuração e o funcionamento do servidor HTTP:

Lançamento automático ao iniciar: parâmetro definido através das Preferências de 4D Server.Processos servidor HTTP (utilizado/total): número de processos HTTP criados no servidor (número atual de processos/ total de todos os processos criados).Memória cachê (utilizada/total): tamanho da memória cachê do servidor HTTP, quando é ativado (tamanho ocupadorealmente pela cachê / tamanho máximo teórico assinalado a cachê nas Preferências).Escutando direção IP, Porto TCP (80 por padrão), SSL ativo para as conexões HTTP (não convém as conexões 4Dnem SQL) e Porto HTTPS utilizado: parâmetros de configuração atuais do servidor HTTP, especificados na páginaWeb/Configuração das Preferências (ver a seção no manual de Linguagem de 4D).Informação sobre o arquivo de histórico: localização, formato e data do próximo backup automático de histórico doservidor HTTP (arquivo logweb.txt).

- 82 -

Page 83: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Página Monitor tempo real

A página Monitor tempo real permite supervisionar em tempo real o progresso das operações "longas" realizadas pelaaplicação. Estas operações são, por exemplo, pesquisas sequenciais, execução de fórmulas, etc.:

Esta página está disponível na janela de administração da equipe servidor e também em uma equipe 4D remota. No casode uma máquina remota, a página mostra os dados das operações realizadas na equipe servidor.

Uma linha se adiciona para cada operação longa realizada sobre os dados. Esta linha desaparece automaticamentequando finaliza a operação (pode selecionar a opção Mostrar operações pelo menos 5 segundos para conservar emtela as operações executadas rapidamente, ver mais a frente). Se proporciona a seguinte informação para cada linha:

Hora inicial: hora de início da operação em formato: "dd/mm/aaaa - hh:mm:ss"Duração (ms): duração em milissegundos da operação em cursoInformação: título da operação.Detalhes: esta área mostra informação detalhada a qual pode variar de acordo ao tipo de operação selecionada.Mais especificamente:

Criada em: indica se a operação resulta de uma ação cliente (Criada em client) ou se foi iniciada explicitamenteno servidor via um procedimento armazenado ou a opção "Executar no servidor" (Criada no servidor).Detalhes da operação: descreve o tipo de operação assim como também (para as operações de pesquisa) oplano de pesquisa.Sub-operações (se existir): operações dependentes da operação selecionada (por exemplo, eliminação deregistros relacionados antes da eliminação de um registro pai).Detalhes do processo: informação adicional concernente a tabela, o campo, o processo ou o clientedisponíveis, dependendo do tipo de operação.

Nota: a página de observação em tempo real utiliza o comando [#cmd id="1277"/] internamente. Para maiorinformação, consulte a descrição deste comando.A página está ativa e atualizada permanentemente tão rápido como é mostrado. Cabe dar o sinal que seu funcionamentopode desacelerar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma dasseguintes maneiras:

ao fazer clique no botão Pausa,clique na lista,pressionando a barra de espaço.

Quando a página está em pausa, aparecerá uma mensagem "SUSPENDIDA" e a etiqueta do botão muda a Reiniciar.

- 83 -

Page 84: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Pode reiniciar a monitoração das operações mediante a realização da mesma ação que para fazer uma pausa.Nota: A monitoração em tempo real das operações também está disponível utilizando um comando, GET ACTIVITYSNAPSHOT, que contém opções adicionais.

Modo avançado

A página RTM pode mostrar informação adicional, se for necessário, para cada operação na lista.Para acessar ao modo avançado para uma operação, pressione a tecla Maiús e selecione a operação desejada. Toda ainformação disponível, será mostrada na área "Detalhes do processo" sem nenhum tipo de filtro (como os devolvidos pelocomando GET ACTIVITY SNAPSHOT). A informação disponível depende da operação selecionada.Aqui está um exemplo da informação que é mostrada no modo estandarte:

Em modo avançado (Maiús+ Clique na operação), mostra informação adicional:

Botão instantâneo

O botão Instantâneo lhe permite copiar na prancheta todas as operações que aparecem no painel RTM, assim como seusdetalhes relacionados (processo e info sub operação):

Mostrar operações por pelo menos 5 segundos

Se marcar a opção Mostrar operações pelo menos 5 segundos, toda operação listada será mostrada na página durantepelo menos cinco segundos, inclusive depois de que sua execução tenha finalizado:

Esta funcionalidade é útil para obter informação sobre as operações que se executam muito rápido.

- 84 -

Page 85: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Métodos banco de dados 4D Server

Método banco de dados On Server Startup Método banco de dados On Server Shutdown Método banco de dados On Server Open Connection Método banco de dados On Server Close Connection

- 85 -

Page 86: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Método banco de dados On Server Startup

Método banco de dados On Server Startup Este comando não requer parâmetros

O Método banco de dados On Server Startup é chamado uma vez na máquina servidor quando abre uma base com 4DServer. O Método banco de dados On Server Startup NÃO é executado em um ambiente diferente a 4D Server.O Método banco de dados On Server Startup é a localização ideal para:

Inicializar as variáveis interprocesso utilizadas durante toda a sessão 4D Server.Iniciar automaticamente os Procedimentos armazenados ao abrir a base.Carregar preferências ou parâmetros guardados durante a sessão anterior de 4D Server.Evitar a abertura da base se não se cumpre uma condição (ausência de recursos sistema) para uma chamadaexplícita a QUIT 4D.Realizar outras ações que queira fazer automaticamente cada vez que seja aberta a base.

Para executar código automaticamente na máquina cliente quando um 4D remoto se conecta ao servidor, utilize o Métodobanco de dados On Server Startup.Nota: O Método banco de dados On Server Startup se executa de forma atômica, o que significa que nenhum 4D remotopode ser conectado enquanto a execução do método não tenha terminado.

- 86 -

Page 87: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Método banco de dados On Server Shutdown

Método banco de dados On Server Shutdown Este comando não requer parâmetros

O Método banco de dados On Server Shutdown é chamado uma vez na máquina servidor quando a base atual éfechada em 4D Server. O Método banco de dados On Server Shutdown NÃO é chamado por outro ambiente 4Ddiferente de 4D Server.Para fechar a base atual no servidor, pode selecionar o comando de menu Fechar a base... no servidor. Também podeescolher o comando Sair ou chamar ao comando QUIT 4D dentro de um procedimento armazenado executado no servidor.Quando se inicia o processo de fechamento da base, 4D realiza as seguintes ações:

Se não há um Método banco de dados On Server Shutdown, 4D Server aborta cada processo em execução umpor um, sem distinção.Se existe um Método banco de dados On Server Shutdown, 4D Server executa este método em um novoprocesso local. Portanto pode utilizar este método base para informar os outros processos, via comunicaçãointerprocesso, que devem deter sua execução. Note que 4D Server sairá finalmente, o Método banco de dados OnServer Shutdown pode realizar todas as operações de limpeza ou fechamento que você queira, mas não poderecusar a sair e em algum momento terminará.

O Método banco de dados On Server Shutdown é o lugar ideal para:

Deter os procedimentos armazenados lançados automaticamente quando é aberta a base.Guardar (localmente, em disco) as preferências ou os parâmetros a reutilizar ao inicio da sessão seguinte no Métodobanco de dados On Server Startup.Realizar qualquer outra ação que queira ativar automaticamente cada vez que sair da base.

Importante: Se utiliza o Método banco de dados On Server Shutdown para fechar os procedimentos armazenados,lembre que o servidor sai logo que se executa o Método banco de dados On Server Shutdown (e não os procedimentosarmazenados). Se os procedimentos armazenados ainda estão correndo neste momento, serão abortados. Portanto, sedeseja estar seguro de que os procedimentos armazenados se executem completamente antes de ser abortados peloservidor, o Método banco de dados On Server Shutdown deve indicar aos procedimentos armazenados que devemterminar sua execução (por exemplo, utilizando uma variável interprocesso) e deve permitir a eles fechar (por meio de umlaço de x segundos ou outra variável interprocesso).Se deseja que o código se execute automaticamente em uma máquina cliente quando um 4D remoto deixa de conectar-seao servidor, utilize o Método banco de dados On Exit.

- 87 -

Page 88: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Método banco de dados On Server Open Connection

$1, $2, $3 -> Método banco de dados On Server Open Connection -> $0 Parâmetro Tipo Descrição$1 Inteiro longo Número de usuário utilizado internamente por 4D Server para identificar os usuários$2 Inteiro longo Número de conexão utilizado internamente por 4D Server para identificar uma conexão$3 Inteiro longo Obsoleto: devolve sempre 0 (mas deve ser declarado)$0 Inteiro longo 0 se omitido = conexão aceita; outro valor = conexão rejeitada

Quando é chamado o método base On Server Open Connection?

O Método banco de dados On Server Open Connection é chamado uma vez no equipo servidor cada vez que umequipo remoto 4D inicia um processo de conexão. O Método banco de dados On Server Open Connection NÃO éinvocado por outro entorno 4D diferente de 4D Server.O Método banco de dados On Server Open Connection é chamado cada vez que:

um 4D remoto se conecta (inicio do processo principal)um 4D remoto abre o entorno Desenho (inicio do processo de Desenho)um 4D remoto inicia um processo global, (cujo nome começa por "$") o qual necessita da criação de um processocooperativo no servidor (*). Este processo pode ser criado utilizando o comando New process, um comando de menuou caixa de diálogo "Executar um método".

Em cada caso com um 4D remoto, três processos são iniciados. Um na máquina cliente e outros dois no equipo servidor.Na máquina cliente, o processo executa o código e envia as petições a 4D Server. No equipo servidor, o processo 4DClient mantém o entorno da base de dados do processo cliente (as seleções atuais e o bloqueio de registros para oprocesso usuário) e responde aos pedidos enviadas pelo processo executado na máquina cliente. O processo base 4DClient está a cargo de controlar o processo 4D Client correspondente.(*) A partir de 4D v13, por razões de otimização os processos servidores (processo apropriado para os acessos ao motorda base e processo cooperativo para o acesso à linguagem) só são criadas durante a execução do código do lado docliente. Por exemplo, estes são os detalhes de uma sequencia de código 4D que se executa em um novo processo cliente:

// o processo global começa sem um novo processo no servidor, como um processo local. CREATE RECORD([Table_1]) [Table_1])field1_1:="Hello world" SAVE RECORD([Table_1]) // criação aqui do processo apropriado no servidor

Como se chama ao método base On Server Open Connection?

O Método banco de dados On Server Open Connection é executado no equipo servidor no processo 4D Client queprovocou a chamada do método.Por exemplo, se um 4D remoto se conecta a uma base 4D Server interpretada, é iniciado o processo usuário, o processode desenho e o processo de registro do cliente (por defeito). O Método banco de dados On Server Open Connection seexecuta três vezes seguidas. A primeira vez dentro do processo principal, a segunda vez no processo de inscrição do clientee a terceira vez no processo de desenhoo. Se os três processos são respectivamente o sexto, sétimo e oitavo processo ainiciar-se no equipo servidor, e é chamado Current process desde o Método banco de dados On Server OpenConnection, a primeira vez Current process devolve 6, a segunda vez 7 e a terceira 8.Observe que o Método banco de dados On Server Open Connection se executa no equipo servidor, ao interior doprocesso 4D Client no servidor, independente do processo executado no cliente. Além disso, no momento em que se invocao método, o processo 4D Client ainda não foi nomeado (PROCESS PROPERTIES não devolverá neste momento o nomedo processo 4D Client).O Método banco de dados On Server Open Connection não têm acesso à tabela das variáveis processo do processoexecutado no client. Esta tabela reside no equipo client, não no equipo servidor.Quando o Método banco de dados On Server Open Connection acede a uma variável processo, trabalha com umatabela de variáveis processo particular, criada dinamicamente pelo processo 4D Client.4D Server passa três parâmetros de tipo Inteiro longo ao Método banco de dados On Server Open Connection eespera um resultado Inteiro longo. O método deve portanto ser declarado explicitamente com três parâmetros Inteiro longoassim também como com um resultado de função Inteiro longo:

- 88 -

Page 89: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

C_LONGINT($0;$1;$2;$3)

Se não devolve um valor em $0, por conseguinte deixa a variável indefinida ou inicializada em zero, 4D Server consideraque o método base aceita a conexão. Se não é aceitada a conexão, devolve um valor não nulo em $0.Esta tabela detalha a informação oferecida pelos três parâmetros passados no método base:

Parâmetro Descrição$1 Número de usuário utilizado internamente por 4D Server para identificá-los$2 Número de conexão utilizado internamente por 4D Server para identificá-la$3 Obsoleto: sempre devolve 0 mas deve ser declarado

Estes números de referencia não são utilizados diretamente como fontes de informação a passar, por exemplo, comoparâmetros a um comando 4D. No entanto, oferecem uma maneira particular de identificar um processo 4D Client entre oMétodo banco de dados On Server Open Connection e o On Server Close Connection database method. Acombinação destes valores é único no momento de uma seção 4D Server. Ao guardar esta informação em uma tabela ouem um array entre processos, os dois métodos base podem trocar informações. No exemplo ao final desta sessão, os doismétodos base utilizam esta informação para armazenar a data e hora de inicio e fim de uma conexão no mesmo registro deuma tabela.

Exemplo 1

O seguinte exemplo mostra como manter um histórico das conexões a base de dados utilizando o Método banco dedados On Server Open Connection e utilizando o On Server Close Connection database method. A tabela [ServerLog] (mostrada a continuação) se utiliza para fazer seguimento aos processos de conexão:

A informação armazenada nesta tabela é administrada pelo Método banco de dados On Server Open Connection e oOn Server Close Connection database method listado a continuação:

` Método base On Server Open Connection C_LONGINT($0;$1;$2;$3) ` Criar um registro [Server Log] CREATE RECORD([Server Log]) [Server Log]Log ID:=Sequence number([Server Log]) ` Guardar o histórico Data e Hora [Server Log]Log Date:=Current date [Server Log]Log Time:=Current time ` Guarda a informação de conexão [Server Log]User ID:=$1 [Server Log]Connection ID:=$2 SAVE RECORD([Server Log]) ` Não devolve erro de maneira que a conexão pode continuar $0:=0 ` Método base On Server Close Connection C_LONGINT($1;$2;$3) ` Recuperar o registro [Server Log] QUERY([Server Log];[Server Log]User ID=$1;*) QUERY([Server Log];&;[Server Log]Connection ID=$2;*) QUERY([Server Log];&;[Server Log]Process ID=0) ` Guardar data e hora de desconexão [Server Log]Exit Date:=Current date [Server Log]Exit Time:=Current time

- 89 -

Page 90: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

` Guardar informação processo [Server Log]Process ID:=Current process PROCESS PROPERTIES([Server Log]Process ID;$vsProcName;$vlProcState;$vlProcTime) [Server Log]Process Name:=$vsProcName SAVE RECORD([Server Log])

Estas são algumas entradas em [Server Log] mostrando várias conexões remotas:

Exemplo 2

O seguinte exemplo evita uma nova conexão entre as 2 e 4 A.M.

` Método base On Server Open Connection C_LONGINT($0;$1;$2;$3) If((?02:00:00?<=Current time)&(Current time<?04:00:00?)) $0:=22000 Else $0:=0 End if

- 90 -

Page 91: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Método banco de dados On Server Close Connection

$1, $2, $3 -> Método banco de dados On Server Close Connection Parâmetro Tipo Descrição$1 Inteiro longo Número de usuário utilizado internamente por 4D Server para identificar usuários$2 Inteiro longo Número de conexão utilizado internamente por 4D Server para identificar uma conexão$3 Inteiro longo Obsoleto: devolve sempre 0 mas deve ser declarado

Descrição

O Método banco de dados On Server Close Connection é chamado no computador servidor cada vez que termina umprocesso 4D Client.Como para o On Server Open Connection database method, 4D Server passa três parâmetros de tipo inteiro longo aoMétodo banco de dados On Server Close Connection. Por outra parte, 4D Server não espera um resultado em retorno.O método deve conter a declaração explícita de três parâmetros Inteiro longo:

C_LONGINT($1;$2;$3)

Esta tabela detalha a informação oferecida pelos três parâmetros passados ao método base:Parâmetro Descrição$1 Número de usuário utilizado internamente por 4D Server para identificar usuários$2 Número de conexão utilizado internamente por 4D Server para identificar uma conexão$3 Obsoleto: devolve sempre 0 mas deve ser declarado

O Método banco de dados On Server Close Connection é o inverso exato do On Server Open Connection databasemethod. Para maior informação e uma descrição deste método base, assim como para a descrição dos processos 4DClient, ver a descrição deste método base.

Exemplo

Ver o primeiro exemplo para On Server Open Connection database method.

- 91 -

Page 92: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Uso de um 4D Remoto

Conexão a um banco de dados 4D Server Administração de máquinas remotas Compilação de máquinas remotas

- 92 -

Page 93: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Conexão a um banco de dados 4D Server

Conectando com uma aplicação remota

Há três maneiras de se conectar a um banco de dados 4D Server via um 4D remoto:

Usar a caixa de diálogo da conexãoUsar o menu Abrir Banco RecenteUsar um atalho 4DLink contendo os parâmetros de acesso ao Banco de Dados.

Usar a caixa de diálogo de conexão

Para mostrar a caixa de diálogo de conexão 4D Server, primeiro inicie uma aplicação 4D. Você pode usar o comando Abrir no menu Arquivo (ou o botão correspondente na barra de ferramentas 4D) paraselecionar o modo de abertura do banco de dados 4D:

Selecione o comando Abrir>Banco Remoto...A caixa de diálogo de conexão 4D Server aparece. Essa caixa de diálogo tem três páginas e poder ser acessada atravésdas seguintes abas: Recente, TCP/IP e Personalizado:

- 93 -

Page 94: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Se você selecionar a opção Exibir essa janela na próxima vez, essa caixa de diálogo aparecerá automaticamente napróxima vez que uma aplicação 4D iniciar. Nota: Você também pode iniciar essa caixa de diálogo ao selecionar o link Conectar ao 4D Server no Assistente de BoasVindas..

Aba “Disponível”

O 4D Server inclui um sistema de publicação TCP/IP integrado que publica automaticamente o nome do banco de dados 4DServer disponíveis na rede. Esses nomes estão listados na aba TCP/IP da caixa de diálogo de conexão.A lista está organizada por ordem de surgimento e é atualizada automaticamente. Para conectar-se a um servidor dessalista, dê um duplo-clique no nome ou o selecione e clique no botão OK.Notas:

Um acento circunflexo (^) aparece antes do nome dos bancos de dados publicados com a opção de encriptografado.Para maiores informações, consulte a seção Criptografar conexões cliente-servidor. É possível evitar a publicação dinâmica do banco de dados na rede (veja a seção Preferências de publicação).Nesse caso, a conexão só pode ser realizada manualmente na aba "Personalizado".

- 94 -

Page 95: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Aba “Recente”

A aba Recente memoriza a listagem de todos os 4D servers usados recentemente. A lista está ordenada alfabeticamente.Para conectar-se a um servidor dessa lista, dê um duplo-clique no nome ou selecione o servidor e clique no botão OK..

Aba “Personalizado”

A aba Personalizado permite designar um servidor publicado na rede usando seu endereço IP e criando um nomepersonalizado.Você pode personalizar o sistema de publicação TCP/IP do 4D Server de maneira que os nomes dos servidores de bancode dados não sejam publicados automaticamente na rede (veja a seção Preferências de publicação). Nesse caso, onome não aparecerá na página "TCP/IP". Entretanto, se você sabe o endereço IP do servidor de uma base de dados cujonome não está publicado, você pode entrar o endereço IP manualmente.

Nome do banco de dados: permite definir o nome do banco de dados 4D Server. Esse nome será usado na abaRecente quando se referir a esse banco de dados.Endereço de Rede: permite entrar o endereço IP da máquina onde se encontra o 4D Server. Se dois servidores

- 95 -

Page 96: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

estão sendo executados simultaneamente na mesma máquina, o endereço IP deve ser acompanhado de uma vírgula eum número de porta, por exemplo: 192.168.92.104:19814.A porta de publicação padrão do 4D Server is 19813. Esse número pode ser modificado na aplicação Preferências(veja a seção Preferências de configuração).

Nota: Se um banco de dados foi selecionado nas abas Recente ou TCP/IP no momento em que você clicou na abaPersonalizado, os dois campos mostrarão a informação correspondente.Logo que essa aba atribuir um servidor, clique no botão OK, e você se conectará ao servidor. O servidor estará listado naaba Recente.Nota: Se o banco de dados for publicado usando a opção de criptografia, você deve adicionar um acento circunflexo (^)antes do nome; do contrário a conexão será recusada. Para maiores informações, veja a seção Criptografar conexõescliente-servidor.Criptografar conexões cliente-servidor

Forçar a atualização dos recursos locais Essa opção causa a atualização periódica dos recursos locais na máquina cliente quando ela conecta. Os recursos locaissão a informação estrutural relacionada ao banco de dados que está armazenada em cada máquina cliente.

De maneira geral, a atualização dos recursos locais na máquina remota acontece automaticamente quando ela se conecta,se a estrutura do banco de dados foi modificada entre duas conexões. Na maior parte do tempo, essa opção édesnecessária. Mesmo assim, em certos casos pode ser necessário forçar a atualização.

Usar o menu Abrir banco de dados recente

O menu de comando Abrir Bancos Recentes pode ser usado para se conectar automaticamente a um banco de dados 4DServer ao qual você já se conectou previamente.Esse comando se encontra no menu Arquivo do 4D. Se você usar a aplicação 4D para abrir banco de dados locais econectar-se a banco de dados remotos, esse menu listará os dois tipos de bancos de dados. Os bancos de dados remotosestão disponíveis na parte de baixo do menu:

O endereço IP do servidor está indicado ao lado do nome do banco de dados.O comando Excluir Menu pode ser usado para limpar o menu.

Usar um arquivo 4DLink

Você pode gerar arquivos de acesso a bancos de dados contendo os parâmetros com o objetivo de automatizar esimplificar a abertura ou conexão com os bancos de dados 4D. Geralmente, um arquivo de acesso pode salvar o endereçode um servidor remoto 4D Server assim como os identificadores de conexão, assim eliminando diversas operações para ousuário. Arquivos de acesso também podem ser usados para abrir bancos de dados locais.

Criação de Arquivos Os arquivos de acesso dos bancos de dados 4D são arquivos XML que tem a extensão ".4DLink". 4D gera e usa esse tipode arquivo para construir o submenu "banco de dados recentes": um arquivo .4DLink é automaticamente gerado por 4Dquando um banco de dados local é aberto pela primeira vez ou na primeira vez em que se conecta a um servidor.Os arquivos .4DLink que são criados automaticamente por 4D estão disponíveis na pasta de preferências locais do usuário.Nessa pasta, dois diretórios são criados: Local e Remoto. A pasta Local contem os arquivos ".4DLink" que podem ser

- 96 -

Page 97: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

usados para conectar-se a bancos de dados locais, e a pasta Remoto contém os arquivos "4DLink" que podem ser usadospara conectar-se a bancos de dados remotos. As pastas de preferências locais se encontram em:

Windows 7 e posteriores: C:\Users\NomeUsuario\AppData\Roaming\4D\Favorites vXX\OS X: Users/NomeUsuario/Library/Application Support/4D/Favorites vXX/

... onde XX representa o número de versão da aplicação (por exemplo, "Favorites v14" para 4D v14).Os arquivos encontrados nesses diretórios são mostrados no submenu Abrir bancos recentes> do menu Arquivo do 4D:

Os arquivos ".4DLink" também podem ser criados com um editor XML e contém informação personalizada comoidentificadores de conexão (nome de usuário e senha) ou o modo de abertura do banco de dados. 4D oferece uma DTD que descreve as chaves XML que podem ser usadas para construir um arquivo ".4DLink". Esse DTDse chama database_link.dtd e se encontra na subpasta \Resources\DTD\ da aplicação 4D.

Usar Arquivos Um arquivo de acesso .4DLink pode ser usado para iniciar uma aplicação 4D e abrir o banco de dados desejado. Há duasmaneiras diferentes de fazer isso:

Com um duplo-clique ou arrastar e soltar na aplicação 4D,Com o submenu Abrir bancos recentes (arquivo localizado na pasta de preferências locais). Um arquivo .4DLink do tipo "banco de dados remoto" pode ser copiado e usado em várias máquinas diferentes.

Nota: Também é possível selecionar um arquivo 4DLink no 4D e na caixa de diálogo de abertura do 4D Server (apenaspara a abertura de bancos de dados locais).

- 97 -

Page 98: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Administração de máquinas remotas

Pode administrar o computador 4D Server desde um 4D remoto (computador client) abrindo a janela de administração de4D Server (ver a seção Página Monitor) no computador cliente.

Abrir a janela de administração em um computador 4D remoto

Para abrir uma janela de administração do servidor desde um computador cliente, deve ser conectado a base remota comoDesenhador ou Administrador. Caso contrário, quando tentar abrir a janela de administração, será gerado um erro deprivilegio (-9991).O acesso a janela é realizada por uma destas dois formas:

Selecione o comando Janela de administração do menu Ajuda ou faça clique no botão correspondente na barra deferramentas de 4D:

Execute o comando OPEN ADMINISTRATION WINDOW.

É mostrada uma janela de administração do servidor no computador cliente:

Especificações da administração sob um computador cliente

Um computador cliente que mostra a janela de administração do servidor tem acesso a toda informação disponível e podeatuar sobre os processos e o inicio dos servidores. Quando é mostrada a janela de administração do servidor em uma

- 98 -

Page 99: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

máquina cliente, há certas restrições e particularidades do funcionamento:

Na Página Processo, não é possível depurar um processo de usuário (a janela de depuração aparece na máquinaservidor).Na Página Manutenção, é possível executar ações que permitam que todos os clientes se desconectem e o servidorse reinicie (compactação e reinicio). Neste caso, o computador cliente que solicita a operação volta a conectar-seautomaticamente ao reiniciar.Na Página Manutenção, os botões Ver relatório mudam de nome por Baixar relatório depois da execução de umaoperação de manutenção. Estes arquivos são baixados na pasta do banco de dados no computador cliente antes deser mostrado.

- 99 -

Page 100: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Compilação de máquinas remotas

É possível compilar uma aplicação 4D desde uma conexão remota. Em outras palavras, é possível compilar desde umcomputador cliente 4D. Nas versões de 4D Server anteriores a v11 SQL, a compilação só poderia ser conduzida desde aaplicação monousuário.

Nota: Não é possível construir uma aplicação 4D personalizada (monousuário ou cliente/servidor) desde uma conexãoremota. O Gerenciador de aplicações não é acessível neste ambiente (o comando de menu está atenuado).

Do lado do cliente, a interface e os princípios de compilação são os mesmos que os das versões monousuário. Acompilação pode ser ativada desde o menu Desenho ou na barra de ferramentas, ou desde a janela do compilador:

Nota: A licença "4D Team Server" requer do lado de 4D Server para que os computadores clientes possam acessar afunção de compilação.

Só uma máquina cliente pode compilar uma base em um momento dado. A compilação por um cliente bloqueia a funçãodas outras máquinas remotas. Se outro computador cliente tenta compilar a base ao mesmo tempo, aparece umamensagem de advertência.

Enquanto uma máquina cliente realiza uma compilação, as outras máquinas clientes podem seguir trabalhando e modificaros métodos ou qualquer outro elemento estrutural. O código compilado e o código interpretado serão diferentes, o quesignifica que será necessário voltar a compilar o banco de dados posteriormente.

O código compilado é enviado no arquivo .DB no servidor gradualmente a medida que a compilação seja realizada.

Do lado do cliente, depois da finalização da operação, é possível reiniciar o servidor em modo interpretado ou em modocompilado utilizando os comandos correspondentes no menu Executar. Quando um computador 4D remoto solicita o reiniciodo servidor em compilado/interpretado, aparece a caixa de diálogo estandarte de fechamento do servidor que lhe permitedefinir um tempo de espera ou enviar uma mensagem de advertência aos outros clientes (ver a seção Sair de 4D Server).Quando o servidor for reiniciado, o cliente na origem da operação de reinicio se conecta novamente automaticamente.

Do lado do servidor, o reinicio em compilado/interpretado requer do uso da caixa de diálogo padrão de abertura de arquivos(menu pop up associado ao botão Abrir)

Nota: A compilação na rede WAN, não se recomenda por razões de rendimento (especialmente no caso de bases commuitos métodos), como a operação gera uma grande quantidade de intercâmbios na rede.

- 100 -

Page 101: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Server e a linguagem 4D

4D Server e a linguagem 4D 4D Server, conjuntos e seleções temporais Procedimentos armazenados Procedimentos armazenados nas máquinas clientes Importação baseada nos procedimentos armazenados (exemplo) Serviços baseados nos procedimentos armazenados (exemplo) Executar no atributo servidor

- 101 -

Page 102: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Server e a linguagem 4D

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

TriggersProcedimentos armazenadosMétodos de projeto com o atributo "Executar no servidor"Métodos base

Triggers

Um trigger é um método associado a uma tabela. Os triggers podem evitar operações “ilegais” nos registros de seu bancode dados. Os triggers é uma ferramenta muito poderosas que permite restringir as operações em uma tabela, comotambém evitar perdidas acidentais de dados ou sabotagem. Por exemplo, em um sistema de faturação, pode evitar queagregar 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 nocontexto dos processos que correm no computador servidor e não no computador cliente. Mais precisamente, se executamno contexto dos processos "gêmeos" dos processos usuários que chamam a operação do banco de dados. Estesprocessos gêmeos compartilham o contexto da base com ls processos usuário no computador cliente (em particular, oestado 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 ARRAY REAL do manual de Linguagem 4D.

Procedimentos armazenados

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

Métodos com atributo "Executar no servidor"

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

Métodos base

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

Método banco de dados On Server StartupAdding calculationsMétodo banco de dados On Server ShutdownMétodo banco de dados On Server Open ConnectionMétodo banco de dados On Server Close Connection

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

Método de banco On Web AunthenticationMétodo de banco de dados On Web ConnectionMétodo de base On SQL AuthenticationMétodo de Banco de Dados On Backup StartupMétodo de Banco de Dados On Backup Shutdown

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

Método banco de dados On StartupMétodo banco de dados On ExitMétodo de banco de dados On Drop

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

- 102 -

Page 103: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Server e as variáveis

4D Server mantém uma tabela de variáveis interprocesso. O alcance destas variáveis é o computador servidor. Paraexecutar uma base compilada a definição da tabela das variáveis interprocessos é comum entre o servidor e todos oscomputadores 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 devariáveis processo. Essas variáveis processo podem ser criadas e usados dinamicamente durante cada fase daexecução.

4D Server, conjuntos e seleções temporais

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

- 103 -

Page 104: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

4D Server, conjuntos e seleções temporais

Como se explica nas seções Conjuntos e Seleções temporárias do manual de Linguagem de 4D, pode criar e utilizarconjuntos e seleções temporais interprocesso, processo e locais:

Conjuntos/seleções temporais processo: somente pode ser acessado a um objeto processo pelo processo noqual foi criado, se foi criado em um processo cliente, pelo processo "gêmeo" criado no servidor. Os conjuntosprocesso se apagam logo que termina a execução do método de processo. Os objetos processo não necessitam umprefixo particular no nome.Conjuntos/seleções temporais interprocesso: um objeto interprocesso é visível para todos os processos namáquina (cliente ou servidor) onde foi criado. Um conjunto ou seleção temporal é um objeto interprocesso se o nomedo conjunto está precedido pelos símbolos (<>) — um signo “menor que” seguido por um signo “maior que”. Nota: estasintaxes pode ser utilizada em Windows e Macintosh. Além disso, em Mac OS unicamente, pode utilizar o símbolodiamante (Opção-Shift-V).Conjuntos/Seleções temporais/clientes: um objeto local/cliente é visível unicamente no processo onde foi criado. Onome de um objeto local/cliente está precedido pelo signo dólar ($). Nota: ainda que seu nome não começa por $, oconjunto sistema UserSet é um conjunto local/cliente.

A seguinte tabela indica os princípios de visibilidade das seleções e conjuntos em função de onde foram criados (a tabela éidêntica para ambos tipos de objetos):

x = visibleDeve lembrar desta matriz de visibilidade em função das operações que queira realizar. Por exemplo, se deseja realizaruma operação de tipo DIFFERENCE, INTERSECTION ou UNION, tenha certeza de que todos os conjuntos possam servistos na máquina que realiza a operação.Por razões de otimização, se recomenda escolher o lugar de criação e o alcance dos objetos em função de suasnecessidades de visibilidade.

- 104 -

Page 105: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Procedimentos armazenados

O que é um procedimento armazenado em um sistema SQL?

O termo "Procedimento armazenado" vem do mundo dos servidores SQL. Quando uma estação de cliente envia umasolicitação para um servidor SQL, ele na verdade envia texto em linguagem SQL ao servidor SQL. Este pedido ésintaticamente (parsing) e é executado no servidor SQL antes de executá-lo. Obviamente, se o texto do pedido é importante,e se a solicitação é enviada várias vezes durante uma sessão, você pode levar um longo tempo enviar o código na rede, aanálise e a interpretação do pedido. Assim, a idéia era encontrar uma maneira de enviar o pedido através da rede,analisados e interpretados uma vez e, em seguida, unicamente executado cada vez que receba de uma estação cliente. Asolução foi preservar o código fonte do pedido (em outras palavras, um procedimento) no servidor e que o cliente envie umasolicitação com apenas o nome do procedimento para executar. O procedimento é, portanto, "guardado" no servidor e daívem o termo "procedimento armazenado."Observe que um procedimento armazenado SQL é um procedimento que pode receber parâmetros de uma estação cliente,execute as tarefas para as quais foi criado (de forma síncrona ou assíncrona) e possivelmente retornar um resultado para ocliente. Quando um cliente solicita a execução de um procedimento armazenado, em certa medida, ele delega a execuçãodo código no computador do servidor.

O que é um procedimento armazenado em 4D Server?

Ainda que utilizamos o termo utilizado na indústria, as funções dos procedimentos armazenados de 4D Server superamsignificativamente o conceito regular de procedimentos armazenados.Com 4D em modo local, quando utiliza um comando como New process, pode abrir um processo usuário no qual podeexecutar um método. Este método é chamado um método processo (ver a seção Métodos de projeto no manualLinguagem de 4D).Pode fazer o mesmo com 4D Server, em um computador cliente. Além disso, utilizando o comando Execute on server namáquina servidor, pode iniciar um processo de usuário na qual executar um método. Além disso, utilizando o comandoEXECUTE ON CLIENT, pode correr um método em outro processo em um cliente diferente.Em ambos casos, o método é chamado um procedimento armazenado e por extensão, o processo iniciado na máquinaservidor ou outro computador cliente também chamado procedimento armazenado.Importante: A diferença principal entre um procedimento armazenado SQL e um procedimento armazenado 4D Servercomo no primeiro caso você executa um procedimento SQL, no segundo caso, execute um processo 4D autônomo.

Arquitetura dos processos armazenados de 4D

Como um processo 4D normal, um procedimento armazenado tem seu próprio ambiente:

Uma seleção atual por tabela: cada procedimento armazenado tem sua própria seleção atual. Uma tabela pode teruma seleção atual diferente em cada procedimento armazenado.Um registro atual por tabela: cada tabela pode ter um registro atual diferente em cada procedimento armazenado.Variáveis: cada procedimento armazenado tem suas próprias variáveis processo. As variáveis processo sãoreconhecidas unicamente no contexto do procedimento armazenado ao qual pertencem.Tabela por padrão: cada procedimento armazenado tem sua própria tabela por padrão.Conjuntos processo: cada procedimento armazenado tem seu próprio conjunto processos.On Error Call: cada procedimento armazenado tem seu próprio método de gestão de erros.Janela de depuração: cada procedimento armazenado tem sua própria janela de depuração.

Em términos de interface de usuário, um procedimento armazenado pode abrir janelas e mostrar dados(DISPLAY RECORD). Um procedimento armazenado executado em uma máquina cliente 4D permite a entrada de dados.Por outra parte, um procedimento armazenado executado no servidor não permite a entrada de dados.Pode iniciar tantos procedimentos armazenados como autorize o sistema (hardware e memória). Na verdade, a máquinaservidor deve ser considerada como uma máquina que não só responde aos clientes 4D e aos navegadores web, e tambémé capaz de executar processos que interagem com outros processos que passam na máquina servidor e nas máquinasremotas.Da mesma forma que 4D oferece um entorno multitarefas aos processos usuário que passam na máquina, 4D Serveroferece um entorno multitarefas aos procedimentos armazenados. Por exemplo, 4D Server mantém uma tabela dasvariáveis interprocesso que podem ser utilizadas pelos processos armazenados para que se comuniquem entre eles.Nota: A propriedade de método "Executar em servidor" permite executar um método em um processo no servidor, mas ométodo utiliza um processo "twinned" do processo cliente, que lhe permite em particular ser beneficiado do ambiente deste

- 105 -

Page 106: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

processo cliente. Neste caso, não é um procedimento armazenado 4D. Para maior informação, consulte a seção Executarno atributo servidor.

O que um procedimento armazenado pode fazer?

Grande parte das funções dos processos e comandos descritas no manual de Linguagem 4D aplicam também aosprocedimentos armazenados, exceto pela entrada de dados para os procedimentos armazenados executados no servidor.Um procedimento armazenado pode adicionar, pesquisar, ordenar, atualizar ou apagar registros. Um procedimentoarmazenado pode utilizar conjuntos e seleções temporais, acessar a documentos no disco, trabalhar com BLOBs, imprimirregistros, etc. Pense simplesmente que no lugar de fazer algo na máquina 4D local, ele faz na máquina servidor ou em váriasmáquinas clientes.Uma vantagem evidente dos procedimentos armazenados executados no servidor é que precisamente um procedimentoarmazenado se executa na máquina servidor, aonde se encontra o motor da base de dados. Por exemplo, um APPLY TOSELECTION não é eficiente na rede, mas é ao interior de um procedimento armazenado. O exemplo proposto na seçãoImportação baseada nos procedimentos armazenados (exemplo) mostra a importante otimização do rendimento quepode alcançar implementando um procedimento armazenado.Os procedimentos armazenados executados em um ou várias máquinas clientes permitem otimizar a otimização darepartição de tarefas entre clientes e a comunicação entre várias máquinas clientes. Consulte o comando REGISTERCLIENT no manual de Linguagem para ver um exemplo de procedimentos armazenados executados em várias máquinasclientes.No entanto, a vantagem principal da arquitetura dos procedimentos armazenados é a dimensão adicional que da a 4DServer. Utilizando procedimentos armazenados pode implementar seus próprios serviços 4D Server. O único limite é suaimaginação. O exemplo na seção Importação baseada nos procedimentos armazenados (exemplo) mostra umprocedimento armazenado que oferece informação sobre 4D Server a seus clientes. Pode, por exemplo, listar os volumesda máquina servidor. Este exemplo pode ser expandido facilmente para reenviar a informação sobre os diretórios oudocumentos ao cliente.

O que não pode fazer um procedimento armazenado (executado no servidor)?

Geralmente, os procedimentos armazenados executados no servidor não devem realizar operações que impliquemelementos de interface (tal como menus, janelas, formulários...). Os mecanismos de gestão de interface não são lidados noservidor.Devem ser evitados os comandos que provocam a aparição de caixas de diálogo no computador servidor bem como ascaixas de diálogo com entrada de dados. Esta é a lista de comandos que NÃO deve utilizar em procedimentos armazenados executados no servidor. Estescomandos se classificam em três categorias:

Comandos proibidos no servidor

A presença de um destes comandos em um procedimento armazenado provoca a aparição de uma caixa de diálogo dealerta que indica que o comando não pode ser executado em 4D Server. É retornado o erro #67, o qual pode serinterceptado por meio de um método instalado pelo comando ON ERR CALL.

ACCUMULATEADD RECORD_o_ADD SUBRECORDAPPEND MENU ITEMBREAK LEVELCALL PROCESSCHANGE LICENSESCount menu itemsCount menusCREATE USER FORMDELETE MENU ITEMDELETE USER FORMDISABLE MENU ITEMDISPLAY SELECTIONEDIT ACCESSEDIT FORMENABLE MENU ITEMFILTER EVENTGet menu itemGet menu item keyGet menu item mark

- 106 -

Page 107: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Get menu item styleGet menu titleSET PICTURE TO LIBRARY_o_GRAPH TABLEINSERT MENU ITEMLevel (Nível de quebra)LIST USER FORMSMenu selectedMODIFY RECORDMODIFY SELECTION_o_MODIFY SUBRECORDON EVENT CALLOpen external windowPAGE BREAKPAGE SETUPPRINT SETTINGSQUERY BY EXAMPLEQR REPORTPrinting pageREMOVE PICTURE FROM LIBRARYSET MENU ITEMSET MENU ITEM SHORTCUTSET MENU ITEM MARKSET MENU ITEM STYLESET PICTURE TO LIBRARYSHOW MENU BARSubtotal• Comandos inapropriados no servidorA utilização destes comandos em procedimentos armazenados não é recomendável como seu funcionamento não seadapta a uma execução no servidor. Estes comandos podem ser bloqueados pelo servidor, provocar erros e não produzemos efeitos esperados. Não é devolvido um código de erro específico.

ACCEPTActivated_o_ADD DATA SEGMENTAfterAPPEND DATA TO PASTEBOARDAPPEND TO LISTBeforeBLOB TO DOCUMENTBLOB to listBRING TO FRONT_o_C_GRAPHCANCELCHANGE CURRENT USERCHANGE PASSWORDCLEAR LISTCLEAR PASTEBOARDCopy listCount list itemsCount screensCreate document(1)_o_Create resource file(1)Current form tableCurrent userDeactivatedDELETE FROM LISTDELETE USERDIALOG_o_DISABLE BUTTONDRAG AND DROP PROPERTIESDRAG WINDOWDrop position_o_During_o_ENABLE BUTTON

- 107 -

Page 108: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

ERASE WINDOWEXPORT DATA(1)FILTER KEYSTROKEFind windowFocus objectFONT LIST_o_Font name_o_Font numberForm eventFIRST PAGEFORM Get current pageGET FORM PROPERTIESFORM GOTO PAGELAST PAGENEXT PAGEPREVIOUS PAGEINPUT FORMOUTPUT FORMFrontmost processFrontmost windowGet edited textGET GROUP LISTGET GROUP PROPERTIESGET HIGHLIGHTGET LIST ITEMGET LIST ITEM PROPERTIESGET LIST PROPERTIESGET MOUSEGET PASTEBOARD DATAGET PICTURE FROM PASTEBOARDGet text from pasteboardGET USER LISTGET USER PROPERTIESGET WINDOW RECTGet window titleGOTO AREAGRAPH SETTINGSHIDE PROCESSHIDE TOOL BARHIDE WINDOWHIGHLIGHT RECORDSHIGHLIGHT TEXTIMPORT DATA(1)In breakIn footerIn headerINSERT IN LIST_o_INVERT BACKGROUNDIs a listIs user deletedKeystrokeList item parentList item positionLIST TO BLOBLoad listMAXIMIZE WINDOWMenu bar heightMenu bar screenMINIMIZE WINDOWModifiedNew listNext windowOBJECT GET COORDINATESOBJECT MOVEOBJECT SET LIST BY NAME

- 108 -

Page 109: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

SET COLORSET ENTERABLESET FILTEROBJECT SET FORMATSET RGB COLORSOBJECT SET TITLEOBJECT SET VISIBLEOldOpen document(1)Open resource file(1)ORDER BY(2)Outside callPasteboard data sizePop up menuPOST CLICKPOST EVENTPOST KEYQUERY BY FORMULA(2)QUERY(2)REDRAW_o_REDRAW LISTREDRAW WINDOWREGISTER CLIENTREJECTSAVE LISTSCREEN COORDINATESSCREEN DEPTHScreen heightScreen widthSelect folderSELECT LIST ITEMS BY POSITIONSELECT LIST ITEMS BY REFERENCESELECT LOG FILESelected list itemsSelfSET CURSORSET FIELD TITLESSet group propertiesSET LIST ITEMSET LIST ITEM PROPERTIESSET LIST PROPERTIESSET PICTURE TO PASTEBOARDSET SCREEN DEPTHSET TABLE TITLESSET TEXT TO PASTEBOARDSET TIMERSet user propertiesSET WINDOW RECTShift downSHOW PROCESSSHOW WINDOWSORT LISTUser in groupValidate passwordWindow kindWINDOW LISTWindow process

(1) Unicamente quando o primeiro parâmetro é uma cadeia vazia.(2) Unicamente quando a sintaxes utilizada provoca a aparição da caixa de diálogo (ex.: ORDER BY([Table])).

Comandos sem efeito no servidor

Os seguintes comandos não têm efeito quando se executam em um procedimento armazenado no servidor. Não é devolvidonenhum código de erro específico.

- 109 -

Page 110: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

GRAPHMESSAGES OFFMESSAGES ONSET MENU BARSHOW TOOL BAR

Como iniciar um procedimento armazenado?

Desde 4D, pode iniciar manualmente um procedimento armazenado na caixa de diálogo de execução do método:

Pode executar em 4D Server ou em outra máquina 4D client. Note que para as máquinas clientes 4D nesta lista, devem tersido registrados (ver a seção Procedimentos armazenados nas máquinas clientes e o comando REGISTER CLIENT).

Em 4D, pode iniciar um procedimento armazenado por programação com a ajuda dos comandos Execute on serverou EXECUTE ON CLIENT.

Nota: Não é possível utilizar os comandos de gestão de processos DELAY PROCESS, PAUSE PROCESS e RESUMEPROCESS desde um 4D remoto com procedimentos armazenados no servidor.

Um método executado em 4D Server (método base do servidor, método com atributo Executar em servidor, trigger ouprocedimento armazenado) pode iniciar um procedimento armazenado com a ajuda dos comandos Execute onserver, New process ou EXECUTE ON CLIENT.

Comunicação interprocesso entre os procedimentos armazenados e os processos usuário

Os procedimentos armazenados podem comunicar-se entre eles utilizando:

variáveis interprocessosemáforos globais ou locaisregistrosconjuntos interprocesso e seleções temporais interprocessoos comandos GET PROCESS VARIABLE, SET PROCESS VARIABLE e VARIABLE TO VARIABLE.

Consulte as seções correspondentes do manual Linguagem de 4D. Novamente, lembre que os comandos 4D atuem dentrodo alcance da máquina que executa o procedimento armazenado (servidor ou clientes) da mesma forma que no local emuma máquina cliente.Nota: Os mecanismos CALL PROCESS e Outside call não tem significado na máquina servidor, porque osprocedimentos armazenados não tem uma interface usuário com entrada de dados.Também há outra funcionalidade importante: os processos usuário dos clientes (processos que passam em uma máquinacliente) podem ler e escrever as variáveis processo (*) de um procedimento armazenado, utilizando os comandos GETPROCESS VARIABLE, SET PROCESS VARIABLE e VARIABLE TO VARIABLE.(*) Assim como as variáveis interprocesso da máquina servidor.Importante: A comunicação processo “Inter máquina”, oferecida pelos comandos GET PROCESS VARIABLE, SETPROCESS VARIABLE e VARIABLE TO VARIABLE, somente é possível o fechamento cliente ao servidor. Sempre é umprocesso cliente que lê ou escreve as variáveis de um procedimento armazenado.

- 110 -

Page 111: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Procedimentos armazenados nas máquinas clientes

Você pode executar os procedimentos armazenados em um ou vários clientes 4D. O funcionamento geral dosprocedimentos armazenados executados nos clientes é idêntico ao dos procedimentos armazenados executados noservidor, exceto que o cliente pode chamar a entrada de dados. Para obter mais informações, consulte a seçãoProcedimentos armazenados. Toda equipe cliente que execute procedimentos armazenados por pedido do servidor ou de outra equipe cliente, deve estarexplicitamente registrado para a sessão. Há dois métodos para registrar um cliente: pode ser registrado automaticamentequando conectado ou por programação.

Registro automático de cada cliente 4D que se conecta a 4D Server

A opção "Inscrever os clientes ao inicio para executar em cliente" está disponível nas preferências da aplicação, página“Opções de rede” da página "Cliente-Servidor”:

Quando esta opção está selecionada, cada equipo cliente 4D que se conecta à base é referenciado automaticamente com4D Server com pode executar os procedimentos armazenados. É criado um processo de tipo 4D Client com o nome damáquina da equipe cliente no servidor. É criado também um processo equivalente sobre cada equipe cliente.

Registro de 4D Client por programação

Pode registrar uma ou várias equipes clientes 4D por programação. Esta opção permite selecionar as equipes clientes quedevem ser inscritas e definir seu nome de registro. O tema "Processo" contém o comando REGISTER CLIENT que permite

- 111 -

Page 112: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

inscrever uma equipe cliente com o nome que prefira.

Para cancelar um 4D Client

Não importa como os computadores cliente são registrados, você pode lhes dar baixa para a sessão atual usando ocomando UNREGISTER CLIENT (Tema "Processo") para um determinado cliente. O processo de registro (nomeado deacordo com o cliente) desaparece do grupo de processos de usuário no computador servidor, bem como o usuário daequipe cliente. Nota: O comando GET REGISTERED CLIENTS permite obter a lista e a carga de trabalho (o número de métodospendentes por executar) dos clientes registrados na sessão.Para obter mais informações sobre esses comandos, consulte o manual de linguagem de 4D.

- 112 -

Page 113: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Importação baseada nos procedimentos armazenados (exemplo)

O seguinte exemplo mostra como a importação de dados pode ser acelerada drasticamente em um entorno cliente/servidor.O método Regular Import permite medir quanto tempo toma importar os registros utilizando o comando IMPORT TEXT

` Método de projeto Import clássico $vhDocRef:=Open document("") If(OK=1) CLOSE DOCUMENT($vhDocRef) INPUT FORM([Tabla1];"Import") $vhStartTime:=Current time IMPORT TEXT([Tabla1];Document) $vhEndTime:=Current time ALERT("La operación toma "+String(0+($vhEndTime-$vhStartTime))+" segundos.") End if

Com a importação de dados clássica, 4D analisa o arquivo de texto, depois para cada registro, cria um novo registro, encheos campos com os valores importados e envia o registro à máquina servidor para ser adicionado a base. Por conseguintecirculam numerosas petições pela rede. Uma maneira de otimizar a operação é utilizar um procedimento armazenado pararealizar a importação localmente na máquina servidor. A máquina cliente carrega o documento em um BLOB, depois iniciaum procedimento armazenado que passa o BLOB como parâmetro. O procedimento armazenado guarda o BLOB em umdocumento no disco, depois importa o documento localmente. Portanto, a importação dos dados se realiza localmente (auma velocidade comparada com a de uma versão local de 4D) porque a maioria das petições que transitam por la rede sãoeliminadas.Este é o método de projeto CLIENT IMPORT. Executado na máquina cliente, produz a execução do procedimentoarmazenado SERVER IMPORT que é mostrado a continuação:

` Método de projeto CLIENT IMPORT ` CLIENT IMPORT ( Ponteiro ; Texto) ` CLIENT IMPORT ( -> [Tabela] ; Formulário de entrada ) C_POINTER($1) C_TEXT($2) C_TIME($vhDocRef) C_BLOB($vxDatos) C_LONGINT(spErrCode) ` Selecione o documento a importar $vhDocRef:=Open document("") If(OK=1) ` Foi selecionado um documento, não o conserve aberto CLOSE DOCUMENT($vhDocRef) $vhStartTime:=Current time ` Trate de carregar em memória DOCUMENT TO BLOB(Document;$vxDatos) If(OK=1) ` Se o documento pode ser carregado no BLOB, ` Inicie o procedimento armazenado que importará os dados na máquina servidor $spProcessoID:=Execute on server("SERVER IMPORT";32*1024; "Servidor Import Services";Table($1);$2;$vxDados) ` Neste ponto, já não necessitamos o BLOB neste processo CLEAR VARIABLE($vxDatos) ` Espere a que termine a operação realizada pelo procedimento armazenado Repeat DELAY PROCESS(Current process;300) GET PROCESS VARIABLE($spProcessosID;spErrCode;spErrCode) If(Undefined(spErrCode)) ` Nota: se o procedimento armazenado não iniciou sua própria instância ` da variável spErrCode, pode ser que devolva uma variável indefinida

- 113 -

Page 114: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

spErrCode:=1 End if Until(spErrCode<=0) ` Enviamos um aviso de recibo ao procedimento armazenado spErrCode:=1 SET PROCESS VARIABLE($spProcessosID;spErrCode;spErrCode) $vhEndTime:=Current time ALERT("Tomó "+String(0+($vhEndTime-$vhStartTime))+" segundos.") Else ALERT("Não há suficiente memória para carregar o documento.") End if End if

Este é o método de projeto SERVER IMPORT executado como um procedimento armazenado:

` Método de projeto SERVER IMPORT ` SERVER IMPORT ( Inteiro longo ; Texto; BLOB ) ` SERVER IMPORT ( Número de Tabela ; Formulário de entrada ; Dados importados ) C_LONGINT($1) C_TEXT($2) C_BLOB($3) C_LONGINT(spErrCode) ` A operação não terminou, assinale 1 a spErrCode spErrCode:=1 $vpTabla:=Table($1) INPUT FORM($vpTabela->;$2) $vsDocName:="Arquivo Import "+String(1+Random) If(On Windows) $vsDocName:=$vsDocName+".txt" ` Em Windows, a extensão é obrigatória End if DELETE DOCUMENT($vsDocName) BLOB TO DOCUMENT($vsDocName;$3) IMPORT TEXT($vpTable->;$vsDocName) DELETE DOCUMENT($vsDocName) ` A operação terminou, assinale 0 a spErrCode spErrCode:=0 ` Espere a que a máquina cliente que originou a petição tenha recebido o resultado Repeat DELAY PROCESS(Current process;1) Until(spErrCode>0)

Nota: O método de projeto On Windows é listado na seção Documentos de Sistema do manual de Linguagem de 4D.Uma vez que estes dois métodos tenham sido implementados em uma base, pode realizar uma importação baseada em umprocedimento armazenado, escrevendo por exemplo:

CLIENT IMPORT(->[Tabela1];"Import")

É realizada algumas provas comparativas, você vai descobrir que utilizando este método se pode importar registros até 60vezes mais rápido que com uma importação regular.

- 114 -

Page 115: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Serviços baseados nos procedimentos armazenados (exemplo)

No exemplo da seção Importação baseada nos procedimentos armazenados (exemplo), um procedimentoarmazenado se inicia e termina cada vez que se solicita uma operação de importação de dados. Neste exemplo, umprocedimento armazenado é iniciado automaticamente quando inicia a base do servidor e pode ser iniciado e parado avontade por qualquer 4D conectado a base. Logo como se executa, o procedimento armazenado pode responder demaneira assíncrona a múltiplos pedidos enviados pelos clientes conectados a base.Enquanto a seção Importação baseada nos procedimentos armazenados (exemplo), mostra como otimizar um serviço4D Server existente, este exemplo mostra como implementar serviços novos e personalizados disponíveis para todos asmáquinas 4D client conectados. Além disso, este exemplo pode ser utilizado como modelo para a criação de seus própriosserviços.

Início automático do procedimento armazenado

O procedimento armazenado é lançado automaticamente pelo Método banco de dados On Server Startup:

` Método de base On Server Startup START SP SERVICES

Como o Método banco de dados On Server Startup lança ao método de projeto SP SERVICES como um procedimentoarmazenado, SP SERVICES começa a correr logo como a base se abre com 4D Server, tendo ou não clientes conectadosà base. Na seguinte imagem, a janela de administração de 4D Server mostra o procedimento armazenado em execuçãoquando nenhum cliente está conectado.

Iniciar e parar voluntariamente o procedimento armazenado

Este é o método de projeto START SP SERVICES:

- 115 -

Page 116: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

` START SP SERVICES Project Method ◊vlSPServices:=Execute on server("SP SERVICES";32*1024;"SP SERVICES";*)

Como o comando Execute on server atua como New process ao ser chamado na máquina servidor, o mesmo método(START SP SERVICES) pode ser utilizado na máquina servidor ou em uma máquina cliente para iniciar a vontade ométodo SP SERVICES como um procedimento armazenado na máquina servidor.O método de projeto STOP SP SERVICES “ordena” parar ao método de projeto SP SERVICES.

` Método de projeto STOP SP SERVICES SET PROCESS VARIABLE(◊vlSPServices;vbStopSPServices;True)

Quando é iniciado o método de projeto SP SERVICES, da a variável processo vbStopSPServices o valor False e depoisexecuta um laço até que esta variável Booleana se transforme em True. O comando , permite a todo processo usuárioexecutado no servidor ou em uma máquina cliente modificar o valor da variável vbStopSPServices, e portanto parar oprocedimento armazenado a vontade.

Comunicação com o procedimento armazenado

O procedimento armazenado deve poder receber pedidos de clientes e responder de maneira assíncrona em qualquermomento e sem importar a ordem. Uma maneira direta de assegurar esta comunicação é utilizar uma tabela.

A tabela [SP Requests] contém os seguintes campos:

[SP Requests]reqID é assinalado utilizando o comando Sequence number. Este campo identifica cada pedido demaneira única.[SP Requests]reqType descreve o tipo do pedido.[SP Requests]reqStatus pode tomar um dos seguintes valores:

Valor Descrição1 foi publicada a petição mas não foi processada.0 foi processado com êxito a petição.< 0 foi processada a petição mas ocorreu um erro.

Nota: Estes valores são escolhidos arbitrariamente para este exemplo, não são impostos por 4D.

[SP Requests]reqData é um BLOB que contém os dados da petição. Pode conter os dados enviados pela pessoaque solicita os dados devolvidos pelo procedimento armazenado ao requerente.[SP Requests]reqParams contém eventualmente os valores dos parâmetros enviados pelo requerente aoprocedimento armazenado.

Por que usar uma tabela?

A comunicação entre um processo cliente e um procedimento armazenado pode ser implantado utilizando os comandosGET PROCESS VARIABLE, SET PROCESS VARIABLE e VARIABLE TO VARIABLE. Por exemplo, esta soluçãoutilizada na seção Importação baseada nos procedimentos armazenados (exemplo), como também no método deprojeto STOP SP SERVICES listado anteriormente.Aqui, o sistema deve permitir ao procedimento armazenado receber e reenviar as quantidades das variáveis de dados.Pode utilizar arrays, incluindo arrays de texto e imagem), mas há duas razões principais para preferir o emprego de umatabela:

O algoritmo de gestão de petições sob os registros é mais fácil de implementar. Enviar uma petição desde umamáquina cliente consiste simplesmente em adicionar uma petição na tabela. Responder a petição desde oprocedimento armazenado consiste simplesmente em modificar esta petição.Como as petições se armazenam em uma tabela, são guardadas no disco. Portanto, se o tamanho de uma petição éimportante, não será um problema na medida em que possa ser suprimido da memória (a diferença dos dadosarmazenados nos arrays).

- 116 -

Page 117: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Enviar uma petição desde a máquina cliente

O método de projeto Client post request é um método genérico para enviar uma petição:

` Método de projeto Client post request ` Client post request ( Cadeia { ; Texto } ) -> Inteiro longo ` Client post request ( Tipo de petição { ; Parâmetros } ) -> Número de petição CREATE RECORD([SP Requests]) [SP Requests]reqID:=Sequence number([SP Requests]) [SP Requests]reqType:=$1 [SP Requests]reqStatus:=1 If(Count parameters>=2) [SP Requests]reqParams:=$2 End if SAVE RECORD([SP Requests]) $0:=[SP Requests]reqID

O método devolve o número da petição, cuja unicidade está garantida pelo uso do comando Sequence number. Uma vezadicionado o registro a tabela [SP Requests], o cliente não têm que interrogar regularmente o campo [SPRequets]redStatus até que o procedimento armazenado termine de processar a petição.

Provar o estado da petição e recuperar o resultado na máquina cliente

O método de projeto Client get result é um método genérico para provar o estado da petição. Como foi explicadoanteriormente, logo como o campo [SP Requets]redStatus se torna diferente de 1, o cliente sabe que o procedimentoarmazenado foi tratado (com êxito ou não) a petição.

` Método de projeto Client get result ` Client get result ( Inteiro longo ; ->BLOB {; Inteiro longo } ) -> Inteiro longo ` Client get result ( Número de petição ; ->Dados {; Duração } ) -> Código do erro C_LONGINT($0;$1;$vlDelay) $0:=1 $vlDelay:=0 If(Count parameters>=3) $vlDelay:=$3 End if READ ONLY([SP Requests]) Repeat QUERY([SP Requests];[SP Requests]reqID=$1) If(Records in selection([SP Requests])>0) If([SP Requests]reqStatus&NBSP;#&NBSP;1) $2->:=[SP Requests]reqData READ WRITE([SP Requests]) While(Locked([SP Requests])) WAITING LOOP($vlDelay) LOAD RECORD([SP Requests]) End while DELETE RECORD([SP Requests]) $0:=[SP Requests]reqStatus End if Else ` Se perdeu o registro da petição ` Isto não deveria passar. Mas de todas formas estabelece o código de erro -2 (valorarbitrário) $0:=-2 End if ` A petição ainda não foi processada If($0=1) WAITING LOOP($vlDelay) End if Until($0&NBSP;#&NBSP;1) READ ONLY([SP Requests])

Se a petição foi administrada com êxito pelo procedimento armazenado, o método copia o resultado (se existe) do registro- 117 -

Page 118: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

ao BLOB cujo ponteiro foi passado como parâmetro. O método chamado depois analisa e utiliza os dados do BLOB emfunção do tipo de pedido. Note que o cliente está encarregado de apagar o registro [SP Requests] uma vez termina opedido.O pequeno método de projeto WAITING LOOP faz um laço até um certo número de tics:

` Método de projeto WAITING LOOP ` WAITING LOOP ( Inteiro longo ) ` WAITING LOOP ( Tempo em tics ) C_LONGINT($1) $vlStartTicks:=Tickcount Repeat IDLE Until((Tickcount-$vlStartTicks)>=$1)

Lembrança: DELAY PROCESS não tem efeito no processo principal. Se utiliza o método de projeto WAITING LOOP, oprocesso esperará a quantidade de tempo necessário, ainda que o pedido tenha origem desde o processo do ambienteusuário de uma máquina cliente.

O procedimento armazenado e suas subrotinas

O método de projeto SP SERVICES é o método executado como procedimento armazenado na máquina servidor. Aestrutura geral deste método, a continuação, muito simples:

Inicialização de uma variável “stop” Repetir Pesquisa das petições cujo campo [SP Requests]reqStatus é igual a 1 Para cada petição Em função do tipo de petição, chamar uma subrotina que guarde o resultado no campo [SP Requests]reqData Mudar o estado da petição para que o cliente saiba que passou End for “Dormir” um pouco antes de voltar a começar Até que a variável “stop” se torne true

Este é o código fonte real:

` Método de projeto SP SERVICES ` O procedimento armazenado começa vbStopSPServices:=False ` O procedimento armazenado não necessita acesso em leitura escritura as tabelas... READ ONLY(*) ` ...exceto a tabela [SP Requests] READ WRITE([SP Requests]) Repeat ` Pesquisa dos pedidos ainda não processados QUERY([SP Requests];[SP Requests]reqStatus=1) ` Processo destas petições uma por uma For($vlRecord;1;Records in selection([SP Requests])) ` Se o registro da petição está bloqueado, esperar até que esteja desbloqueado While(Locked([SP Requests])) ` Esperar um segundo antes de tentar novamente DELAY PROCESS(Current process;60) ` Trata de obter acesso leitura-escritura LOAD RECORD([SP Requests]) End while ` Assume que a petição será processada com sucesso [SP Requests]reqStatus:=0 Case of :([SP Requests]reqType="Server Information") SP DO SERVER INFORMATION :([SP Requests]reqType="Volume List") SP DO VOLUME LIST :([SP Requests]reqType="Browse Directory") SP DO BROWSE DIRECTORY([SP Requests]reqParams)

- 118 -

Page 119: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

` ... ` OUTROS TIPOS DE PETIÇÕES PODERIAM SER INCLUÍDAS AQUI ` ... Else ` O tipo de petição é desconhecido, devolver o erro -1 (valor arbitrário) [SP Requests]reqStatus:=-1 End case ` Forçar o estado da petição a outro diferente de 1 ` (em caso de uma subrotina dar o valor 1) If([SP Requests]reqStatus=1) [SP Requests]reqStatus:=-3 End if ` Atualizar o registro da petição SAVE RECORD([SP Requests]) ` Ir a seguinte petição não processada NEXT RECORD([SP Requests]) End for ` Liberar o último registro processado UNLOAD RECORD([SP Requests]) ` Espere um segundo antes de continuar respondendo petições DELAY PROCESS(Current process;60) ` Bucle até que seja ordenado ao procedimento armazenado parar sua execução Until(vbStopSPServices)

O método de projeto SP SERVICES pode ser utilizado como modelo para implementar serviços inovadores em uma base.Nesta seção, detalhamos as subrotinas SP DO SERVER INFORMATION e SP DO VOLUME LIST. A subrotina SP DOBROWSE DIRECTORY (que toma como parâmetro um parâmetro enviado pelo cliente no campo [SPRequests]reqParams) não se trata neste documento.Dependendo do tipo da petição, o método de projeto SP SERVICES chama a uma subrotina cuja tarefa é guardar osdados resultantes no campo [SP Requests]reqData. O armazenamento do registro e a mudança do estado a realizar ométodo de projeto SP SERVICES.Esta é a subrotina SP DO SERVER INFORMATION que guarda a informação relativa ao servidor no BLOB. Outro métodode projeto extrairá os dados do BLOB em função da máquina cliente.

` Método de projeto SP DO SERVER INFORMATION TEXT TO BLOB(Application version(*);[SP Requests]reqData;UTF8 C string) TEXT TO BLOB(Structure file;[SP Requests]reqData;UTF8 C string;*) TEXT TO BLOB(Data file;[SP Requests]reqData;UTF8 C string;*) PLATFORM PROPERTIES($vlPlatform;$vlSystem;$vlMachine) VARIABLE TO BLOB($vlPlatform;[SP Requests]reqData;*) VARIABLE TO BLOB($vlSystem;[SP Requests]reqData;*) VARIABLE TO BLOB($vlMachine;[SP Requests]reqData;*)

Esta é a subrotina SP DO VOLUME LIST, que guarda a informação relativa aos volumes no BLOB. Outro método deprojeto extrairá os dados do BLOB em função da máquina cliente.

` Método de projeto SP DO VOLUME LIST VOLUME LIST($asVName) $vlSize:=Size of array($asVName) ARRAY REAL($arVSize;$vlSize) ARRAY REAL($arVUsedSpace;$vlSize) ARRAY REAL($arVFreeSpace;$vlSize) For($vlElem;1;$vlSize) VOLUME ATTRIBUTES($asVName{$vlElem};$arVSize{$vlElem};$arVUsedSpace{$vlElem} ;$arVFreeSpace{$vlELem}) End for VARIABLE TO BLOB($asVName;[SP Requests]reqData) VARIABLE TO BLOB($arVSize;[SP Requests]reqData;*) VARIABLE TO BLOB($arVUsedSpace;[SP Requests]reqData;*) VARIABLE TO BLOB($arVFreeSpace;[SP Requests]reqData;*)

Mostrar a informação do servidor em uma máquina cliente

- 119 -

Page 120: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Com os métodos de projeto genéricos Client post request e Client get result, o método de projetoM_SERVER_INFORMATION mostra, na máquina cliente, a informação devolvida pelo procedimento armazenado. Estemétodo pode estar associado a um comando de menu ou ser chamado, por exemplo, desde o método de objeto de umbotão:

` M_SERVER_INFORMATION C_BLOB(vxData) C_LONGINT($vlReqID;$vlErrCode;$vlOffset) ` Envio do pedido $vlReqID:=Client post request("Server Information") ` Prova do estado do pedido e recepção do resultado $vlErrCode:=Client get result($vlReqID;->vxData;60) ` Caso o pedido termina com sucesso, é mostrado o resultado If($vlErrCode=0) ` Extração da informação resultante do BLOB $vlOffset:=0 vsServerVersion:=BLOB to text(vxData;UTF8 C string;$vlOffset) vsStructureFile:=BLOB to text(vxData;UTF8 C string;$vlOffset) vsDataFile:=BLOB to text(vxData;UTF8 C string;$vlOffset) BLOB TO VARIABLE(vxData;$vlPlatform;$vlOffset) BLOB TO VARIABLE(vxData;$vlSystem;$vlOffset) BLOB TO VARIABLE(vxData;$vlMachine;$vlOffset) ` Análises das propriedades da plataforma vs4DPlatform:="Versão de 4D Server desconhecida" vsSystem:="Versão do sistema desconhecida" vsMachine:="Computador desconhecido" `... ` Este é o código (não listado) que analisa $vlSystem e $vlMachine ` ( ver o exemplo do comando PLATFORM PROPERTIES) ` ... ` Visualização da informação resultante DIALOG([SP Requests];"SERVER INFORMATION") Else ALERT("Erro de pedido "+String($vlErrCode)) End if ` Não é mais necessário o BLOB CLEAR VARIABLE(vxData)

Este é o formulário [SP Requests];"SERVER INFORMATION" em execução:

Mostrar a lista de volumes do servidor em uma máquina cliente

Com os métodos de projeto genéricos Client post request e Client get result, o método de projetoM_SERVER_VOLUMES mostra, na máquina cliente, a informação na lista dos volumes do servidor devolvidos pelo

- 120 -

Page 121: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

procedimento armazenado. Este método pode estar associado a um comando de menu ou chamado, por exemplo, desde ométodo de objeto de um botão:

` M_SERVER_VOLUMES C_BLOB(vxData) ` Envio do pedido $vlReqID:=Client post request("Volume List") ` Prova do estado da petição e recepção do resultado $vlErrCode:=Client get result($vlReqID;->vxData;120) ` Se a petição termina com sucesso, mostra o resultado If($vlErrCode=0) ` Extração da informação resultante do BLOB $vlOffset:=0 BLOB TO VARIABLE(vxData;asVName;$vlOffset) BLOB TO VARIABLE(vxData;arVSize;$vlOffset) BLOB TO VARIABLE(vxData;arVUsedSpace;$vlOffset) BLOB TO VARIABLE(vxData;arVFreeSpace;$vlOffset) For($vlElem;1;Size of array(arVSize)) ` Conversão de bytes em MB arVSize{$vlElem}:=arVSize{$vlElem}/1048576 arVUsedSpace{$vlElem}:=arVUsedSpace{$vlElem}/1048576 arVFreeSpace{$vlElem}:=arVFreeSpace{$vlElem}/1048576 End for ` Visualização da informação resultante DIALOG([SP Requests];"VOLUME LIST") Else ALERT("Erro de petição "+String($vlErrCode)) End if ` Já não é necessário o BLOB CLEAR VARIABLE(vxData)

Este é o formulário [SP Requests];"VOLUME LIST" em execução:

- 121 -

Page 122: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

Executar no atributo servidor

O atributo do método de projeto "Execute on Server" pode ser definido na seguinte caixa de diálogo de modificação globaldos atributos ou na caixa de diálogo das propriedades do método:

Quando se seleciona esta opção, o método de projeto sempre se executa no servidor, sem importar como se chama ométodo.Nota: Este atributo só leva em conta para uma aplicação 4D executada em cliente/servidor.

Contexto de execução

Quando este atributo está selecionado, o contexto de execução do método de projeto é comparado com o dos triggers (vera seção 4D Server e a linguagem 4D): o método no servidor compartilham o mesmo contexto de banco de dados para obloqueio de registros e para as transações que o contexto correspondente do lado do cliente, mas não o mesmo contexto delinguagem (variáveis processo, conjuntos, seleções atuais). No entanto, a diferença de um trigger, o método executado noservidor não compartilha o registro atual com o contexto do cliente.Todos os parâmetros do método ($1, $2, etc.) são enviados no servidor e o valor do parâmetro $0, é utilizado, e devolvidoao cliente.A diferença do comando Execute on server, esta opção não provoca a criação do processo no servidor. 4D Server utilizao processo "gêmeo" do processo cliente que solicitou a execução. Além disso, esta opção simplifica o principio de delegação da execução de um método no servidor como a transferência deparâmetros se realiza automaticamente nos dois sentidos, como para uma chamada de método "normal". O comando Execute on server, funciona de forma anacrônica e portanto requer maior programação e uso de semáforospara a leitura dos resultados.

Comandos utilizáveis

Os métodos que têm o atributo "Execute on Server" estão sujeitos as mesmas regras que os procedimentos armazenadosem matéria de uso dos comandos da linguagem 4D. A execução de certos comandos não está permitida no servidor, aexecução de outros não é recomendável. Para maior informação, consulte o parágrafo " O que um procedimentoarmazenado não pode fazer (executado no servidor)?" na seção Procedimentos armazenados.

Ponteiros

Se passa um ponteiro a uma variável (variável simples, array ou elemento de array), o valor apontado também é enviado aoservidor. Se o valor apontado é modificado no servidor pelo método, o valor modificado se devolve ao cliente para atualizar

- 122 -

Page 123: 4D Doc Center : Manual de 4D Server...Arquitetura cliente/servidor integrado Um 4D sistema Server funciona com uma aplicação exclusiva para o cliente e o servidor. O software de

a variável correspondente do lado do cliente.Os ponteiros em uma tabela ou campo são enviados como referência (número de tabela, número de campo). O valor doregistro atual não é trocado automaticamente.Nota: Esta opção funciona igual no modo interpretado e em modo compilado.

Exemplo

Este é o código para o método de projeto Myappli que têm o atributo "Execute on Server":

C_POINTER($1) `Ponteiro a tabela C_POINTER($2) `Ponteiro a campo C_POINTER($3) `Ponteiro a array C_TEXT($4) `Valor a procurar C_LONGINT($0) `Resultado `Procurar e enviar valores para cada registro QUERY($1->;$2->=$4) While(Not(End selection($1->))) APPEND TO ARRAY($3->;myFormula($1)) NEXT RECORD($1->) End while UNLOAD RECORD($1->) $0:=Records in selection($1->)

Do lado do cliente, a chamada ao método é feita assim:

ARRAY TEXT(myArray;0) $vlnum :=MyAppli(->[Table_1] ;->[Table_1]Field_1 ;->myArray;"to find")

- 123 -