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
Código:
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)rt = Runtime.getRuntime(); File f = new File(LlistaParametres.getInstance().getDirectoriShells().replace('/', '\\')); Process process = rt.exec(sb.toString().replace('/', '\\'),null, f); process.wait();
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.