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

Agnaldo Macedo agnaldo em starweb-software.com.br
Terça Novembro 28 07:54:06 PST 2006


Completando Ricardo ....

O Perl, PHO, etc, assim como as aplicações CGI, fazem ascessam os dados eviados pelo webserver através de variaveis de ambiente

Por exemplo, um GET usa QUERY_STRING, um POST usa POSTDATA.
E aí vai, com aquele outra gama de variáveis CGI.

O que essas linguagens fazem, e programas no modelo CGI fazem, é apenas pegar essas variaveis de ambiente, geradas pelo webserver, e usa-las.

No me caso, estou u usando o Perl apenas para suprir minha aplicação com essas variaveis.




  ----- Original Message ----- 
  From: Ricardo Portilho Proni 
  To: Cascavel Perl Mongers 
  Sent: Tuesday, November 28, 2006 2:39 PM
  Subject: Re: [Cascavel-pm] Limite de variavies de ambiente e system


  Vc pode resolver este problema, mas está utilizando variáveis de ambiente para fazer algo que elas não foram feitas para fazer.
  Se revolver esse, é possível que encontre outra barreira, ainda mais se quiser fazer de forma portável.

  Coloque as informações que precisa em uma tabelas simples, em um banco simples. A primeira aplicação alimenta a tabela, a segunda pega. Tudo ficará bem...

Ricardo Portilho Proni
Oracle Database 10g Administrator Certified Associate
Microsoft Certified Professional
Nerv Informática Ltda.

  Alceu R. de Freitas Jr. escreveu: 
--- 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
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm



  

------------------------------------------------------------------------------


  _______________________________________________
  Cascavel-pm mailing list
  Cascavel-pm em pm.org
  http://mail.pm.org/mailman/listinfo/cascavel-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20061128/b6e9d3cf/attachment.html 


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