4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... ·...

96
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

Transcript of 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... ·...

Page 1: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

Page 2: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Introdução

Apresentação Arquitetura de 4D Server

Page 3: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 para clientes4D em Windows e Macintosh. 4D Server inclui desenvolvimento de ferramentas e segurança de dados, escalabilidade completa econectividade 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 os desenvolvedoresnão precisam projetar aplicativos específicos para o servidor e os clientes. Além disso, o 4D Server é um servidor "zeroadministraçã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 e osmais avançados sistemas de RDBMS baseado em SQL que apesar de poderosos são complexos para implantar e evoluir com otempo. Um aplicativo 4D Server pode ser facilmente integrado aos sistemas de informação existentes nas empresas (tais comoOracle, Sybase ou qualquer servidor compatível com ODBC). 4D Server direciona as necessidades dos grupos de trabalho emempresas 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 aplicativo deservidor são dois lados do mesmo produto, 4D. A aplicação 4D Server está dividida em duas partes: 4D Server e 4D em modoremoto, 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 aos usuáriosmanipular 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ários podemtrabalhar com um banco de dados ou uma aplicação 4D armazenado localmente em sua máquina. No modo remoto, os usuáriosacessam à base no servidor e executam operações de banco de dados, como adição de registros, gerar relatórios e modificar odesign da base. Tudo pode ser feito com o 4D em modo local utilizando o 4D Server e 4D em modo remoto.

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

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

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.

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, os dadosem cachê, número e nome de usuários conectados, número de processos e o estado de cada um, monitoramento debackups 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 sem que sejanecessário reconfigurar ou fazer reengenharia.

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

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

Page 4: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 arquitetura baseadanas sessões permitem a cada processo usuário manipular os dados independentemente e simultaneamente. O servidorSQL de 4D Server lida automaticamente as petições SQL internas ou externas. O servidor HTTP de 4D Server responde aspetições HTTP e eventualmente as petições SOAP.

Bloqueio automático de registros: 4D Server oferece bloqueio e liberação automática dos registros, evitando problemascomuns associados à modificação dos registros “em uso”. O bloqueio de registros também elimina problemas associadoscom 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 que respondem asnecessidades dos entornos de desenvolvimento integrados modernos. Por exemplo, 4D Server pode informar aos clientesdas 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, On ServerClose Connection, e On Web Connection. Método banco de dados On Server Startup pode inicializar e carregarautomaticamente todos os objetos que se utilizarão durante o resto da sessão.

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 de banco dedados na mesma tabela ou tabelas diferentes, como adicionar, modificar, excluir, pesquisar, classificar e imprimir 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 modificar formase 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 de dados deforma idêntica para os clientes Macintosh e Windows. Incluindo plataformas desenvolvimento plataforma cruzada simultâneaou para operações de dados de entrada e modificação de dados para as equipes em diferentes ambientes materiais.

Arquitetura de plug-ins Windows e Mac OS: A versão do Windows e a versão de Mac OS de 4D Server permite quevocê instale plug-ins Windows e Mac OS X ao mesmo tempo no computador servidor. Essa arquitetura simplifica adistribuição de plug-ins 4D independentemente da plataforma. Os plug-ins são tratadas com transparência por 4D e 4DServer, 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émpode transformar toda equipe 4D remoto em um servidor web. Para maior informação sobre o motor web integrado de 4DServer 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 da tabela(adicionar, excluir e modificar). Com 4D Server, os triggers se executam na equipe servidor. Todo cliente, bem seja 4D ouuma aplicação conectada via ODBC, está sujeita as regras da base de dados controladas pelos triggers. Para maiorinformaçã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 na equipeservidor ou em vários equipes clientes. Utilizando a terminologia da indústria cliente/servidor estas funções se chamam“procedimentos armazenados.” No entanto, 4D Server oferece uma arquitetura que vai além do conceito estandarte dosprocedimentos armazenados. Com 4D Server, um procedimento armazenado é em realidade um processo servidor (ou umprocesso cliente, ver a continuação) que executa o código de maneira assíncrona e independentemente de todos os outrosprocessos executados nos equipes cliente o servidor. Em uma arquitetura cliente/servidor estandarte, um procedimentoarmazenado executa e devolve um resultado (de maneira síncrona ou assíncrona). Com 4D Server, pode iniciar umprocedimento armazenado que se executa durante uma sessão cliente/servidor e que responde a demanda, as mensagensenviados pelos clientes. Simultaneamente, pode lançar outro procedimento armazenado que não interage com os clientes,mas que sincronize os dados com um servidor SQL ou com outro 4D Server, utilizando um plug-in de conectividade 4D ouODBC. Não há limite (exceto hardware e memória) para o número de procedimentos armazenados que pode executarsimultaneamente. Um procedimento armazenado se executa em seu próprio processo e portanto, como qualquer processousuário, pode manter seu próprio contexto de base de dados (seleção atual). Adicionalmente, a linguagem 4D oferececomandos que permitem aos processos cliente ler e escrever as variáveis processo nos procedimentos armazenados(incluindo as variáveis BLOB), permitindo uma comunicação eficaz e flexível entre os clientes e os procedimentos

Page 5: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

armazenados. Utilizando procedimentos armazenados, pode adicionar novos serviços personalizados a 4D Server. Paramaior informação consulte a seção Stored Procedures.

Procedimentos armazenados executados em cliente: 4D Server permite, a partir de uma equipe cliente ou servidor,executar procedimentos armazenados em um ou várias equipes clientes. Portanto, pode otimizar a repartição de cargas detrabalho entre as equipes e o servidor, o construir aplicações utilizando as possibilidades de comunicaçã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 dados 4DServer.

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 e derestauração. Este modulo permite fazer back up de uma base em uso, sem ter que sair da aplicação. Os back-ups podemser lançados manual ou automaticamente, a intervalos regulares e sem intervenção do usuário. Em caso de um incidente, arestituiçã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 espelho lógico, oqual 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. A informaçãopode ser compartilhada de forma interativa entre estas bases. Além disso, 4D oferece um driver 4D Server ODBC quepermite a todos clientes ODBC se conectar e trabalhar com 4D Server.

Page 6: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 retorna oresultado (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, 4D Serveroferece 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 de redeo compartilhamento de arquivos. Neste modelo, todos os usuários compartilham os mesmos dados, mas o gerenciamento dedados não é controlado por um motor de base de dados central. Cada máquina cliente deve guardar uma cópia da estrutura domotor da base, enquanto o servidor é responsável pela gestão do software de compartilhamento de arquivos na rede.No modelo de compartilhamento de arquivos, cada estação de trabalho opera no local todas as ações de modificação de dados.Isso cria um tráfego significativo na rede, uma vez que cada solicitação consiste em várias comunicações através da rede. Odiagrama 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 na memóriacachê, produzindo inconsistência nos dados. Portanto, cada vez que um usuário acessa um registro, deve ser baixado do servidorde 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 de dadosmuito grandes, graças a sua eficiência e rapidez. Nesta arquitetura, o trabalho é dividido entre os clientes e o servidor paraaumentar o desempenho.O servidor contém o motor central da base, que armazena e gerencia os dados. O mecanismo de base é o único software queacessa aos dados armazenados no disco rígido. Quando um cliente envia uma solicitação ao servidor, o servidor envia oresultado. O resultado pode ser de todos os tipos desde um simples registro para alterar até uma lista ordenada de registros.Geralmente, a maioria das arquiteturas cliente/servidor são chamadas arquiteturas heterogêneas, porque as aplicações frontaisexecutadas nos computadores cliente e o motor do banco de dados executado no computador servidor são dois produtosdiferentes. Nessa situação, um driver de banco de dados é necessário para servir de tradutor entre os clientes e o servidor.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 imagem aseguir mostra um exemplo de tráfego de rede gerado quando um usuário procura cada pessoa de apelido "Smith" e mostra oprimeiro 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 que acessafisicamente aos dados, o servidor pode utilizar um cachê que conserva em memória os registros modificados até queescrevam no disco. Como os dados são enviados desde um lugar central, as máquinas clientes asseguram de recebersempre a última versão de um registro. Adicional ao controle de integridade dos dados assegura, o uso de um mecanismode cachê central acelera as operações de base de dados substituindo os acessos ao disco por acesso à memória. Sobre omodelo 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 se tornamlentas pelas transferências de rede e as limitações da máquina cliente.

Arquitetura cliente/servidor integrada de 4D Server

Page 7: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 comunicam diretamente. 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 cliente e oservidor é 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 ver nodiagrama 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 dos editoresintegrados, tais como o editor de pesquisas e o editor de tipos, usando a linguagem integrada de 4D ou através de SQL.4D oferece editores em que os métodos podem ser criados e alterados. Também lida com os elementos dos métodos taiscomo 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 os registros como 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. Esta gestãoaproveita 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áquinas clientes,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, tais comopesquisas 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 4D Serverestá 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 envia diretamenteos dados em formato que estão no cachê de disco ou de memória. Da mesma forma, quando 4D deseja atualizar umregistro 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 registros quedesempenham um papel na arquitetura cliente/servidor. Por exemplo, a seguinte imagem mostra o resultado de um pedidona tabela [Clientes].

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

Page 8: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

Page 9: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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. Parafazer 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, simplesmente façaduplo 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 pela rede. Se 4D Server e 4D estão instalados corretamente, continue com a seção Criar um banco de dados servidor. Caso contrário,se falta qualquer um dos arquivos listados acima, consulte a Guia de instalação e siga para a instalação dos arquivos.

Page 10: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 fazer isso,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 4D Server.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, se mostrará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:

A Janela de administração de 4D Server é composta por várias páginas, acessíveis através de guias. A página Monitor exibeinformações dinâmicas relativa a operação do banco de dados e também informações sobre o sistema e a aplicação 4D Server.Entre outras páginas, note que as páginas Usuários e Processos indicam respectivamente o número de usuários conectados abase e o número de processos em execução atualmente. Observe que, neste momento, o número de usuários conectados é 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 de 4D Server (servidor deaplicaçã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á prontapara 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á utilizandoum 4D remoto, definirá a estrutura da base e adicionará alguns registros à base.

Page 11: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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, introduz novosregistros 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 no desenho eos dados da base se realizam desde computadores clientes. Nesta seção, aprenderá como se conectar ao servidor e abrir abase 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 de diálogode 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:

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

Page 12: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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:

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 dados 4DServer.

Atividade do Servidor

Page 13: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

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ção Mostraros 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 de 4D

Page 14: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Server. Os quatro novos processos (agrupados em duas linhas) são da conexão do primeiro usuário ao servidor:

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 filtro localizadana 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.

Page 15: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 com um4D 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, masnão aparecem em outras telas imediatamente, para evitar a atualização da tela com frequência.

Criar formulários para a tabela [Empregados]

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. No entanto,

Page 16: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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.

Page 17: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 ou modificação deregistros. 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 de validaçã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 a janela ouas colunas caso seja necessário.Deve ter:

Page 18: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Agora os registros são guardados no banco de dados na máquina servidor. Se um segundo 4D remoto está conectado ao equiposervidor, poderia mostrar os registros que acaba de agregar. Caso contrário, se os outros clientes também estavam introduzindoregistros, pode escolher Mostrar todos desde o menu Registros para mostrar todos os registros, incluindo os que foraminseridos. 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 os registros.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, logo introduza"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 os empregadosque trabalham no departamento de Engenharia.

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

Para onde ir agora?

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

Page 19: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

menus personalizada.

Page 20: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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ção 4D.

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.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 de combinaçãoNome do método.9. Faça clique no título “Pesquisar...” e selecione “M_LIST_RECORDS” na caixa de combinação Nome do mé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.

Page 21: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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. É feitoos 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 Mac OS.Logo como seja estabelecida a conexão, poderá ver ao segundo usuário na janela de administração de 4D Server (a primeiracoluna 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 procure osregistros 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:

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).

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!

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:

Faça a mesma coisa na segunda máquina. Como o formulário está em modo edição na outra máquina, o mecanismo integradode 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 a outrosformulários, mas não pode modificar o formulário mesmo.

Page 22: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 agora estádisponível nesta.

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 Server incluiuma 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 menu de4D 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 umcliente 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, sevocê 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:

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 acerca dacapacidade web de 4D Server, leia a seção Introdução ao Web Server no manual de Linguagem de 4D.

Page 23: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 Gerenciamento da pasta Resources Registrar um banco de dados como serviço Configurar um espelho lógico

Page 24: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 da aplicaçã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 ouinterface predefinidos. Quando seleciona este comando, aparece uma caixa de diálogo estandarte de guardar arquivospara 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 pode personalizarposteriormente. 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 (Mac OS). Quando seseleciona 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 de estruturaem formato XML. Esta definição pode vir de uma estrutura exportada desde 4D ou toda aplicação de desenho. Quando éselecionado este comando, aparece uma caixa de diálogo padrão de abertura de arquivos, que lhe permite designar oarquivo 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 Sair de 4DServer).

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

Page 25: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 que todosos usuários se desconectem".Assim que você fizer isso, nenhum cliente novo pode ser conectado ao servidor.

Se você escolhe a opção "Fechar o servidor em XX min.", aparece a seguinte janela:

Uma janela idêntica aparece em cada máquina cliente 4D (o botão Cancelar não aparece nas máquinas 4D). Esta janela érepetida ou atualizada em cada máquina cliente, a cada 20 segundos ou menos, para obrigá-los a sair. Quando se cumpre olimite de tempo, o servidor fecha, mesmo se ainda existam máquinas de cliente ainda conectadas.

Se escolhe a opção "Espere a que todos os usuários se desconectem" sem entrar uma mensagem, aparecerá a seguintejanela, indicando o número de clientes que ainda estão conectados:

Em cada máquina cliente 4D, aparece a seguinte janela mostrando uma mensagem por padrão:

É escrito uma mensagem personalizado na caixa de diálogo de fechamento de 4D Server, é mostrada no lugar da mensagem porpadrão em cada máquina cliente. Por exemplo:

O servidor será fechado logo que todos os clientes estejam desconectados.

Se você escolheu a opção "Desconectar os clientes e sair", o servidor termina todos os processos e todas as conexões e éfechada depois de uns segundos.

Notas:

Em todos os casos, se nenhum cliente está conectado ao servidor quando a janela de fechamento é valida, 4D Server fechaimediatamente.Se faz clique em Cancelar na janela de apagado de 4D Server, o processo de apagado do servidor se cancela.Pode fechar a base (e desconectar os clientes) sem fechar a aplicação 4D Server utilizando o comando Fechar a base...Para obter mais informação, consulte a seção 4D Server Menus.

Page 26: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 64 bits é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 se executará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, mas emmodo emulado.Do lado do cliente, toda máquina 4D v12 (Mac OS ou Windows), pode ser conectado a 4D Server v12 64 bits. As aplicações 4Da utilizar são as versões 32 bits padrão (ver o diagrama a continuação).

Compatibilidade Em modo interpretado, as mesmas bases de dados 4D se podem executar com um 4D Server 64 bits ou um 4D Server 32 bits. Odesenvolvimento é 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 64 bits.

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 bits deve serconstruído como uma pasta e ser localizado na pasta Plugins do servidor (a antiga arquitetura baseada nos arquivos .4DX e.RSR na pasta Win4DX já não é suportada). Os plug-ins 32 bits não são carregados por 4D Server 64 bits. No entanto,podem ser armazenadas na pasta Plugins do servidor e ser distribuído nas máquinas remotas, sem inicialização. Osmecanismos que chamam ao servidor (por exemplo a escritura ou a leitura de modelos no servidor com o comando WRSET 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 64 bitsdeve 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.

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 uma novaopção Compilar também para os processadores 64 bits na página "Compilador" das Propriedades da base:

Page 27: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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. Estesarquivos 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 erro durante acompilaçã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ída aaplicaçã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, 4DServer atribui o maior tamanho possível e lhe informa ao usuário no início da aplicação. Então é possível sair ou continuar com otamanho 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 um logoque aparece na página Monitor da janela de administração do servidor:

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, SETDATABASE PARAMETER e Get database parameter. Para obter mais informação, consulte as descrições destes comandos.

Page 28: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 Server 64bits, se recomenda passar no parâmetro pilha um valor mínimo de 128 000 bytes e aumentar ele em caso de uma cadeia dechamada 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 seguintescomandos não podem ser executados em um servidor 64 bits. Se forem chamados, por exemplo dentro de um procedimentoarmazenado, é devolvida uma caixa de diálogo de advertência com o erro 67. Este erro pode ser interceptado por um método degestã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

Page 29: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

Desde 4D v14 R3, 4D oferece uma versão operacional de 4D Server 64 bits para OS X. O desenvolvimento desta versão serealiza de maneira continua e passo a passo, e a funções adicionais se ativam com cada versão do programa de subministrocontinuo.

Quando esteja disponível em sua versão final, este novo produto permitirá a suas aplicações 4D Server aproveitar ao máximo opoder das máquinas 64 bits de Apple.

A principal vantagem da tecnologia de 64 bits é que mais memória RAM pode ser direcionada. Esta seção cobre asparticularidades concernentes a implementação e uso da versão de 64 bits 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.

Arquitetura

A aplicação 4D Server dirigida as arquiteturas 64 bits é uma versão específica, dedicada a este entorno (não funciona em umsistema 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. As aplicações4D 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 32 bits. Odesenvolvimento é idêntico independentemente da aplicação que se utiliza (salvo as limitações que se indicam a continuaçã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.

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çãoCompilar também para os processadores de 64 bits disponível na página "Compiler" das Propriedades da base:

Page 30: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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. Estes arquivospodem ser executados seja com um 4D Server 32 bits ou 64 bits. De forma pré determinada, esta opção não está selecionada.

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

Compatibilidade do código compilado

Com a finalidade de suportar a arquitetura OSX 64 bits, se modificou o compilado integrado em 4D v14 R3. Em consequência, sóas bases de dados compiladas com 4D v14 R3 (ou superior) podem ser executados em OSX de 64 bits. Isto significa que:

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

Tenha em conta, no entanto, que o código compilado 64 bits produzido com 4D V14 R3 (assim como o código 32 bits) écompatível com todas as versões v14.x e v14 Rx de 4D. Uma vez recompilado, suas bases podem ser executadas com todas asversões de 4D v14.x e 4D v14 Rx, tanto em 32 bits como em 64 bits.

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 Server 64bits, se recomenda passar no parâmetro pilha um valor mínimo de 128 000 bytes 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 em 4D Server 64 bits para OS X:

Função/Tecnologia Comentário

XSLT with Xalan _o_XSLT APPLY TRANSFORMATION, _o_XSLT SET PARAMETER e _o_XSLT GET ERRORnã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 seu lugar (verNovo ícone formato de imagem não disponível). O formato PICT é obsoleto a nível global em 4D,ver também AP Is Picture Deprecated

cicn icons O comando GET ICON RESOURCE não é suportado no servidor (*)Recordatório: os arquivos de recursos Mac OS são obsoletos desde 4D v11.

Font number Não suportadoArquivos de base.RSR Os arquivos RSR não serão abertos automaticamente. É necessário utilizar Open resource file

Arquivos de recursoseditáveis

Create resource file não é suportado no servidor (*); só pode ser utilizado arquivos open resource emmodo de leitura

ModocompatibilidadeASCII

Só se suporta o modo Unicode

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

Page 31: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Funções desativadas

Algumas funções foram desativadas temporariamente nesta primeira versão de 4D Server 64 bits para OS X. Serão novamenteintroduzidos progressivamente a medida que se complete sua adaptação a 64 bits. Esta tabela oferece o estado atual dasfunções que ainda não estavam disponíveis na versão preliminar inicial (v14 R3) de 4D Server 64 bits para OS X.

Função/Tecnologia Estado atualComunicação Porta serial Desativado - Será suportado em futuras versõesEditor de formulários (executado no servidor) Desativado - Será suportado em futuras versõesCaixas de diálogo de importação/exportação Desativado - Será suportado em futuras versõesEditor de etiquetas Desativado - Será suportado em futuras versõesGráficos gerados no servidor Disponível desde a versão R4Cliente HTTP Gestão dos certificados clientes

Disponível desde a versão R4 4D Internet Commands (plug-in)Disponível desde a versão R4 (ver 4D Internet Commands, versão 64 bits para OS X)4D Pack (plug-in)Temporariamente não disponível4D ODBC Pro (plug-in)Temporariamente não disponível4D For OCI (plug-in)Temporariamente não disponível[#/table]

Page 32: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 na máquinaservidor. 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 os banco dedados abertos recentemente por 4D Server. Para reiniciar este menu, selecione o comando Apagar lista de recentes. 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 acaixa de diálogo de fechamento do servidor, o que lhe permite definir o modo de desconexão dos possíveis clientes 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 o bancode 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 baixa todosos serviços de Server

(Comandos disponíveis em Windows) Estes comandos permitem administrar o registro do banco de dados como Serviço. Estafunçã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 de dados/Gestãode 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.).

Page 33: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

O botão Propriedades do banco de dados abre o tema “Backup” das Propriedades do banco dados, que lhe permitevisualizar, 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

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 da aplicação,permitindo definir numerosas performances do banco de dados. Para maior informação sobre esta caixa de diálogo, consulte omanual de Desenho da documentação de 4D. As preferências especificas de 4D Server são descritas nas seções Preferênciasde 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 no capítuloJanela 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.

O Explorador de execução permite visualizar o comportamento dos diferentes elementos estruturais da base e verificar que osrecursos disponíveis sejam utilizados corretamente. O Explorador de execução é particularmente útil na fase de desenvolvimentoe 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 de interrupção eCaptura. O funcionamento do Explorador de execução em 4D Server é idêntico ao de 4D. Para obter mais informações, consulteo 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 para controle,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 para abrirum banco de dados no modo"manutenção" (que mostra uma caixa de diálogo padrão de abertura de arquivos de maneira quevocê pode nomear o banco de dados a abrir). Modo de manutenção é mais especificamente aplicado para operações, comocompactação ou a abertura de bases danificadas.

Page 34: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

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

Page 35: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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á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.

Rede

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álogo deconexão.

Quando a opção estiver selecionada (opção selecionada como padrão), o banco se torna público e aparece na lista debancos 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. Paraconectar, os usuários devem introduzir manualmente a direção do banco na página Personalizado da caixa de diálogo deconexã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 napágina de publicação dinâmica TCP/IP da caixa de diálogo de conexão (ver a seção Conexão a um banco de dados 4DServer).Como padrão, 4D Server utiliza o nome do arquivo de estrutura do banco. Pode escrever qualquer nome personalizado que

Page 36: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

deseje.

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, esta caixade 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 Server e 4Dem modo remoto é 19813.Personalizar este valor é necessário quando se deseja utilizar várias aplicações 4D no mesmo aparelho com o protocolo TCP,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 ao banco.Para atualizar as outras máquinas clientes não conectadas, apenas deve entrar o novo número de porta (precedido por doispontos) depois da direção IP da máquina servidor na página Personalizado da caixa de diálogo de conexão. Por exemplo, se onovo 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ção dinâmicaTCP/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).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 porta indicadadepois dos dois pontos ':' na direção IP que se mostra na caixa de diálogo de conexão). A conexão a outros servidoresatravé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 abertas deforma explícita.

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) entre 4DServer 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 se desativa.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 os métodosremotamente. 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 4D conectadasquando a pasta do banco foi modificada durante a sessão (a pasta se sincroniza automaticamente no equipamento remoto cadavez 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 local podeser 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 a notificaçãopelo servidor.Perguntar: quando é enviada a notificação pelo servidor, é mostrada uma caixa de diálogo nas máquinas cliente, indicandoa 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 foi modificado.Para mais informação, consulte a seção Gerenciamento da pasta Resources.

Abrir a estrutura em modo

Page 37: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

Page 38: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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" da páginaCliente-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 (-) permiteeliminar 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 nacoluna 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 .* indicatodas as direções que começam com 192.168.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 de

Page 39: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

ordenaçã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 porque nenhumacumpria ao menos uma regra. Se deseja negar somente determinadas direções (e permitir outras), adicione uma regraAutorizar * 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 etiqueta Autorizar eo caractere * (todas as direções).

Page 40: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 em modoseguro.A comunicação cliente/servidor está baseada no protocolo SSL (Secured Socket Layer).

O protocolo SSL e as conexões cliente/servidor

O protocolo SSL foi desenhado para dar seguridade aos intercâmbios de dados entre duas aplicações, principalmente entre umservidor web e um navegador. O protocolo SSL 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 do protocolo SSL, consulte aseção Usar protocolo SSL no manual de Linguagem de 4D.

Quanto a 4D Server e 4D Client, o protocolo SSL permite reforçar a segurança das comunicações. Os mecanismos de geraçãode chaves e de autenticação são manipulados de forma transparente por 4D Server e não requerem de nenhuma configuraçãoadicional do usuário.

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

Configurações

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

Para usar SSL 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. estáinstalado corretamente. Este arquivo é a interface da capa de segurança (Secured Layer interface) dedicada à gestão do SSL.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: Abra apágina "Cliente-Servidor /Opções rede" das propriedades da base da caixa de diálogo e selecione a opção de Criptografar asconexõ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

O símbolo “acento circunflexo” ( )̂ aparece a frente do nome das bases publicadas em modo SSL na página de conexão TCP/IP a4D Server:

Nota: Quando o nome de uma base não se publica dinamicamente na página de conexão TCP/IP, o usuário pode introduzirmanualmente na página Personalizado (ver as seções Conexão a um banco de dados 4D Server e Preferências depublicação). Neste caso, deve iniciar o nome com um ^ (acento circunflexo) se a base se publica em modo seguro; casocontrário a conexão será rejeitada.

Page 41: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Gerenciamento da pasta Resources

A pasta de Resources da base é usada para compartilhar os dados personalizados (imagens, arquivos, subpastas, etc) entre amáquina do servidor e todos os computadores cliente. No computador do servidor, a pasta de Resources simplesmente deveestar 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 o servidorcada vez que o cliente se conecta.

Por outro lado, computadores cliente podem ser "notificados" dinamicamente durante uma sessão quando o conteúdo da pastaResources 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 a evitaras 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áquina cliente naorigem da modificação.Ou pela programação, através de um comando NOTIFY RESOURCES FOLDER MODIFICATION. Este comando é útilquando 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 dapasta Resources" durante uma sessão. Isso também pode ser definido individualmente, usando o comando SET DATABASEPARAMETER. Três opções estão disponíveis: sem sincronização, sincronização automática ou perguntar. Para obter maisinformações, consulte as seções Preferências de configuração e Preferências de publicação e a descrição do comandoSET DATABASE PARAMETER. Finalmente, cada máquina cliente pode sincronizar com o servidor em qualquer momento através do comando Update LocalResources no menu ação do Gerenciador de recursos. Para obter mais informações sobre o Explorador de recursos, consulte oManual de Desenho 4D.

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

Page 42: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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, antesmesmo 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 um incidenteque 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 (ajanela 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 como umserviço no menu Arquivo de 4D Server. Na próxima vez que você inicia a máquina, 4D Server iniciará automaticamente eserá aberto o banco de dados atual. Você pode registrar quantos bancos de dados quiser. Cada base pode registrarsomente uma vez.Nota: Em Windows, este comando pode tornar-se cinza quando o acesso as funções de gerenciamento de serviços sãorestritas. 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 da aplicação eescolha 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" (para fazerisso, 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 uma mensagemde erro. Por padrão, 4D Server se executa com a "Conta sistema local", a qual pode não necessariamente contar com osparâmetros necessários para utilizar sua aplicação. Em particular, se deseja realizar impressões, deve abrir a sessão comuma conta de usuário que tenha parâmetros de impressão por padrão. Para mudar de conta, vá ao Painel de controle>Sistema e segurança> Ferramentas de administração> Serviços. Na lista de Serviços, faça clique em 4D Server,escolha a opção Propriedades, e logo vá a guia Conexão e defina a conta com a que o servidor deve 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á em cinzase 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 server apartir 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 como umserviço ao inicio. Neste caso, os três elementos do menu são desativados. Para parar o serviço, utilize o painel de controlede Serviços.

Page 43: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Configurar um espelho lógico

4D Server oferece uma solução integrada que permite configurar um sistema de backup sob um espelho lógico. Esta soluçãoestá baseada nos dois novos comandos: New log file e INTEGRATE 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áquina umacopia desta base que se atualiza periodicamente. Ambas máquinas se comunicam pela rede com a máquina em funcionamentotransmitindo regularmente para a máquina de espelho as mudanças realizadas no banco de dados através do intermediário doarquivo de histórico.

Desta maneira, quando há um incidente que afeta o banco de dados operacional, o banco de dados espelho pode ser utilizado para conseguir rapidamente voltar a trabalhar sem a perda de dados. Por outra parte, o banco de dados operacionais 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 backups periódicos ea utilização de um arquivo de histórico é nas maiorias dos casos uma solução simples, confiável e econômica. Torna-se o backupde base regularmente (a cada 24 horas geralmente). Durante o backup, a base permanece acessível em modo somente deleitura. Este período de indisponibilidade parcial é muito curto e mesmo no caso de grandes bancos de dados (maiores de 2 GB),não dura mais que 5 minutos. Esta operação ainda pode ser programada para realizar-se fora dos períodos normais de utilizaçãoda 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 somente no modo leitura, 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 bases noprocesso de desenvolvimento, onde freqüentes mudanças estruturais farão que o espelho seja rapidamente obsoleto ou querequerem 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: New log file e INTEGRATE LOGFILE. 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 base está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 4D Extensions)nos permite distinguir entre as duas versões (operacional e espelho) e, por conseguinte, proceder a operações adequadas.Na máquina 4D Server em funcionamento, o arquivo de histórico é "segmentado" a intervalos regulares com o comandoNew log file. Dado que nenhuma copia de seguridade é levada a cabo no servidor principal, a base se mantém disponívelpermanentemente em modo leitura-escritura.Cada “segmento” do arquivo histórico é enviado para a máquina espelho, onde junta-se a base espelho usando o comandoINTEGRATE 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áquina espelho(usando 4D Internet Commands para uma transferência via FTP ou por sistemas de mensagens, serviços web, etc),Um processo na máquina espelho destinada a supervisionar a chegada de novos "segmentos" do arquivo de histórico e deintegrar usando o comando INTEGRATE 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 uso como autilização simultânea destes dois modos de backup irão conduzir à dessincronização das bases operacionais e espelho.

Page 44: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 do menuArquivo, 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 espelho quando eleestá a realizar uma das duas operações básicas: a integração do arquivo de histórico da máquina operacional e o backup dobanco 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ção de umarquivo 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. Esta possibilidade se baseia no comando [#cmd id="1312"/]. Paraobter mais informação, consulte a descrição deste comando.

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 backup comespelho:

Page 45: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

1

Inicialização da aplicação, backup doarquivo de dados e ativação (casoseja necessário) do arquivo dehistórico.4D cria o arquivo MyDatabase.journal.Para maior segurança, o arquivo dehistó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 exista umbackup totalmente programado).

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

3Decisão de atualizar o espelho (porexemplo, depois de um certo tempo deoperaçã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ção dométodo que contém o comando INTEGRATE LOG FILE para integrar oarquivo 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ção dométodo que contém o comando INTEGRATE LOG FILE para integrar oarquivo 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ção dosarquivos da base pelas da baseespelho. Inicio da aplicação. 4DServer solicita o arquivo de histórico:seleção do arquivo transferido desde amáquina espelho.

Saímos da base. Voltar ao passo 2.

Page 46: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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árias páginasque 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 este ponto,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

Page 47: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 4D Server:

Nota: Em Windows, a visualização desta informação está relacionada com os direitos do usuário que abriu a sessão. Para maiorinformaçã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 de rede e aocupaçã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".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".

Page 48: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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. Esta memóriaé atribuída pelo sistema de acordo as necessidades da aplicação. O valor na parte inferior direita da área indica aquantidade de memória em uso. O valor na parte superior esquerda indica a quantidade máxima de memória virtualutilizada. 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 parte inferiordireita da área indica a quantidade de memória em uso. O valor na parte superior esquerda indica o tamanho total damemó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álises eficazda 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 de 4DServer.

Á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 (arquivo dedados + í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 outras aplicações ememó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 outras aplicações.Esta taxa se recalcula permanentemente. A taxa de ocupação por 4D Server também pode ser mostrada dinamicamente na área gráfica. Rede: Número instantâneo de bytes recebidos pela rede por 4D Server e número de bytes enviados pela aplicação. Estevalor 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á usaruma 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."

Page 49: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Página Usuários

A página Usuários lista os usuários conectados à base:

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 conta ospossí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 lista devalores 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).

Á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ário 4D,Nome de máquina e Nome de sessão.

Page 50: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 neste caso éde tipo OU.

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

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. Pode selecionarvárias linhas pressionando a tecla Shift para uma seleção adjacente ou Ctrl (Windows) / Comando (Mac OS) para uma seleçãonão adjacente.

Enviar mensagem: Este botão permite enviar uma mensagem aos usuários 4D selecionados na janela. Se nenhum usuário4D 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ágina Processoda janela de administração. Ao fazer clique no botão, 4D Server passa para a página Processos e introduz os nomes deusuários selecionados na área de pesquisar/filtrar desta página. Para maior informação, consulte a descriçã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: parafazer isto, pressione Alt (Windows) ou Opção (Mac OS) enquanto pressiona o botão Desconectar.

Page 51: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 de linhasmostradas na lista que corresponda o texto introduzido na área de pesquisa. A pesquisa/filtro se realiza nas colunas Sessão eNome 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 íconeem forma de pessoa.Processos 4D: processos gerados pelo motor de 4D Server. Estes processos estão precedidos por um ícone em formatode roda serrilhada.Processos livres: processos inativos mas que são conservados temporariamente e que podem ser reutilizados em qualquermomento. Este mecanismo otimiza a reatividade de 4D Server. Estes processos estão precedidos por um ícone cinza emforma de pessoa.

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

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

Page 52: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

É 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 (MacOS) 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úmero atribuídopelo servidor. No caso de um processo global, este número pode ser diferente do assinalado no computador cliente.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:Servidor de aplicaçãoServidor SQLServidor DB4D (motor do banco de dados)Servidor webServidor SOAPProcesso cliente 4D protegido (processo desenvolvido de um 4D conectado)Processo cliente 4D principal (processo principal de um 4D conectado). Processo colaborador, equivalente ao servidor doprocesso criado na máquina cliente)Processo base 4D client (processo paralelo a um processo 4D client. Processo preemptive responsável de controlar oprocesso cliente 4D principal correspondente)Processo em espera (anterior o futuro "Processo cliente 4D banco de dados")Processo 4D client (processo executado no 4D conectado)Procedimento armazenado (processo lançado por um 4D conectado e executado no servidor)Método web (lançado por um 4D ACTION por exemplo)Método SOAP (lançado por um serviço web)Método SQL (lançado por uma petição SQL)

Nota: Um processo cliente 4D principal e seu processo base 4D client "twinned" são agrupados quando a opção Mostrar osprocessos 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.

Abortar processo: permite abortar os processos selecionados. Ao fazer clique neste botão, aparece uma caixa de diálogode 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 cancelar aoperação. Observe que a janela do depurador não mostra quando o código 4D é executado no computador servidor (por exemplodentro 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, pressionando atecla 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á ativoquando pelo menos um processo usuário está selecionado.

Page 53: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 o servidor.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 ao ladoda estrutura do arquivo base. O botão Ver relatório (chamado Baixar relatório se a operação for realizada desde umamá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. Para obtermais 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ção requerparar 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:

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ções adicionais,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 do arquivobase. O botão Ver relatório (chamado Baixar relatório se a operação é feita de um computador cliente) permite que 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 se iniciou

Page 54: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

(dias, horas e minutos). O botão Reiniciar o servidor... permite reiniciar imediatamente o servidor. Ao fazer clique neste botão, aparece a caixa dediálogo de fechamento da base 4D Server de modo que possa escolher o modo de interromper a operação (ver a seçãoSair de 4D Server). Depois de reiniciar, 4D Server faz o relançamento automaticamente da base. Os usuários 4D podemser reconectados. Nota: se a petição de reinicio se realiza desde uma máquina 4D client remota, esta máquina se reconecta automaticamentepor 4D Server.Último backup: Esta área indica a data e hora do último backup da base e fornece informações sobre o próximo backupautomático agendado (se houver). Os backups automáticos são configurados usando a página "periodicidade" daspreferê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 acordo comos 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 (excluindoas solicitações da web): hora, número de processo, usuário, o tamanho da solicitação, duração do processo, etc., quepodem ser usados para analisar a operação do servidor. Esse arquivo é denominado 4DRequestsLog_X (onde X é onúmero sequencial do arquivo) e é armazenado na pasta Logs da base. Uma vez que o arquivo chegar a um tamanhode 10 MB, fecha e gera um novo arquivo, com um número sequencial aumentado.O arquivo de eventos de depuração armazena cada execução de um método, comando 4D ou comando de plug-in emum arquivo chamado "4DDebugLog.txt", localizado automaticamente na pasta Registros da base, junto ao arquivo deestrutura. Cada evento se registra de maneira sistemática no arquivo antes de sua execução, o que garante suapresença no arquivo inclusive se a aplicação é fechada inesperadamente. Tenha em conta que este arquivo éapagado e reescreve cada vez que é iniciada a aplicação. Pode configurar este arquivo com o comando SETDATABASE 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 istopode prejudicar significativamente o desempenho do servidor, ele é reservado para a fase de desenvolvimento doaplicativo. 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 parar oregistro 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.

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

Page 55: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 permite administraresta 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ção servidor.

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.

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 de ser o

Page 56: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

único que modifica os dados. Também é possível usar essa função na preparação de uma operação de manutenção que requerque 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 de estruturae de dados e nome do arquivo de histórico da base. Pode fazer clique no nome do arquivo de estrutura ou de dados com afinalidade 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 a ativaçãodo 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 valor dependeda licença instalada no computador servidor."Used:" indica o número de conexões que atualmente estão sendo utilizadas.

Page 57: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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ão quepermite 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 neste botão,o servidor SQL de 4D Server é detido imediatamente; não responde mais as petições SQL externas recebidas no portoTCP designado.Quando o estado do servidor SQL é "Detido," o botão se chama Iniciar o servidor SQL. Se você faz clique neste botão, oservidor SQL de 4D Server inicia imediatamente; responde as petições SQL externas recebidas no porto TCP 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

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 4D nemWeb).

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 computador servidor.

Page 58: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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. Oservidor web permite publicar conteúdo web tal como páginas HTML ou imagens para os navegadores web. O servidor SOAPadministra a publicação dos serviços web. Estes dois servidores são apoiados no servidor HTTP interno de 4D Server. A páginaconté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 clique nestebotão, o servidor HTTP de 4D Server é detido imediatamente; o servidor web e o servidor SOAP não aceitam maissolicitações.Quando o estado do servidor HTTP é "Detido," o botão se chama Iniciar o servidor HTTP. Se você fizer clique nestebotão, o servidor HTTP de 4D Server inicia imediatamente; são aceitas as petições web e as petições SOAP (observeque é possível parar separadamente o servidor SOAP, ver o parágrafo "Informação SOAP").

Notas:

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) ou porprogramaçã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 web estáassociado diretamente ao servidor HTTP, as petições web são aceitas quando se inicia o servidor HTTP e é rejeitadoquando se detém.Conexões máximas: número máximo de conexões web autorizadas. Este valor depende da licença instalada no computadorservidor.

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 se aceitem aspetições SOAP, deve ser iniciado o servidor HTTP e o servidor SOAP deve aceitar explicitamente as petições (ver o botãoAceitar/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" das Preferê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

Page 59: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 / totalde 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 4D nemSQL) 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 do servidorHTTP (arquivo logweb.txt).

Page 60: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Página Monitor tempo real

A página Monitor tempo real permite supervisionar em tempo real o progresso das operações "longas" realizadas pela aplicaçã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 caso de umamá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 automaticamente quandofinaliza a operação (pode selecionar a opção Mostrar operações pelo menos 5 segundos para conservar em tela asoperaçõ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. Maisespecificamente:

Criada em: indica se a operação resulta de uma ação cliente (Criada em client) ou se foi iniciada explicitamente noservidor 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) o planode pesquisa.Sub-operações (se existir): operações dependentes da operação selecionada (por exemplo, eliminação de registrosrelacionados antes da eliminação de um registro pai).Detalhes do processo: informação adicional concernente a tabela, o campo, o processo ou o cliente disponí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 maior informaçã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 funcionamento podedesacelerar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintesmaneiras:

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.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.

Page 61: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 durante pelomenos 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.

Page 62: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

Page 63: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 chamada explícita aQUIT 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étodo bancode 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.

Page 64: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 em4D Server. O Método banco de dados On Server Shutdown NÃO é chamado por outro ambiente 4D diferente de 4D Server.Para fechar a base atual no servidor, pode selecionar o comando de menu Fechar a base... no servidor. Também pode escolhero 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 um por um,sem distinção.Se existe um Método banco de dados On Server Shutdown, 4D Server executa este método em um novo processolocal. Portanto pode utilizar este método base para informar os outros processos, via comunicação interprocesso, quedevem deter sua execução. Note que 4D Server sairá finalmente, o Método banco de dados On Server Shutdown poderealizar todas as operações de limpeza ou fechamento que você queira, mas não pode recusar a sair e em algum momentoterminará.

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, lembreque 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, se desejaestar seguro de que os procedimentos armazenados se executem completamente antes de ser abortados pelo servidor, oMétodo banco de dados On Server Shutdown deve indicar aos procedimentos armazenados que devem terminar suaexecução (por exemplo, utilizando uma variável interprocesso) e deve permitir a eles fechar (por meio de um laço de x segundosou 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-se aoservidor, utilize o Método banco de dados On Exit.

Page 65: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 um equiporemoto 4D inicia um processo de conexão. O Método banco de dados On Server Open Connection NÃO é invocado poroutro 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 menu oucaixa 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. Namáquina cliente, o processo executa o código e envia as petições a 4D Server. No equipo servidor, o processo 4D Clientmantém o entorno da base de dados do processo cliente (as seleções atuais e o bloqueio de registros para o processo usuário)e responde aos pedidos enviadas pelo processo executado na máquina cliente. O processo base 4D Client está a cargo decontrolar 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 motor dabase e processo cooperativo para o acesso à linguagem) só são criadas durante a execução do código do lado do cliente. Porexemplo, estes são os detalhes de uma sequencia de código 4D que se executa em um novo processo cliente:[#code4D]// 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 que provocoua chamada do método.Por exemplo, se um 4D remoto se conecta a uma base 4D Server interpretada, é iniciado o processo usuário, o processo dedesenho e o processo de registro do cliente (por defeito). O Método banco de dados On Server Open Connection se executatrês vezes seguidas. A primeira vez dentro do processo principal, a segunda vez no processo de inscrição do cliente e a terceiravez no processo de desenhoo. Se os três processos são respectivamente o sexto, sétimo e oitavo processo a iniciar-se noequipo servidor, e é chamado Current process desde o Método banco de dados On Server Open Connection, a primeiravez 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 do processo4D Client no servidor, independente do processo executado no cliente. Além disso, no momento em que se invoca o método, oprocesso 4D Client ainda não foi nomeado (PROCESS PROPERTIES não devolverá neste momento o nome do processo 4DClient).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 uma tabela devariá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 e espera umresultado Inteiro longo. O método deve portanto ser declarado explicitamente com três parâmetros Inteiro longo assim tambémcomo com um resultado de função Inteiro longo:

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 considera que omé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:

Page 66: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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, como parâmetrosa um comando 4D. No entanto, oferecem uma maneira particular de identificar um processo 4D Client entre o Método banco dedados On Server Open Connection e o On Server Close Connection database method. A combinação destes valores éúnico no momento de uma seção 4D Server. Ao guardar esta informação em uma tabela ou em um array entre processos, os doismétodos base podem trocar informações. No exemplo ao final desta sessão, os dois métodos base utilizam esta informação paraarmazenar a data e hora de inicio e fim de uma conexão no mesmo registro de uma tabela.

Exemplo 1

O seguinte exemplo mostra como manter um histórico das conexões a base de dados utilizando o Método banco de dados OnServer Open Connection e utilizando o On Server Close Connection database method. A tabela [Server Log] (mostrada acontinuaçã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 o OnServer 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 ` 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

Page 67: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

End if

Page 68: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 4D Client,ver a descrição deste método base.

Exemplo

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

Page 69: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

Page 70: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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) para selecionar omodo 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és dasseguintes abas: Recente, TCP/IP e Personalizado:

Page 71: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Se você selecionar a opção Exibir essa janela na próxima vez, essa caixa de diálogo aparecerá automaticamente na próximavez 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 dessa lista, 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. Paramaiores 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). Nessecaso, a conexão só pode ser realizada manualmente na aba "Personalizado".

Aba “Recente”

Page 72: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

A aba Recente memoriza a listagem de todos os 4D servers usados recentemente. A lista está ordenada alfabeticamente. Paraconectar-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 banco dedados não sejam publicados automaticamente na rede (veja a seção Preferências de publicação). Nesse caso, o nome nãoaparecerá na página "TCP/IP". Entretanto, se você sabe o endereço IP do servidor de uma base de dados cujo nome 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 aba Recentequando 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 estãosendo executados simultaneamente na mesma máquina, o endereço IP deve ser acompanhado de uma vírgula e um númerode 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 aseção Preferências de configuração).

Page 73: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 na abaRecente.Nota: Se o banco de dados for publicado usando a opção de criptografia, você deve adicionar um acento circunflexo (^) antes donome; do contrário a conexão será recusada. Para maiores informações, veja a seção Criptografar conexões cliente-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 locais são ainformaçã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 aestrutura do banco de dados foi modificada entre duas conexões. Na maior parte do tempo, essa opção é desnecessária. Mesmoassim, 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 e conectar-se a banco de dados remotos, esse menu listará os dois tipos de bancos de dados. Os bancos de dados remotos estãodisponí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 e simplificar aabertura ou conexão com os bancos de dados 4D. Geralmente, um arquivo de acesso pode salvar o endereço de um servidorremoto 4D Server assim como os identificadores de conexão, assim eliminando diversas operações para o usuá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 tipo dearquivo para construir o submenu "banco de dados recentes": um arquivo .4DLink é automaticamente gerado por 4D quando umbanco 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 usadospara conectar-se a bancos de dados locais, e a pasta Remoto contém os arquivos "4DLink" que podem ser usados paraconectar-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 como identificadoresde 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 DTD sechama 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 (apenas para aabertura de bancos de dados locais).

Page 74: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Administração de máquinas remotas

Pode administrar o computador 4D Server desde um 4D remoto (computador client) abrindo a janela de administração de 4DServer (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 de privilegio (-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 pode atuarsobre os processos e o inicio dos servidores. Quando é mostrada a janela de administração do servidor em uma 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 servidor sereinicie (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 de sermostrado.

Page 75: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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ão remota. OGerenciador 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. A compilaçãopode 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 a função decompilação.

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

Enquanto uma máquina cliente realiza uma compilação, as outras máquinas clientes podem seguir trabalhando e modificar osmétodos ou qualquer outro elemento estrutural. O código compilado e o código interpretado serão diferentes, o que significa queserá 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 reinicio doservidor em compilado/interpretado, aparece a caixa de diálogo estandarte de fechamento do servidor que lhe permite definir umtempo de espera ou enviar uma mensagem de advertência aos outros clientes (ver a seção Sair de 4D Server). Quando oservidor 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 com muitosmétodos), como a operação gera uma grande quantidade de intercâmbios na rede.

Page 76: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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

Page 77: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 banco dedados. Os triggers é uma ferramenta muito poderosas que permite restringir as operações em uma tabela, como também evitarperdidas acidentais de dados ou sabotagem. Por exemplo, em um sistema de faturação, pode evitar que agregar uma fatura semespecificar 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 executam nocontexto dos processos "gêmeos" dos processos usuários que chamam a operação do banco de dados. Estes processosgêmeos compartilham o contexto da base com ls processos usuário no computador cliente (em particular, o estado dastransações e o bloqueio dos registros) mas não compartilham o contexto da linguagem (variáveis, processos, conjuntos, seleçõesatuais). 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 (ou emqualquer 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ça dosprocedimentos armazenados, são executados nos processos "gêmeos" do processo cliente e se beneficiam de seu contexto dobanco 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 StartupJanela de administração de 4D ServerMé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 os métodosbase.

4D Server e as variáveis

Page 78: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 de variáveisprocesso. Essas variáveis processo podem ser criadas e usados dinamicamente durante cada fase da execuçã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 servidor ouprocesso cliente) e o tipo destes objetos (objetos locais, processo ou interprocesso). Para maior informação, consulte a seção 4DServer, conjuntos e seleções temporais.

Page 79: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 no qual foicriado, se foi criado em um processo cliente, pelo processo "gêmeo" criado no servidor. Os conjuntos processo se apagamlogo que termina a execução do método de processo. Os objetos processo não necessitam um prefixo particular no nome.Conjuntos/seleções temporais interprocesso: um objeto interprocesso é visível para todos os processos na máquina(cliente ou servidor) onde foi criado. Um conjunto ou seleção temporal é um objeto interprocesso se o nome do conjunto estáprecedido pelos símbolos (<>) — um signo “menor que” seguido por um signo “maior que”. Nota: esta sintaxes pode serutilizada em Windows e Macintosh. Além disso, em Mac OS unicamente, pode utilizar o símbolo diamante (Opção-Shift-V).Conjuntos/Seleções temporais/clientes: um objeto local/cliente é visível unicamente no processo onde foi criado. O nomede um objeto local/cliente está precedido pelo signo dólar ($). Nota: ainda que seu nome não começa por $, o conjuntosistema 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 realizar umaoperação de tipo DIFFERENCE, INTERSECTION ou UNION, tenha certeza de que todos os conjuntos possam ser vistos namá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 suas necessidadesde visibilidade.

Page 80: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 uma solicitaçãopara 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 é enviadavárias vezes durante uma sessão, você pode levar um longo tempo enviar o código na rede, a análise e a interpretação dopedido. Assim, a idéia era encontrar uma maneira de enviar o pedido através da rede, analisados e interpretados uma vez e, emseguida, unicamente executado cada vez que receba de uma estação cliente. A solução foi preservar o código fonte do pedido(em outras palavras, um procedimento) no servidor e que o cliente envie uma solicitação com apenas o nome do procedimentopara 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ção docó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 pode executarum método. Este método é chamado um método processo (ver a seção Métodos de projeto no manual Linguagem 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 Server como noprimeiro 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 ter umaseleçã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ão reconhecidasunicamente 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áquina servidordeve ser considerada como uma máquina que não só responde aos clientes 4D e aos navegadores web, e também é capaz deexecutar processos que interagem com outros processos que passam na máquina servidor e nas máquinas remotas.Da mesma forma que 4D oferece um entorno multitarefas aos processos usuário que passam na máquina, 4D Server oferece umentorno multitarefas aos procedimentos armazenados. Por exemplo, 4D Server mantém uma tabela das variáveis interprocessoque 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 o métodoutiliza um processo "twinned" do processo cliente, que lhe permite em particular ser beneficiado do ambiente deste processocliente. Neste caso, não é um procedimento armazenado 4D. Para maior informação, consulte a seção Executar no atributoservidor.

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 aos

Page 81: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

procedimentos 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 procedimento armazenadopode utilizar conjuntos e seleções temporais, acessar a documentos no disco, trabalhar com BLOBs, imprimir registros, etc.Pense simplesmente que no lugar de fazer algo na máquina 4D local, ele faz na máquina servidor ou em várias má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 que podealcançar implementando um procedimento armazenado.Os procedimentos armazenados executados em um ou várias máquinas clientes permitem otimizar a otimização da repartição detarefas entre clientes e a comunicação entre várias máquinas clientes. Consulte o comando REGISTER CLIENT no manual deLinguagem para ver um exemplo de procedimentos armazenados executados em várias máquinas clientes.No entanto, a vantagem principal da arquitetura dos procedimentos armazenados é a dimensão adicional que da a 4D Server.Utilizando procedimentos armazenados pode implementar seus próprios serviços 4D Server. O único limite é sua imaginação. Oexemplo na seção Importação baseada nos procedimentos armazenados (exemplo) mostra um procedimento armazenadoque oferece informação sobre 4D Server a seus clientes. Pode, por exemplo, listar os volumes da máquina servidor. Esteexemplo pode ser expandido facilmente para reenviar a informação sobre os diretórios ou documentos 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 impliquem elementos deinterface (tal como menus, janelas, formulários...). Os mecanismos de gestão de interface não são lidados no servidor.Devem ser evitados os comandos que provocam a aparição de caixas de diálogo no computador servidor bem como as caixasde diálogo com entrada de dados. Esta é a lista de comandos que NÃO deve utilizar em procedimentos armazenados executados no servidor. Estes comandos seclassificam 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 de alertaque indica que o comando não pode ser executado em 4D Server. É retornado o erro #67, o qual pode ser interceptado por meiode um método instalado pelo comando ON ERR CALL.

ACCUMULATEADD RECORDADD 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 markGet menu item styleGet menu titleSET PICTURE TO LIBRARY_o_GRAPH TABLEINSERT MENU ITEMLevel (Nível de quebra)LIST USER FORMSMenu selectedMODIFY RECORDMODIFY SELECTIONMODIFY SUBRECORDON EVENT CALLOpen external window

Page 82: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

PAGE 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 se adapta auma execução no servidor. Estes comandos podem ser bloqueados pelo servidor, provocar erros e não produzem os efeitosesperados. Não é devolvido um código de erro específico.

ACCEPTActivatedADD DATA SEGMENTAfterAPPEND DATA TO PASTEBOARDAPPEND TO LISTBeforeBLOB TO DOCUMENTBLOB to listBRING TO FRONTC_GRAPHCANCELCHANGE CURRENT USERCHANGE PASSWORDCLEAR LISTCLEAR PASTEBOARDCopy listCount list itemsCount screensCreate document(1)Create resource file(1)Current form tableCurrent userDeactivatedDELETE FROM LISTDELETE USERDIALOGDISABLE BUTTONDRAG AND DROP PROPERTIESDRAG WINDOWDrop positionDuringENABLE BUTTONERASE WINDOWEXPORT DATA(1)FILTER KEYSTROKEFind windowFocus objectFONT LISTFont nameFont numberForm eventFIRST PAGEFORM Get current pageGET FORM PROPERTIESFORM GOTO PAGELAST PAGENEXT PAGE

Page 83: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

PREVIOUS 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 LISTINVERT BACKGROUNDIs a listIs user deletedKeystrokeList item parentList item positionLIST TO BLOBLoad listMAXIMIZE WINDOWMenu bar heightMenu bar screenMINIMIZE WINDOWModifiedNew listNext windowGET OBJECT RECTOBJECT MOVEOBJECT SET LIST BY NAMESET 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)

Page 84: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

QUERY(2)REDRAWREDRAW 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.

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 ter sidoregistrados (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 server ouEXECUTE 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.

Page 85: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 on server,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 dentro doalcance da máquina que executa o procedimento armazenado (servidor ou clientes) da mesma forma que no local em umamáquina cliente.Nota: Os mecanismos CALL PROCESS e Outside call não tem significado na máquina servidor, porque os procedimentosarmazenados 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áquina cliente)podem ler e escrever as variáveis processo (*) de um procedimento armazenado, utilizando os comandos GET PROCESSVARIABLE, 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, SET PROCESSVARIABLE e VARIABLE TO VARIABLE, somente é possível o fechamento cliente ao servidor. Sempre é um processo clienteque lê ou escreve as variáveis de um procedimento armazenado.

Page 86: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Procedimentos armazenados nas máquinas clientes

Você pode executar os procedimentos armazenados em um ou vários clientes 4D. O funcionamento geral dos procedimentosarmazenados executados nos clientes é idêntico ao dos procedimentos armazenados executados no servidor, exceto que ocliente pode chamar a entrada de dados. Para obter mais informações, consulte a seção Procedimentos 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çõesde rede” da página "Cliente-Servidor”:

Quando esta opção está selecionada, cada equipo cliente 4D que se conecta à base é referenciado automaticamente com 4DServer com pode executar os procedimentos armazenados. É criado um processo de tipo 4D Client com o nome da máquina daequipe 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 permiteinscrever 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 o comandoUNREGISTER CLIENT (Tema "Processo") para um determinado cliente. O processo de registro (nomeado de acordo com ocliente) desaparece do grupo de processos de usuário no computador servidor, bem como o usuário da equipe cliente. Nota: O comando GET REGISTERED CLIENTS permite obter a lista e a carga de trabalho (o número de métodos pendentespor executar) dos clientes registrados na sessão.Para obter mais informações sobre esses comandos, consulte o manual de linguagem de 4D.

Page 87: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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. Omé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, enche oscampos com os valores importados e envia o registro à máquina servidor para ser adicionado a base. Por conseguinte circulamnumerosas petições pela rede. Uma maneira de otimizar a operação é utilizar um procedimento armazenado para realizar aimportação localmente na máquina servidor. A máquina cliente carrega o documento em um BLOB, depois inicia umprocedimento armazenado que passa o BLOB como parâmetro. O procedimento armazenado guarda o BLOB em um documentono disco, depois importa o documento localmente. Portanto, a importação dos dados se realiza localmente (a uma velocidadecomparada com a de uma versão local de 4D) porque a maioria das petições que transitam por la rede são eliminadas.Este é o método de projeto CLIENT IMPORT. Executado na máquina cliente, produz a execução do procedimento armazenadoSERVER 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 spErrCode:=1 End if Until(spErrCode<=0) ` Enviamos um aviso de recibo ao procedimento armazenado

Page 88: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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é 60 vezesmais rápido que com uma importação regular.

Page 89: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

Serviços baseados nos procedimentos armazenados (exemplo)

No exemplo da seção Importação baseada nos procedimentos armazenados (exemplo), um procedimento armazenado seinicia e termina cada vez que se solicita uma operação de importação de dados. Neste exemplo, um procedimento armazenado éiniciado automaticamente quando inicia a base do servidor e pode ser iniciado e parado a vontade por qualquer 4D conectado abase. Logo como se executa, o procedimento armazenado pode responder de maneira assíncrona a múltiplos pedidos enviadospelos clientes conectados a base.Enquanto a seção Importação baseada nos procedimentos armazenados (exemplo), mostra como otimizar um serviço 4DServer existente, este exemplo mostra como implementar serviços novos e personalizados disponíveis para todos as máquinas4D client conectados. Além disso, este exemplo pode ser utilizado como modelo para a criação de seus próprios serviç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ção quandonenhum cliente está conectado.

Iniciar e parar voluntariamente o procedimento armazenado

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

` 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 o método SPSERVICES 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ário executadono servidor ou em uma máquina cliente modificar o valor da variável vbStopSPServices, e portanto parar o procedimentoarmazenado a vontade.

Comunicação com o procedimento armazenado

O procedimento armazenado deve poder receber pedidos de clientes e responder de maneira assíncrona em qualquer momentoe 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:

Page 90: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 pessoa quesolicita os dados devolvidos pelo procedimento armazenado ao requerente.[SP Requests]reqParams contém eventualmente os valores dos parâmetros enviados pelo requerente ao procedimentoarmazenado.

Por que usar uma tabela?

A comunicação entre um processo cliente e um procedimento armazenado pode ser implantado utilizando os comandos GETPROCESS VARIABLE, SET PROCESS VARIABLE e VARIABLE TO VARIABLE. Por exemplo, esta solução utilizada naseção Importação baseada nos procedimentos armazenados (exemplo), como também no método de projeto STOP SPSERVICES listado anteriormente.Aqui, o sistema deve permitir ao procedimento armazenado receber e reenviar as quantidades das variáveis de dados. Podeutilizar arrays, incluindo arrays de texto e imagem), mas há duas razões principais para preferir o emprego de uma tabela:

O algoritmo de gestão de petições sob os registros é mais fácil de implementar. Enviar uma petição desde uma máquinacliente consiste simplesmente em adicionar uma petição na tabela. Responder a petição desde o procedimentoarmazenado 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).

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 [SP Requets]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 explicado anteriormente,logo como o campo [SP Requets]redStatus se torna diferente de 1, o cliente sabe que o procedimento armazenado 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

Page 91: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 aoBLOB cujo ponteiro foi passado como parâmetro. O método chamado depois analisa e utiliza os dados do BLOB em função dotipo de pedido. Note que o cliente está encarregado de apagar o registro [SP Requests] uma vez termina o pedido.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 ambiente usuáriode 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. A estruturageral 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]

Page 92: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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) ` ... ` 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. Nestaseção, detalhamos as subrotinas SP DO SERVER INFORMATION e SP DO VOLUME LIST. A subrotina SP DO BROWSEDIRECTORY (que toma como parâmetro um parâmetro enviado pelo cliente no campo [SP Requests]reqParams) não se trataneste documento.Dependendo do tipo da petição, o método de projeto SP SERVICES chama a uma subrotina cuja tarefa é guardar os dadosresultantes no campo [SP Requests]reqData. O armazenamento do registro e a mudança do estado a realizar o método deprojeto SP SERVICES.Esta é a subrotina SP DO SERVER INFORMATION que guarda a informação relativa ao servidor no BLOB. Outro método deprojeto 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 de projetoextrairá os dados do BLOB em função da máquina cliente.

Page 93: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

` 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

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. Este métodopode estar associado a um comando de menu ou ser chamado, por exemplo, desde o método de objeto de um botã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 projeto M_SERVER_VOLUMESmostra, na máquina cliente, a informação na lista dos volumes do servidor devolvidos pelo procedimento armazenado. Estemétodo pode estar associado a um comando de menu ou chamado, por exemplo, desde o método de objeto de um botão:

` M_SERVER_VOLUMES C_BLOB(vxData)

Page 94: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

` 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:

Page 95: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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 global dosatributos 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 o mé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 (ver aseção 4D Server e a linguagem 4D): o método no servidor compartilham o mesmo contexto de banco de dados para o bloqueiode registros e para as transações que o contexto correspondente do lado do cliente, mas não o mesmo contexto de linguagem(variáveis processo, conjuntos, seleções atuais). No entanto, a diferença de um trigger, o método executado no servidor nãocompartilha 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 devolvido aocliente.A diferença do comando Execute on server, esta opção não provoca a criação do processo no servidor. 4D Server utiliza oprocesso "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áforos para aleitura 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 armazenados emmatéria de uso dos comandos da linguagem 4D. A execução de certos comandos não está permitida no servidor, a execução deoutros não é recomendável. Para maior informação, consulte o parágrafo " O que um procedimento armazenado 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 avariá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 do registroatual 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->)

Page 96: 4D Doc Center : Manual de 4D Serverdownload.4d.com/Documents/Products_Documentation/Last... · 2014-12-11 · Arquitetura cliente/servidor integrado Um 4D sistema Server funciona

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")