Duda Con Servlet
Que tal Comunidad:
Tengo una duda respecto a un Servlet, esta es mas o menos mi estructura
public class BuscaFolio extends HttpServlet {
// Conexion a base de datos 1
// tratamiento de informacion
cierro conexion
////////////////////////////////////////////////
// Conexion a base de datos 2
// tratamiento de informacion
cierro conexion
////////////////////////////////////////////////
// Conexion a base de datos 2 con subdirectorio
// tratamiento de informacion
cierro conexion
}
el nombre de la base de datos "2", es el mismo pero yo pienso que como la segunda esta en un subdirectorio no hay
problema sin embargo si lo hay ya que el Servlet solo ejecuta las 2 primeras Conexiones y la tercera que es a que esta
en el subdirectorio ya no lo ejecuta.
Ustedes sabran dar alguna solucion.
Gracias.
- Inicie sesión o regístrese para enviar comentarios
eh?
subdirectorio? la base de datos esta en un subdirectorio?
No entiendo. No se si te refieres a un subdirectorio en JNDI, o si es un archivo o que cosa. Nunca habia oido de tener una base de datos en un subdirectorio (desde el punto de vista de Java, de leer una base de datos via JDBC).
Esta en una carpeta
Por ejemplo asi @ezamudio
"C:/BD/Base/prueba.mdb";
Entonces como la base de datos se llama igual, lo que hago en la tercera instruccion es guardar esa base de datos
en otra carpeta
ejemplo:
"C:/BD/Base/Base2/prueba.mdb";
Espero haberme explicado.
y ahi viene
Entonces es ahi donde viene el problema que a pesar de que esta en subidrectorios
diferentes el codigo solo ejecuta una instruccion.
driver JDBC
Esto es usando JDBC o algo asi? no deberias tener problemas para leer esos archivos, como archivos.
Estando en windows hay dos posibilidades: El driver JDBC o lo que sea que uses para leer esas cosas, no puede leer dos archivos con el mismo nombre, por lo que el del subdirectorio deberia llamarse distinto, o bien tienes que cerrar por completo el anterior antes de abrir el siguiente. La otra es que hay otro proceso que ya tiene abierto el tercer archivo y por lo tanto no lo puede leer tu servlet. Si esos archivos son como de base de datos, seguramente solamente un proceso los puede leer a la vez, por lo que tienes que sincronizar el codigo que usa esos recursos para que solamente un hilo a la vez pueda usar cada uno. Te recomiendo un candado por archivo para que bloquees cada archivo con un candado distinto, es mejor que usar uno solo para todos.
Sin ver codigo, es lo mas que puedo decir.
Perfecto
leyendo tu comentario @ezamudio la solucion que voy a plantear es sincronizar el codigo para que se ejecute solamente un hilo a la vez.
y tienes razon sin ver el codigo diste una buena opinion, el problema es precisamente ese, que no puede leer la base de datos si se llama igual.
Gracias !!!!
si
Actualmente estoy usando JDBC
cuidado con el synchronized
Por favor no vayas a caer en esto...
Tienes que hacer algo así:
De ese modo, sólo un hilo puede usar el primer MDB a la vez, pero un hilo separado podría estar ya usando el segundo MDB y otro estar usando el tercer MDB.
Perfecto
Creo si tenia esa idea, porque si sincronizo los metodos no encontrare la solucion que quiero.