5

Recibo una infracción de protocolo y OALL8 es una excepción de estado inconsistente que intenta ejecutar consultas SELECT, pero solo en ALGUNAS de mis tablas. Lo noté por primera vez en una aplicación de prueba que escribí que hizo un SELECT * FROM SOMETABLE. Pasaría por varios centenares de registros y luego me cerraría la puerta. Intenté ejecutar la misma consulta en Oracle 'SQLDeveloper, y obtendría la excepción de Violación de protocolo en algunas tablas. Eventualmente llega a un punto donde indica "OALL8 está en un estado inconsistente" para cualquier consulta.Oracle SqlError: Violación de protocolo/OALL8 está en un estado inconsistente

¿Alguien sabe por qué ocurre esto y cómo solucionar el problema? ¿Dónde está mi estado inconsistente? ¿Es Oracle SqlDeveloper su propio cliente independiente, o se basa en ODAC o Instant Client (referenciado en el entorno PATH) para estar presente?

Lo único que ha cambiado recientemente es que instalé ODAC para poder usar odp.net para reemplazar System.Data.OracleClient en .NET. Era ODAC 11.2.0.3.0 con Oracle Developer Tools para Visual Studio, 32 bit. Desde que actualicé mi variable de entorno PATH para apuntar a mi cliente instantáneo independiente.

  • cliente inmediato - 11.2.0.2.0, que se ejecuta en Windows XP SP3, 32 bits de Oracle DB:

  • base de datos Oracle 11g Express Edition Release 11.2.0.2.0 - Producción, ejecuta en Windows Server 2003, 64

  • ODAC: 11.2.0.3.0

SQLDeveloper fue instalado antes de instalar ODAC, pero de alguna manera SQLDeveloper parece estar pasando por ODAC como el cliente, a pesar de no ODAC que se hace referencia en el Variable de entorno PATH.

Actualización: Cuando inicialmente instalé ODAC, todas mis consultas funcionaban normalmente. Luego dejaron de funcionar después de un día y no puedo explicar por qué. Intenté desinstalar ODAC, que falló al buscar un .DLL para eliminar. Luego eliminé manualmente mi ORACLE_HOME y volví a instalar ODAC, y funciona bien por ahora. No entiendo por qué este es el caso.

Respuesta

0

SQL Developer usa ORACLE_HOME y sus controladores cuando están disponibles. El problema que está viendo en esto es que ORACLE_HOME no es la misma versión que el controlador JDBC incluido en SQL Developer.

La 'solución' para esto es asegurar que el cliente Oracle esté actualizado con la versión de sqldev que haya instalado. La forma más fácil de encontrar esto es cuando la conexión ejecuta show jdbc

show jdbc 
-- Database Info -- 
Database Product Name: Oracle 
Database Product Version: Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production 
Database Major Version: 12 
Database Minor Version: 1 
-- Driver Info -- 
Driver Name: Oracle JDBC driver 
Driver Version: 12.2.0.1.0 
Driver Major Version: 12 
Driver Minor Version: 2 
Cuestiones relacionadas