[Cascavel-pm] Limite de variavies de ambiente e system

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Terça Novembro 28 06:25:32 PST 2006


--- Agnaldo Macedo <agnaldo em starweb-software.com.br>
escreveu:

> Sobre o que a aplicação:
> Eu uso o Perl/CGI para capturar as informações
> vindas do WebServer e 
> repassar para outra aplicação.

Que tal webservices? Você poderia implementar isso até
usando LWP para criar uma requisição para o servidor
web e fazer processar a resposta.

Se esse tipo de informação não mudar com muita
freqüência, você poderia até implementar um cache.

> Não, eu não posso me livrar da outra aplicação

Você não pode trazê-la para o mesmo servidor então?
Você poderia utilizar memória compartilhada ou sockets
(Winsockets, Unix sockets)... claro, estou só
especulando.

> Estou usando as variabeis de ambiente porque são
> mais rapidas do que usar 
> arquivo em disco.

Você lê as informações do outro servidor, configura
variáveis de ambiente e depois passa para seu
programa?

> Se eu for usar arquivo em disco para intercambiar os
> dados a aplicação se 
> torna definitivamente inviável.

Eu não sei que programa você está usando, mas minha
sugestão seria essa:

1 - tentar eliminar o uso desse programa utilizando um
programa feito em Perl que pudesse ser executado sem o
uso de system ou exec.
2 - Usar um named pipe para passar as informações para
seu programa.

> Sobre sistema:
> Eu preciso da apliucação rodando sobre
> windows/linux/unix, então, não posso 
> fugir do windows.

Mais um motivo para você substituir o programa em
questão por código Perl. Talvez se você puder contar
qual é esse programa em questão, o pessoal possa dar
mais sugestões.

> O que ficou estranho é o funcionamento do system, em
> não conseguir chamar a 
> outra aplicação quando as variaveis chegaram a 32k.
> Uma vez que o system faz uma chamada ao shell, no
> caso, o cmd.exe, ele não 
> esta conseguindo essa parte.

Eu nunca passei por essa situação, realmente não sei
como lhe ajudar. Veja se o Windows Power Shell não
pode lhe ajudar nesse caso.

> A outra coisa sinistra foi quando usando exec, é o
> mesmo não conseguir mais 
> repassar as variaveis comuns do ambiente CGI mas
> conseguir repassar as 
> outras que que gerava na mão, embora, dentro do
> scrip Perl elas ainda 
> existirem.

Se não estou enganado, o exec não use o shell. Talvez
você queira tentar o módulo Win32::Process

> Ainda não fiz o teste sobre Linux/Unix, talves neles
> os erros não ocorram.

Só tentando. Mas eu receio que você não terá esses
problemas, a expectativa é que os shells desses
sistemas operacionais deixem o cmd do Windows no
chinelo.

> Infelizmente, eu tenho a necessidade de que
> funcione, também, sobre Windows.
> O material da ActiveState é bem recomendado. Será
> que devo testar com outra 
> distribuição?

Eu ficaria com o ActiveState.

> Teria como indicar ao suystem/exec para que eles
> façam chamada a outro 
> shell?

Talvez se você configurar outro shell para ser
utilizado. Mas nem sei se isso é possível no Windows.

[]'s


Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1


		
_______________________________________________________ 
O Yahoo! está de cara nova. Venha conferir! 
http://br.yahoo.com


Mais detalhes sobre a lista de discussão Cascavel-pm