[Rio-pm] Controle de processo em perl

kleber payback em oi.com.br
Quarta Junho 18 06:24:54 PDT 2008


Eu já trabalhei com maiframe ( atualmente não ).
Possuo vários sistemas desenvolvidos em ambiente maiframe porém migrei para
ambiente web somente o de contabilidade ( que chamei de projeto piloto ).
Portanto somente o sistema contábil  roda em ambiente windows.
Para realizar a migração básicamente substitui o comando de leitura do cobol 
cics
( portanto de uma tela de dados ) para um arquivo em um determinado 
diretório
( gerado pelo perl ) e gravei um arquivo de saida referente o status do 
processamento
( arquivo html ) que é enviado para o usuário pelo perl.

O fernando Oliveira me sugeriu utilizar kill para controlar um processo 
porém pelo que entendi este comando aborta um processo.
A minha necessidade não é abortar um processo quando um outro idêntico está 
rodando e sim colocá-lo em estado de espera aguardando a conclussão do 
processo
corrente para sua reexecução ( formar uma fila de espera ).

Você tem alguma sugestão de como fazer isto ????????????????

Agradeço a atenção dispensada ,

kleber





----- Original Message ----- 
From: <marco_lima em sapo.pt>
To: "Perl Mongers Rio de Janeiro" <rio-pm em pm.org>
Sent: Tuesday, June 17, 2008 8:09 PM
Subject: Re: [Rio-pm] Controle de processo em perl


Salve!

Então não percebi direito:

>> Disponho destes sistemas administrativos em ambiente maiframe ( cobol ,
>> cobol/cics , vsam , etc ) e implementei um projeto piloto do sistema de
>> contabilidade. ( aproximadamente 120 programas )

Você tinha mencionado que esta trabalhando com um ambiente
mainframe??? isso não esta correto??

No caso dos sistemas em questão, o ambiente web pode não ser o mais
apropriado, principalmente no caso de ERP. mas um bom caminho para uma
solução mais adequada e segura, é desenvolver composite applications
com catalyst, porque estamos aqui falando de SOA e esta pode ser a
forma mais segura e rápida, e como não é um simples sistema web, mas
pelo que percebi, todas as aplicações da empresa.

Todos os sistemas estão sendo executados no Windows?

Citando kleber <payback em oi.com.br>:

> Acho que é possível , através do cobol , ler a entrada padrão.
> Vou pesquisar este assunto.
>
> Vou dar um exemplo de como montei este esquema .
> Pôr exemplo , o sistema possui as seguintes entidades cadastráveis :
> Grupo empresarial , Empresa , Departamento , Seção , Operador , etc.
> (  Um grupo empresarial é constuido de várias empresas , uma empresa 
> possui
> vários departamentos , um departamento possui várias seções , uma seção
> possui vários
> operadores )
>
> Crei para cada entidade um diretório ( c:\payback\contabil\tabela\grupo ;
> c:\payback\contabil\tabela\empresa ; c:\payback\contabil\tabela\depto ;
> etc )
>
> Criei um script perl para cada entidade ( portanto reside em um único
> diretório ) que
> captura o dado informado pelo usuário e executa o programa cobol  para
> manutenção.
> ( Nota - este programa cobol já esta pronto em cobol / cics )
> A questão central está em garantir uma execução única deste script perl 
> pois
> preciso garantir que um grave e vários lêem ( segurança do ambiente ).
>
> O marco_lima me perguntou porque cobol ?????
> É pelo fato de já possuir vários sistemas prontos em cobol.
> Caso este projeto de bureau de serviço avance , é bem provável que 
> converta
> todos
> os aplicativos para uma linguagem mais adequada ao ambiente web.
> Entretanto estou implementando um piloto.
> Meu ambiente operacional é : Win2003 server , Apache 2.0 ,  ActivePerl 5.8 
> ,
>                                               Cobol 4.5 ,  etc.
>
> Mais uma vez agradeço a atenção dispensada ,
>
> kleber
>
>
> ----- Original Message -----
> From: "Fernando Oliveira" <fernandocorrea em gmail.com>
> To: "Perl Mongers Rio de Janeiro" <rio-pm em pm.org>
> Sent: Tuesday, June 17, 2008 2:31 PM
> Subject: Re: [Rio-pm] Controle de processo em perl
>
>
> Bom, eu acho q vc já começou bem procurando a lista. Um bom inicio na 
> minha
> opinião,
> seria o livro begining perl (http://www.perl.org/books/beginning-perl/) 
> (vc
> pode ver esse e N
> outros livros na nossa sessão de livros e resenhas (
> http://rio.pm.org/livros.pl)). Uma outra
> importante fonte de pesquisa é o perldoc (para saber mais sobre o kill, 
> leia
> o perldoc -f kill,
> para saber de outras funções, perldoc perlfunc).
> Eu gostaria de fazer uma pergunta, a única forma de entrada para esses
> programas em cobol
> seria por arquivo?
> Bom, mas perguntas estamos aí!
> E seja bem vindo!
>
> 2008/6/17 kleber <payback em oi.com.br>:
>
>> Olá Fernando ,
>>
>> Agradeço a atenção dispensada.
>> Moro em Belo Horizonte e obtive informação sobre vocês pesquisando na
>> internet.
>>
>> Atualmente estou trabalhando num projeto de prestação de serviços , no
>> formato de bureau , onde pretendo disponibiliar todos os sistemas
>> administrativos de uma empresa
>> ( contabilidade , folha de pagamento , suprimentos , controle patrimonial
>> ,
>> etc ).
>>
>> Disponho destes sistemas administrativos em ambiente maiframe ( cobol ,
>> cobol/cics , vsam , etc ) e implementei um projeto piloto do sistema de
>> contabilidade. ( aproximadamente 120 programas )
>>
>> É aí que entra o perl ou seja , ele faz a interligação entre o usuário e 
>> o
>> servidor.
>> Portanto , o ambiente pode ser descrito assim :
>>
>>           - html / javascript -> Possibilita a entrada de dados pelo
>> usuário
>>           - perl ->  captura dados do cliente , grava um arquivo texto
>> para
>> passagem
>>                         ao cobol , executa programa cobol , lê arquivo
>> resposta do
>>                         processamento cobol ( html ) e redireciona ao
>> usário
>>           - cobol -> Realiza manutenção da base de dados e gera arquivo
>> html com o
>>                           status  do processsamento
>>
>> Conforme disse anteriormente  possuo pouca experiência em perl .
>> ( livro perl como programar deitel )
>> Poderia me dar mais informações sobre sua sugestão ??????????
>> Conhece alguma fonte de consulta onde eu possa pesquisar ????????
>>
>> Um abraço ,
>>
>> kleber
>>
>>
>>
>>
>> ----- Original Message -----
>> From: "Fernando Oliveira" <fernandocorrea em gmail.com>
>> To: "Perl Mongers Rio de Janeiro" <rio-pm em pm.org>
>> Sent: Tuesday, June 17, 2008 10:07 AM
>> Subject: Re: [Rio-pm] Controle de processo em perl
>>
>>
>> Vc pode dar um <code> kill 0 => $pid; </code> e se retornar verdadeiro,
>> quer
>> dizer q o pid ainda está rodando...
>> Agora qto ao goto, vc poderia fazer algo + bonito, anlo como:
>> <code>
>> sleep 1 while kill 0 => $pid;
>> </code>
>>
>> além disso, na minha opinião, ser mais bonito, ainda consome menos
>> processamento...
>>
>> 2008/6/17 kleber <payback em oi.com.br>:
>>
>> > Olá Pessoal ,
>> >
>> > Estou executando uma função em perl de forma não concorrente ou seja
>> > ela só pode ser reexecutada após encerrar a primeira instância.
>> >
>> > Atualmente estou fazendo assim :
>> >
>> > use warnings;
>> > use strict;
>> > use CGI qw( :standard );
>> > use Fcntl qw( :flock :DEFAULT );
>> > #
>> > ########      Permite executar um script pôr vez
>> > #
>> > denovo:
>> > if ( -e "c:\\payback\\cgiaindx.nul" ) { goto denovo; }
>> > sysopen( TASK, "c:\\payback\\cgiaindx.nul", O_WRONLY|O_EXCL|O_CREAT )
>> > or warn ( goto denovo );
>> > flock( TASK, LOCK_EX )  or warn ( goto denovo );
>> > #
>> > #########  instruções em perl de uma função qualquer
>> > #
>> > flock( TASK, LOCK_UN );
>> > close( TASK );
>> > unlink( "c:\\payback\\cgiaindx.nul" );
>> > exit;
>> > #
>> >
>> > Gostaria de saber se é possível atingir este mesmo objetivo alocando um
>> > número de processo a variável que controla o pid ( PROCESSO_ID ) E
>> > TESTANDO
>> > SUA DISPONIBILIDADE ??????????????????????
>> >
>> > TALVEZ ATÉ MESMO UTILIZANDO UMA VARIÁVEL DE AMBIENTE  E TESTANDO SEU
>> > STATUS
>> > ?????????
>> >
>> > OU UTILIZANDO OUTRO MÉTODO DE CONTROLE ??????????????????
>> > Nota - Meu conhecimento de perl é limitado.
>> >
>> > Agradeço a atenção dispensada ,
>> >
>> > kleber
>> >
>> > _______________________________________________
>> > Rio-pm mailing list
>> > Rio-pm em pm.org
>> > http://mail.pm.org/mailman/listinfo/rio-pm
>> >
>>
>>
>>
>> --
>> Just another Perl Hacker,
>> Fernando (SmokeMachine)
>> http://perl-e.org
>>
>>
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> Just another Perl Hacker,
> Fernando (SmokeMachine)
> http://perl-e.org
>
>
>
> --------------------------------------------------------------------------------
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>

_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm




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