[SP-pm] dbmopen

Henrique Rennó henrique.renno at gmail.com
Wed Aug 13 10:22:36 PDT 2008


Olá Luis,

Obrigado pela resposta. Realmente, o perl não exibe erros ou warnings
e o log de acesso do apache possui os códigos "200 192" depois do nome
do script. Você saberia o que seriam esses códigos?

O começo do script usa o comando "param" para pegar os valores de
usuário e senha passados em caixas tipo edit com as propriedades
"name" definidas, as que são passados para o "param" como parâmetro.

Acredito que não seja problema nos arquivos, pois na antiga servidora
o script funciona normalmente. Eu fiz a transferência dos arquivos de
uma máquina para outra via ftp tanto no modo ascii como binário
(acredito que o modo certo seja binário), mas não houve efeito.

Com relação a acessos concorrentes não há problema porque esse banco
não é muito acessado. Ele só é acessado para que seja feito um login a
uma página onde podem ser baixados dados e esses logins muito
dificilmente ocorrerão juntos. Acredito que terei que passar o banco
para outro padrão, mysql por exemplo, a fim de usar na nova servidora.
Eu usei o DBM porque não há mesmo necessidade de usar outro tipo de
banco mais sofisticado e porque a utilização do DMB é muito simples.

Obrigado!

On 8/13/08, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> Henrique Rennó wrote:
>> Olá!
>>
>> Há muito tempo fiz uma aplicação simples com o DBM pra uma servidora web.
>> Hoje houveram mudanças e estou colocando a nova aplicação na nova
>> servidora
>> web. Estou tendo problemas com o dbmopen, na servidora antiga o script
>> funciona normalmente, posso abrir o banco, pegar os valores pelo hash,
>> pesquisar, adicionar etc. Na nova máquina não está funcionando. Dei um
>> print
>> na variável $! depois de chamar dbmopen, mas nada é exibido. O que poderia
>> ser? Acredito que o DBM é um padrão antigo do perl e a nova máquina está
>> com
>> o perl 5.8 instalado. O banco (arquivos .dir e .pag) estão no mesmo local
>> do
>> script.
>
> Hum. Sem uma única linha de código, eu não vou conseguir ajudar você nem
> por milagre.
>
> E não existem logs do apache dizendo nada, e o Perl não emite warnings?
>
> Fora isso, o dbmopen está deprecado desde a versão 5.6.1 do Perl. Se
> você instalou uma máquina nova, eu não duvido que instalou um 5.10, e
> isso quer dizer que eles podem finalmente ter cumprido a promessa. :D E
> você vai ter de mudar do dbmopen() para o também velho e quase condenado
> "tie()" (que é o treco que substituiu o dbmopen, muito, muito tempo atrás).
>
> Mais: você copiou o arquivo, mas tem certeza de que ele não está
> danificado? E como é que você implementa acessos concorrentes? Que eu
> saiba, o problema maior em usar DBM é que a biblioteca não implementa
> nenhum tipo de mecanismo de proteção contra race conditions.
>
> Honestamente, eu parei de usar DBM em 1996. Recomendo que você faça o
> mesmo. Antes tarde do que nunca.
>
> Putamplexos.
> --
> Luis Motta Campos is a software engineer,
> Perl Programmer, foodie and photographer.
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>

-- 
Henrique


More information about the SaoPaulo-pm mailing list