unidad pide para instalar encuentra dvds duro dispositivo disco controladores controlador cds asus oracle junit oracle10g ora-12519

oracle - pide - no se encuentra un controlador de dispositivo para la unidad de cds o dvds



Qué puede causar errores ORA-12519 intermitentes(TNS: no se encontró controlador apropiado) (5)

Estamos ejecutando nuestro conjunto de pruebas de Junit 4 contra Weblogic 9 frente a una base de datos Oracle 10 (utilizando Hudson como un servidor de integración continua) y ocasionalmente obtendremos un bloqueo ORA-12519 durante el cierre del script. Sin embargo, el error es muy intermitente:

  • Suele pasar para la misma clase de prueba
  • No siempre ocurre para los mismos casos de prueba (a veces pasan)
  • No ocurre con el mismo número de casos de prueba (en cualquier lugar de 3-9)
  • A veces no sucede en absoluto, todo pasa

Si bien no puedo garantizar que esto no ocurra localmente (cuando se ejecuta contra la misma base de datos, por supuesto), he ejecutado el mismo conjunto de clases varias veces sin problemas.

¿Algunas ideas?


No sé si esta será la respuesta de todos, pero después de algunas excavaciones, esto es lo que se nos ocurrió.

El error es obviamente causado por el hecho de que el oyente no aceptaba las conexiones, pero ¿por qué tendríamos ese error cuando otras pruebas podrían conectarse bien (también podríamos conectar ningún problema a través de sqlplus)? La clave del problema no era que no pudiéramos conectarnos, sino que era intermitente

Después de algunas investigaciones, descubrimos que había algunos datos estáticos creados durante la configuración de la clase que mantendrían conexiones abiertas durante la vida de la clase de prueba, creando nuevas a medida que avanzaban. Ahora, a pesar de que todos los recursos se lanzaron correctamente cuando esta clase salió del alcance (a través de un bloque finally {}, por supuesto), hubo algunos casos durante la ejecución cuando esta clase se tragaría todas las conexiones disponibles (bueno, malo alerta de práctica: este fue el código de prueba unitaria que se conectó directamente en lugar de usar un grupo, por lo que el mismo problema no podría ocurrir en la producción).

La solución fue no hacer que la clase sea estática y se ejecute en la configuración de la clase, sino que en su lugar se usa en los métodos set up y tearDown.

Entonces, si obtienes este error en tus propias aplicaciones, dale una cachiporra a ese chico malo y ve si tienes una fuga de conexión. Espero que ayude.


Otra solución que encontré es un error similar pero el mismo mensaje de error es para aumentar la cantidad de controladores de servicio encontrados. (Mi instancia de este error fue causada por demasiadas conexiones en los grupos de conexiones del portal Weblogic).

  • Ejecute SQL*Plus e inicie sesión como SYSTEM . Debe saber qué contraseña ha utilizado durante la instalación de Oracle DB XE.
  • Ejecute el comando alter system set processes=150 scope=spfile; en SQL * Plus
  • MUY IMPORTANTE: reinicia la base de datos.

De aquí:

http://www.atpeaz.com/index.php/2010/fixing-the-ora-12519-tnsno-appropriate-service-handler-found-error/


También tuve el mismo problema, busqué las respuestas en muchos lugares. Obtuve muchas respuestas similares para cambiar el número de controladores de proceso / servicio. Pero pensé: ¿y si me olvidé de reiniciarlo?

Luego intenté usar el método Thread.sleep() después de cada uno de mis connection.close(); .

No sé cómo, pero funciona al menos para mí.

Si alguien quiere probarlo y descubrir cómo está funcionando, por favor, adelante. También me gustaría saberlo ya que soy un principiante en el mundo de la programación.


Tuve el problema similar. Sucedió cada vez que ejecuto un paquete de pruebas de base de datos (Spring JDBC) con SpringJUnit4ClassRunner , así que resolví el problema al poner la anotación @DirtiesContext para cada prueba para limpiar el contexto de la aplicación y liberar todos los recursos para que cada prueba se pudiera ejecutar con un nuevo Inicialización del contexto de la aplicación.


Tuve este problema en una prueba de unidad que abrió muchas conexiones al DB a través de un grupo de conexiones y luego "detuvo" el grupo de conexiones (en realidad, ManagedDataSource) para liberar las conexiones al final de cada prueba. Siempre me quedé sin conexiones en algún momento del conjunto de pruebas.

Agregué un Thread.sleep (500) en el desmontaje () de mis pruebas y esto resolvió el problema. Creo que lo que sucedía era que el grupo de conexiones stop () libera las conexiones activas en otro hilo de modo que si el hilo principal sigue ejecutándose, los hilos de limpieza se han quedado tan atrás que el servidor de Oracle se quedó sin conexiones. Agregar la suspensión permite que los hilos de fondo liberen las conexiones agrupadas.

Este es un problema mucho menos importante en el mundo real porque los servidores de bases de datos son mucho más grandes y hay una combinación saludable de operaciones (no solo operaciones interminables de conexión / desconexión de DB).