Solucionando erros do BDE relacionados a memória ($210D, $2500, $2501)

Filed Under (BDE, Windows) by Clécio ?>

Tagged Under : , ,

Existe alguns erros comuns que ocorrem em aplicações que utilizam BDE para fazer a comunicação com o Banco de Dados, principalmente em SOs mais novos como Windows Vista e 2003/2008 Server. Para ajudar algumas pessoas vou exemplificar algumas parametrização de memória do BDE e o que pode ser feito para tentar solucionar o problema.

Tive um desses problemas em um aplicação onde trabalha-se com acesso remoto aos servidores utilizando a tecnologia da GraphOn chamada Go-Global, muito boa e rápida diga-se de passagem. O erro só ocorria com dois usuários na hora de abrir o mesmo módulo do ERP. Depois de quebrar um pouco a cabeça chegamos a solução.

Erro:

Conflito de compartilhamento de memória (Shared memory conflict – $210D)

Problema:

O BDE está tentando usar um endereco de memoria que já está em uso pelo SO ou outra aplicação.

Solução:

1 – Fechar todas aplicações BDE;

2 – Executar o Administrador do BDE (Adm BDE) pelo “Painel de Controle” ou procurar o arquivo BDEADMIN.EXE (Adm BDE), este arquivo, normalmente, fica em algum diretório em “\Arquivos de Programas\Borland…”.

3 – Ao carregar Adm BDE clique na aba “Configuration”;

4 – Há um item na árvore, no lado esquerdo da tela do Adm BDE, chamado “Configuration”. Se não estiver expandido, expanda-o;

5 – Depois, expanda “System”. Abaixo do “System”, selecione “INIT”.

6 – Na janela ao lado direito, procure o parâmetro chamado “SHAREDMEMLOCATION”. Mude o valor para “5BDE”.

7 – Depois, clique na palavra “Object” na barra de menu da janela principal e selecione “Apply”.

8 -  Responda “OK” para a confirmação de “Save all edits…” (Salvar todas alterações).

 

 

Erro:

Memória insuficiente para esta operação (Insufficient memory for this operation – $2501)

Problema:

Sua aplicação (ou outra aplicação BDE) consumiu a memória reservada para o BDE.

Solução:

1 – Fechar todas aplicações BDE;

 

2 – Executar o Administrador do BDE (Adm BDE) pelo “Painel de Controle” ou procurar o arquivo BDEADMIN.EXE (Adm BDE), este arquivo, normalmente, fica em algum diretório em “\Arquivos de Programas\Borland…”.

3 – Execute o Adm BDE e clique na aba “Configuration”.

4 – Há um item na árvore, no lado esquerdo da tela do Adm BDE, chamado “Configuration”. Se não estiver expandido, expanda-o;

5 – Depois, expanda “System”. Abaixo do “System”, selecione “INIT”.

6 – Na janela ao lado direito, procure o parametro chamado “SHAREDMEMSIZE”. Mude o valor para 4096.

7 – Depois, clique na palavra “Object” na barra de menu da janela principal e selecione “Apply”.

8 – Responda “OK” para a confirmação de “Save all edits…” (Salvar todas alterações).

 

Tente iniciar a aplicação novamente. Caso continue com problemas para rodar a aplicação e o servidor estiver rodando Windows NT, 2000 ou superior, tente algumas instruções a seguir, mas desta vez deixe a propriedade “SHAREDMEMSIZE” com valor 4096, e altere a propriedade “SHAREDMEMLOCATION” para “0×5BDE”.

Aplique as alterações antes e tente rodar novamente sua aplicação. Se o mesmo erro permanecer tente alterar a propriedade “SHAREDMEMSIZE” para 8192. Se persistir o erro, tente informar “0×6BDE” para a propriedade “SHAREDMEMLOCATION”.

Outros valores podem ajudar a resolver este problema, são eles: 1000, 7000, e 7F00. Se nenhum desses valores resolverem, você pode tentar 2000, 3000, 4000, etc. ou qualquer valor dentro dos intervalos especificados para cada sistema operacional:

Windows NT/2000/2003/Vista/2008: SHAREDMEMLOCATION = 1000 to 7F00

Windows 95/98: SHAREDMEMLOCATION = 9000 to FFFF

Em outros casos usuários do BDE foi necessário remover ou desabilitar alguns drivers (som, impressora) no Windows NT/2000/2003/Vista/2008 para resolver o problema, mas nomalmente somente “realocando” o pool de memória usado pelo BDE na propriedade SHAREDMEMLOCATION resolve.

 

Abraços!!