quarta-feira, abril 11, 2007

Sem assunto...

Dae pessoal.
Hoje não tive tempo de ver nada para postar pois tive que tentar resolver um problema que o pessoal da empresa em que eu trabalhava está tendo com procedures do Oracle escritas em Java.

O problema é que a procedure executa um comando no sistema operacional e cria um "processo" que nunca é morto, o que devora a momória da máquina obrigando que o servidor seja resetado para liberar espaço.

Bom uma prévia da classe está aqui:

public class ComandoSO {

public static void executarComando(String coman
do) {

String[] linhaComando;

if (System.getProperty("os.name").toLowerC
ase().indexOf("windows") != -1) {
linhaComando = new String[4];

//Para XP e 2003, se for NT colocar
winnt
linhaComando[0] = "C:\\windows\\system32
\\cmd.exe";
linhaComando[1] = "/y";
linhaComando[2] = "/c";
linhaComando[3] = comando;
}
else {
linhaComando = new String[3];

linhaComando[0] = "/bin/sh";
linhaComando[1] = "-c";
linhaComando[2] = comando;
}

try {
Process pr = Runtime.getRuntime().exec(
linhaComando);
pr.destroy();
}
catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
executarComando("copy c:\\etiqueta.txt
lpt1");
}
}

Se alguém tiver uma dica para me dar COMENTE!!!

Até a próxima.

3 comentários:

Tiago Albineli Motta disse...

Não consegui reproduzir o erro aqui na minha máquina :/

Rocha disse...

Mas aaaaaaaaaaaaaaaaaaaaa, quer dizer que voltou a atualizar essa increnca então! É isso aí!
Muito bom o conteúdo!

Abração!

Unknown disse...

Pois é Tiago, fora do Oracle não esta dando problema a classe... vou abrir uma TAR na Oracle e ver o que eles me dizem, nem no meta link tem resposta para isso ainda.

Abraços.