Sqlldr desde java nunca termina
Publicado por Toni Circuns (2 intervenciones) el 08/02/2010 15:40:27
Hola,
tengo un script en un fichero .bat que ejecuta un sqlldr de Oracle para cargar un fichero a una tabla.
Si lo ejecuto desde la consola todo funciona bien, pero si lo ejecuto desde la aplicación java, con este código
rt = Runtime.getRuntime();
File f = new File(LlistaParametres.getInstance().getDirectoriShells().replace('/', '\\'));
Process process = rt.exec(sb.toString().replace('/', '\\'),null, f);
process.wait();
donde sb contiene la ruta al fichero .bat a ejecutar y f contiene el directorio donde estan todos mis ficheros (.bat i .txt a cargar)
el proceso nunca acaba, aunque empieza.
El sqlldr se ejecuta, inserta una parte de los registros y se queda parado, como bloqueado (no hay ningún bloqueo en la base de datos).
Nada se mueve hasta que paro la aplicación Java, en mi caso paro el Tomcat. Entonces el sqlldr acaba su trabajo bien.
No tengo ni idea de que esta pasando y necesito que alguien me oriente un poco.
Estoy usando el mismo código para ejecutar otros ficheros .bat y funciona perfectamente. Espera a que acabe el proceso y sigue la ejecución normal.
Muchas gracias de antemano,
TONI.
tengo un script en un fichero .bat que ejecuta un sqlldr de Oracle para cargar un fichero a una tabla.
Si lo ejecuto desde la consola todo funciona bien, pero si lo ejecuto desde la aplicación java, con este código
rt = Runtime.getRuntime();
File f = new File(LlistaParametres.getInstance().getDirectoriShells().replace('/', '\\'));
Process process = rt.exec(sb.toString().replace('/', '\\'),null, f);
process.wait();
donde sb contiene la ruta al fichero .bat a ejecutar y f contiene el directorio donde estan todos mis ficheros (.bat i .txt a cargar)
el proceso nunca acaba, aunque empieza.
El sqlldr se ejecuta, inserta una parte de los registros y se queda parado, como bloqueado (no hay ningún bloqueo en la base de datos).
Nada se mueve hasta que paro la aplicación Java, en mi caso paro el Tomcat. Entonces el sqlldr acaba su trabajo bien.
No tengo ni idea de que esta pasando y necesito que alguien me oriente un poco.
Estoy usando el mismo código para ejecutar otros ficheros .bat y funciona perfectamente. Espera a que acabe el proceso y sigue la ejecución normal.
Muchas gracias de antemano,
TONI.
Valora esta pregunta


0