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.