Limites para conexão self-service com Progress 32-bit

Escrito por Marcos Kirchner em 5 de outubro de 2009, 17:58h

O OpenEdge suporta dois tipos de client de conexão ao banco de dados: client de rede e client self-service.

Os clients de rede podem estar na mesma máquina do banco de dados ou em uma máquina remota, mas não podem conectar ao banco de dados diretamente. Estes clients conectam-se a um processo server do banco de dados, através da pilha de rede. Este server processa as requisições dos usuários e retorna os dados solicitados. Além da possibilidade de conexão remota ao banco de dados, os clients de rede também podem, respeitando algumas regras, conectar em bancos de dados de versões diferentes. Esta é a única forma possível de estabelecer conexões SQL (ODBC e JDBC) a um banco OpenEdge.

Os clients do tipo self-service conectam-se diretamente na memória compartilhada (shared memory) do banco de dados e processam suas próprias requisições de acesso a dados. Em outras palavras, eles funcionam como client e como server em um único processo. Tanto o prowin32 quando o _progress podem operar como clients self-service. Existem dois requisitos para isto:

  • a versão do client e do banco de dados deve ser idêntica (mesma versão, mesmo Service Pack, mesmo Hotfix);
  • o client deve executar no mesmo servidor do banco de dados, visto que ele deve ter acesso físico aos arquivos do banco e também à memória compartilhada.

Os casos mais comuns de clients serf-service são os servidores de aplicação (AppServer, RPW) e processamento em batch. A maior vantagem das conexões self-service é o fato de não haver nenhuma solicitação através da rede. A latência associada às requisições e tráfego de rede não existe e por conta disto o processamento normalmente é mais rápido.

A figura abaixo (clique para ampliar) ilustra a diferença de conexão entre os clients self-service e os clients de rede (remote clients).

Conexão dos clients ao banco de dados

Quando utiliza-se Progress 32-bit, o espaço de endereçamento virtual é um fator limitante para o uso de clients self-service. Por conta de sua arquitetura, as aplicações 32-bit normalmente podem endereçar 2GB de memória. Esta limitação também se aplica ao banco de dados e outros processos Progress 32-bit. Vale notar que esta limitação de 2GB é para cada processo. É possível, por exemplo, ter 4 bancos de dados e cada um utilizar 2GB de memória.

Em casos onde um mesmo processo precise conectar a vários bancos de dados e a quantidade de memória somada de todos os bancos ultrapasse 2GB, a conexão self-service não será possível e ocorrerá o erro 1720:
Unable to attach shared memory sharemem.c.temp.progress.blog.teste2.0, error 0. (1720)

Para conectar a vários bancos em modo self-service, o processo client precisa mapear a memória de todos eles. Como o espaço de endereçamento do client é limitado a 2GB, este mapeamente não pode ser realizado. A melhor opção neste caso é utilizar conexão de rede para alguns bancos e conexão self-service para outros, de forma que a soma total de memória de todos os bancos conectados em modo self-service seja inferior a 2GB.

Em aplicações 64-bit o espaço de endereçamento virtual é muito grande e este tipo de problema não ocorre.

Categorias: Banco de dados | Progress

Tags:

Comentários (4) -

em 24 de outubro de 2009, 12:00h

Estamos em processo de migração do 9.1D para o 10.1B e gostaria de saber se existe alguma forma de se conectar com os dois bancos ao mesmo tempo ?

Sidival

em 26 de outubro de 2009, 09:25h

Sidival,

É possível uma sessão Progress conectar um banco de dados do OE 10 e do Progress 9, mas alguns recursos (ex: Data Admin, Data Dictionary) podem não estar disponível. Você precisa realizar testes para garantir que as funcionalidades que precisa funcionarão corretamente.

A recomendação é, sempre que possível, utilizar bancos de dados da mesma versão das estações client.

kirchner

em 10 de novembro de 2009, 07:54h

Olá Sidival,

Sou aluno do ultimo semestre se analise e desenvolvimento de sistema, e neste semestre tenho que escrever um trabalho sobre banco de dados Progress, se não muito incomodo para vc, vc teria algum material para me ajudar, preciso escrever como funciona, quando foi lançado etc, se vc tiver alguma coisa seria possivel me enviar por email (renatolima_silva@yahoo.com.br) ou  me indicar um site.


Desde já agradeço a sua atenção


Renato Lima

em 10 de novembro de 2009, 09:32h

Renato,

Existe a documentação oficial da Progress para os produtos OpenEdge neste endereço:
communities.progress.com/pcom/docs/DOC-16074

O acesso é público, não é necessário ter licenças de Progress/OpenEdge.

kirchner

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading


Acesso LogMeIn

Informe o código PIN: