Processos jar

3 respostas
Doug_Floriano

Boa tarde pessoal

Estou com um problema aqui,se puderem ajudar.

Eu tenho um Jar que é processado periodicamente para fazer umas consultas a WebService e atualizar uma base de dados, tb é gerado log e tals.
O problema que não sei quem vai executar esse jar, como SO, sei que será um Control-M a principio. Só que o control-m está executando diversas vezes ao mesmo tempo o mesmo jar, acabo tendo problema com os logs e outros.
Precisaria garantir de ter apenas um processo do mesmo no mesmo servidor, mas acabo tendo problema com nome como, javaw.exe e etc.
Como acessaria o SO ou JVM para saber se tem um processo desse mesmo jar?

Desculpa se faltou informação, mas é que fiquei meio perdido de como pesquisar sobre isso, o que achei em foruns não me ajudou muito.

Obs. Só preciso saber se aquele mesmo jar já está sendo executado independente de SO, para não continuar o processo do segundo.

Douglas Floriano

3 Respostas

pedruhenrik

semana passada havia um post sobre manter apenas uma única execução de um aplicação java desktop.

ñ lembro ao exato as palavras contidas no post mas da uma pesquisada.

att,

pedruhenrik

pesquisei aki mas ñ achei o post no guj…rs

falha de memória rs

http://www.guj.com.br/java/216623-nao-permitir-executar-jar-2-x#1105719

se não me engano havia algo na solução a respeito de sockets, igual o comentado nesse link:

http://javafree.uol.com.br/topic-852431-Rodar-a-aplicacao-uma-unica-vez.html

att,

Doug_Floriano

Opa, vlwzao.
Deu uma luz de por onde procurar =)

Edit.

Fiz e deu certo para o que precisava, segue exemplo que segui.

ServerSocket serverSocket = null;

        try{
            serverSocket = new ServerSocket(7000, 1);

            JOptionPane.showMessageDialog(null, "Socket criado com sucesso.");

            //... 

        }catch(IOException e){
        	//Imprime uma notificação na saída padrão caso haja algo errado.
        	JOptionPane.showMessageDialog(null, "Falha ao criar o socket.");
        	
        	System.exit(0);

        }finally{   
               
            try{   
                   
                serverSocket .close();   
                   
            }catch(IOException e){   
            }   
        }
Criado 6 de junho de 2011
Ultima resposta 7 de jun. de 2011
Respostas 3
Participantes 2