Mas você mencionou outros sistemas, esses sistemas ainda estão em mainframe ... estou fazendo essa pergunta ... porque não precisava tirar do mainframe ... mas se o objetivo é realmente trabalhar em outro ambiente, não lhe aconcelho o Windows, mas como já falou que esta rodando em Windows.<br>
<br>Você deve desenvolver composite applications com o Catalyst, que vai lhe oferecer tudo que precisa, a integração com as aplicações em Cobol você vai fazer com webservices, o que vai lhe poupar muito tempo, e garantir o controle e integridade dos seus dados.<br>
<br><div class="gmail_quote">2008/6/18 kleber &lt;<a href="mailto:payback@oi.com.br">payback@oi.com.br</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Eu já trabalhei com maiframe ( atualmente não ).<br>
Possuo vários sistemas desenvolvidos em ambiente maiframe porém migrei para<br>
ambiente web somente o de contabilidade ( que chamei de projeto piloto ).<br>
Portanto somente o sistema contábil &nbsp;roda em ambiente windows.<br>
Para realizar a migração básicamente substitui o comando de leitura do cobol<br>
cics<br>
( portanto de uma tela de dados ) para um arquivo em um determinado<br>
diretório<br>
( gerado pelo perl ) e gravei um arquivo de saida referente o status do<br>
processamento<br>
( arquivo html ) que é enviado para o usuário pelo perl.<br>
<br>
O fernando Oliveira me sugeriu utilizar kill para controlar um processo<br>
porém pelo que entendi este comando aborta um processo.<br>
A minha necessidade não é abortar um processo quando um outro idêntico está<br>
rodando e sim colocá-lo em estado de espera aguardando a conclussão do<br>
processo<br>
corrente para sua reexecução ( formar uma fila de espera ).<br>
<br>
Você tem alguma sugestão de como fazer isto ????????????????<br>
<br>
Agradeço a atenção dispensada ,<br>
<br>
kleber<br>
<br>
<br>
<br>
<br>
<br>
----- Original Message -----<br>
From: &lt;<a href="mailto:marco_lima@sapo.pt">marco_lima@sapo.pt</a>&gt;<br>
To: &quot;Perl Mongers Rio de Janeiro&quot; &lt;<a href="mailto:rio-pm@pm.org">rio-pm@pm.org</a>&gt;<br>
Sent: Tuesday, June 17, 2008 8:09 PM<br>
Subject: Re: [Rio-pm] Controle de processo em perl<br>
<br>
<br>
Salve!<br>
<br>
Então não percebi direito:<br>
<br>
&gt;&gt; Disponho destes sistemas administrativos em ambiente maiframe ( cobol ,<br>
&gt;&gt; cobol/cics , vsam , etc ) e implementei um projeto piloto do sistema de<br>
&gt;&gt; contabilidade. ( aproximadamente 120 programas )<br>
<br>
Você tinha mencionado que esta trabalhando com um ambiente<br>
mainframe??? isso não esta correto??<br>
<br>
No caso dos sistemas em questão, o ambiente web pode não ser o mais<br>
apropriado, principalmente no caso de ERP. mas um bom caminho para uma<br>
solução mais adequada e segura, é desenvolver composite applications<br>
com catalyst, porque estamos aqui falando de SOA e esta pode ser a<br>
forma mais segura e rápida, e como não é um simples sistema web, mas<br>
pelo que percebi, todas as aplicações da empresa.<br>
<br>
Todos os sistemas estão sendo executados no Windows?<br>
<br>
Citando kleber &lt;<a href="mailto:payback@oi.com.br">payback@oi.com.br</a>&gt;:<br>
<br>
&gt; Acho que é possível , através do cobol , ler a entrada padrão.<br>
&gt; Vou pesquisar este assunto.<br>
&gt;<br>
&gt; Vou dar um exemplo de como montei este esquema .<br>
&gt; Pôr exemplo , o sistema possui as seguintes entidades cadastráveis :<br>
&gt; Grupo empresarial , Empresa , Departamento , Seção , Operador , etc.<br>
&gt; ( &nbsp;Um grupo empresarial é constuido de várias empresas , uma empresa<br>
&gt; possui<br>
&gt; vários departamentos , um departamento possui várias seções , uma seção<br>
&gt; possui vários<br>
&gt; operadores )<br>
&gt;<br>
&gt; Crei para cada entidade um diretório ( c:\payback\contabil\tabela\grupo ;<br>
&gt; c:\payback\contabil\tabela\empresa ; c:\payback\contabil\tabela\depto ;<br>
&gt; etc )<br>
&gt;<br>
&gt; Criei um script perl para cada entidade ( portanto reside em um único<br>
&gt; diretório ) que<br>
&gt; captura o dado informado pelo usuário e executa o programa cobol &nbsp;para<br>
&gt; manutenção.<br>
&gt; ( Nota - este programa cobol já esta pronto em cobol / cics )<br>
&gt; A questão central está em garantir uma execução única deste script perl<br>
&gt; pois<br>
&gt; preciso garantir que um grave e vários lêem ( segurança do ambiente ).<br>
&gt;<br>
&gt; O marco_lima me perguntou porque cobol ?????<br>
&gt; É pelo fato de já possuir vários sistemas prontos em cobol.<br>
&gt; Caso este projeto de bureau de serviço avance , é bem provável que<br>
&gt; converta<br>
&gt; todos<br>
&gt; os aplicativos para uma linguagem mais adequada ao ambiente web.<br>
&gt; Entretanto estou implementando um piloto.<br>
&gt; Meu ambiente operacional é : Win2003 server , Apache 2.0 , &nbsp;ActivePerl 5.8<br>
&gt; ,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cobol 4.5 , &nbsp;etc.<br>
&gt;<br>
&gt; Mais uma vez agradeço a atenção dispensada ,<br>
&gt;<br>
&gt; kleber<br>
&gt;<br>
&gt;<br>
&gt; ----- Original Message -----<br>
&gt; From: &quot;Fernando Oliveira&quot; &lt;<a href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>&gt;<br>
&gt; To: &quot;Perl Mongers Rio de Janeiro&quot; &lt;<a href="mailto:rio-pm@pm.org">rio-pm@pm.org</a>&gt;<br>
&gt; Sent: Tuesday, June 17, 2008 2:31 PM<br>
&gt; Subject: Re: [Rio-pm] Controle de processo em perl<br>
&gt;<br>
&gt;<br>
&gt; Bom, eu acho q vc já começou bem procurando a lista. Um bom inicio na<br>
&gt; minha<br>
&gt; opinião,<br>
&gt; seria o livro begining perl (<a href="http://www.perl.org/books/beginning-perl/" target="_blank">http://www.perl.org/books/beginning-perl/</a>)<br>
&gt; (vc<br>
&gt; pode ver esse e N<br>
&gt; outros livros na nossa sessão de livros e resenhas (<br>
&gt; <a href="http://rio.pm.org/livros.pl%29" target="_blank">http://rio.pm.org/livros.pl)</a>). Uma outra<br>
&gt; importante fonte de pesquisa é o perldoc (para saber mais sobre o kill,<br>
&gt; leia<br>
&gt; o perldoc -f kill,<br>
&gt; para saber de outras funções, perldoc perlfunc).<br>
&gt; Eu gostaria de fazer uma pergunta, a única forma de entrada para esses<br>
&gt; programas em cobol<br>
&gt; seria por arquivo?<br>
&gt; Bom, mas perguntas estamos aí!<br>
&gt; E seja bem vindo!<br>
&gt;<br>
&gt; 2008/6/17 kleber &lt;<a href="mailto:payback@oi.com.br">payback@oi.com.br</a>&gt;:<br>
&gt;<br>
&gt;&gt; Olá Fernando ,<br>
&gt;&gt;<br>
&gt;&gt; Agradeço a atenção dispensada.<br>
&gt;&gt; Moro em Belo Horizonte e obtive informação sobre vocês pesquisando na<br>
&gt;&gt; internet.<br>
&gt;&gt;<br>
&gt;&gt; Atualmente estou trabalhando num projeto de prestação de serviços , no<br>
&gt;&gt; formato de bureau , onde pretendo disponibiliar todos os sistemas<br>
&gt;&gt; administrativos de uma empresa<br>
&gt;&gt; ( contabilidade , folha de pagamento , suprimentos , controle patrimonial<br>
&gt;&gt; ,<br>
&gt;&gt; etc ).<br>
&gt;&gt;<br>
&gt;&gt; Disponho destes sistemas administrativos em ambiente maiframe ( cobol ,<br>
&gt;&gt; cobol/cics , vsam , etc ) e implementei um projeto piloto do sistema de<br>
&gt;&gt; contabilidade. ( aproximadamente 120 programas )<br>
&gt;&gt;<br>
&gt;&gt; É aí que entra o perl ou seja , ele faz a interligação entre o usuário e<br>
&gt;&gt; o<br>
&gt;&gt; servidor.<br>
&gt;&gt; Portanto , o ambiente pode ser descrito assim :<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - html / javascript -&gt; Possibilita a entrada de dados pelo<br>
&gt;&gt; usuário<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - perl -&gt; &nbsp;captura dados do cliente , grava um arquivo texto<br>
&gt;&gt; para<br>
&gt;&gt; passagem<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ao cobol , executa programa cobol , lê arquivo<br>
&gt;&gt; resposta do<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; processamento cobol ( html ) e redireciona ao<br>
&gt;&gt; usário<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - cobol -&gt; Realiza manutenção da base de dados e gera arquivo<br>
&gt;&gt; html com o<br>
&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; status &nbsp;do processsamento<br>
&gt;&gt;<br>
&gt;&gt; Conforme disse anteriormente &nbsp;possuo pouca experiência em perl .<br>
&gt;&gt; ( livro perl como programar deitel )<br>
&gt;&gt; Poderia me dar mais informações sobre sua sugestão ??????????<br>
&gt;&gt; Conhece alguma fonte de consulta onde eu possa pesquisar ????????<br>
&gt;&gt;<br>
&gt;&gt; Um abraço ,<br>
&gt;&gt;<br>
&gt;&gt; kleber<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ----- Original Message -----<br>
&gt;&gt; From: &quot;Fernando Oliveira&quot; &lt;<a href="mailto:fernandocorrea@gmail.com">fernandocorrea@gmail.com</a>&gt;<br>
&gt;&gt; To: &quot;Perl Mongers Rio de Janeiro&quot; &lt;<a href="mailto:rio-pm@pm.org">rio-pm@pm.org</a>&gt;<br>
&gt;&gt; Sent: Tuesday, June 17, 2008 10:07 AM<br>
&gt;&gt; Subject: Re: [Rio-pm] Controle de processo em perl<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Vc pode dar um &lt;code&gt; kill 0 =&gt; $pid; &lt;/code&gt; e se retornar verdadeiro,<br>
&gt;&gt; quer<br>
&gt;&gt; dizer q o pid ainda está rodando...<br>
&gt;&gt; Agora qto ao goto, vc poderia fazer algo + bonito, anlo como:<br>
&gt;&gt; &lt;code&gt;<br>
&gt;&gt; sleep 1 while kill 0 =&gt; $pid;<br>
&gt;&gt; &lt;/code&gt;<br>
&gt;&gt;<br>
&gt;&gt; além disso, na minha opinião, ser mais bonito, ainda consome menos<br>
&gt;&gt; processamento...<br>
&gt;&gt;<br>
&gt;&gt; 2008/6/17 kleber &lt;<a href="mailto:payback@oi.com.br">payback@oi.com.br</a>&gt;:<br>
&gt;&gt;<br>
&gt;&gt; &gt; Olá Pessoal ,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Estou executando uma função em perl de forma não concorrente ou seja<br>
&gt;&gt; &gt; ela só pode ser reexecutada após encerrar a primeira instância.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Atualmente estou fazendo assim :<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; use warnings;<br>
&gt;&gt; &gt; use strict;<br>
&gt;&gt; &gt; use CGI qw( :standard );<br>
&gt;&gt; &gt; use Fcntl qw( :flock :DEFAULT );<br>
&gt;&gt; &gt; #<br>
&gt;&gt; &gt; ######## &nbsp; &nbsp; &nbsp;Permite executar um script pôr vez<br>
&gt;&gt; &gt; #<br>
&gt;&gt; &gt; denovo:<br>
&gt;&gt; &gt; if ( -e &quot;c:\\payback\\cgiaindx.nul&quot; ) { goto denovo; }<br>
&gt;&gt; &gt; sysopen( TASK, &quot;c:\\payback\\cgiaindx.nul&quot;, O_WRONLY|O_EXCL|O_CREAT )<br>
&gt;&gt; &gt; or warn ( goto denovo );<br>
&gt;&gt; &gt; flock( TASK, LOCK_EX ) &nbsp;or warn ( goto denovo );<br>
&gt;&gt; &gt; #<br>
&gt;&gt; &gt; ######### &nbsp;instruções em perl de uma função qualquer<br>
&gt;&gt; &gt; #<br>
&gt;&gt; &gt; flock( TASK, LOCK_UN );<br>
&gt;&gt; &gt; close( TASK );<br>
&gt;&gt; &gt; unlink( &quot;c:\\payback\\cgiaindx.nul&quot; );<br>
&gt;&gt; &gt; exit;<br>
&gt;&gt; &gt; #<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Gostaria de saber se é possível atingir este mesmo objetivo alocando um<br>
&gt;&gt; &gt; número de processo a variável que controla o pid ( PROCESSO_ID ) E<br>
&gt;&gt; &gt; TESTANDO<br>
&gt;&gt; &gt; SUA DISPONIBILIDADE ??????????????????????<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; TALVEZ ATÉ MESMO UTILIZANDO UMA VARIÁVEL DE AMBIENTE &nbsp;E TESTANDO SEU<br>
&gt;&gt; &gt; STATUS<br>
&gt;&gt; &gt; ?????????<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; OU UTILIZANDO OUTRO MÉTODO DE CONTROLE ??????????????????<br>
&gt;&gt; &gt; Nota - Meu conhecimento de perl é limitado.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Agradeço a atenção dispensada ,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; kleber<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Rio-pm mailing list<br>
&gt;&gt; &gt; <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
&gt;&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Just another Perl Hacker,<br>
&gt;&gt; Fernando (SmokeMachine)<br>
&gt;&gt; <a href="http://perl-e.org" target="_blank">http://perl-e.org</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --------------------------------------------------------------------------------<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Rio-pm mailing list<br>
&gt;&gt; <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
&gt;&gt; <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Rio-pm mailing list<br>
&gt;&gt; <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
&gt;&gt; <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Just another Perl Hacker,<br>
&gt; Fernando (SmokeMachine)<br>
&gt; <a href="http://perl-e.org" target="_blank">http://perl-e.org</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --------------------------------------------------------------------------------<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Rio-pm mailing list<br>
&gt; <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Rio-pm mailing list<br>
&gt; <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
&gt;<br>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
<br>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><br>Marco Lima<br><a href="http://www.perl.org.br">www.perl.org.br</a><br><a href="mailto:mago.perlbr@gmail.com">mago.perlbr@gmail.com</a><br><br>$_ = &quot;wftedskaebjgdpjgidbsmnjgc&quot;;tr/a-z/oh,turtleneck Phrase Jar!/; print;<br>
<br>&quot;Ninguém é tão grande que não possa aprender, e nem tão pequeno que não possa ensinar&quot;