SQLException: Violación de Protocolo en oracle

Estoy recibiendo el «Protocolo de Violación».
Tengo una aplicación que se ejecuta en RedHat Linux.La base de datos y la aplicación están co-residente en la máquina.

Oracle versión usada: Oracle 11g R2 (11.2.0.3.0)
Controlador JDBC utilizado: 12.1.0.1
Java utiliza: jdk1.7.0.65 32 bits

Me he encontrado muchos foros donde este error ha sido señalado a ser un problema de controladores, pero en todos los foros de oracle versión utilizada fue mayor y la versión del controlador eran mayores y cambiar el controlador resuelto el problema.Pero en mi caso la versión de Oracle es inferior, pero la versión del controlador es mayor.Así , en este caso será la versión más alta de la que el conductor podría ser un problema?

También, esta violación de protocolo también puede surgir cuando el número máximo de conexiones en el DB se alcanza ?

Mensaje De Error:

java.sql.SQLException: violación de Protocolo: [72]
en oracle.jdbc.el controlador.T4CTTIfun.recibir(T4CTTIfun.java:464)
en oracle.jdbc.el controlador.T4CTTIfun.doRPC(T4CTTIfun.java:192)
en oracle.jdbc.el controlador.T4C8Oall.doOALL(T4C8Oall.java:531)
en oracle.jdbc.el controlador.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
en oracle.jdbc.el controlador.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
en oracle.jdbc.el controlador.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
en oracle.jdbc.el controlador.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
en oracle.jdbc.el controlador.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
en oracle.jdbc.el controlador.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
en oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)

es porque tu usuario contraseña ha caducado?
No, La contraseña del usuario no está caducado.
Tendremos que ver el mensaje de error completo, no sólo una de dos palabras resumen de la misma.
stackoverflow.com/questions/4685021/…

OriginalEl autor Saurav | 2015-03-31

6 Kommentare

  1. 6

    Este tipo de error indica un error en el JDBC delgado conductor que no es capaz de entender lo que el servidor devuelve en el cable (socket).

    Siempre puedes probar a utilizar las últimas JDBC delgado conductor con la esperanza de que el error va a ser resuelto. A partir de hoy el más reciente es 12.1.0.2.

    Si eso no ayuda, entonces usted necesita para llegar a el soporte de Oracle. La primera cosa que se le pedirá es proporcionar el sqlnet rastro de la conexión donde esta el error ocurrido. Esto ayudará a los ingenieros Oracle entender lo que estaba sucediendo en la red cuando el error ocurrió.

    Para encender sqlnet seguimiento, editar su sqlnet.ora archivo en el servidor y agregar

    TRACE_LEVEL_SERVER = 16

    que añadir un archivo de seguimiento para cada conexión en su traza director (en el servidor). No hagas esto en un sistema de producción dado que ralentizan el sistema dramáticamente y generará gran cantidad de huellas.

    Buena suerte.

    OriginalEl autor Jean de Lavarene

  2. 5

    Aumentar el espacio de montón!

    He tenido este error exacto que aparece de forma aleatoria.

    La aplicación se ejecuta fuera de la memoria y la OutOfMemory error se ha perdido debido a la lógica en el código que se tradujo en una relación de excepción.

    Una de las razones por las aplicaciones no deben manejar throwables y errores.

    Tenía el mismo problema. Herramienta de monitoreo drásticamente ayudar en este tipo de errores…

    OriginalEl autor Tian Na

  3. 1

    En mi caso, el uso de getGeneratedKeys() de PreparedStatement para obtener la corriente de la secuencia de valor causado la violación de protocolo excepciones. El reemplazo con la obtención de la secuencia de valor actual de la secuencia, como se indica a continuación:

    String curSeqValQuery = "SELECT seq_name.CURRVAL FROM DUAL";
    ...
    statement = con.prepareStatement(curSeqValQuery);
    resultSet = (OracleResultSet) statement.executeQuery();
    ...

    resuelto el problema.

    OriginalEl autor AVA

  4. 0

    Podría ser simplemente que la conexión está infectado o no válido. Si su conexión de JDBC proviene de un grupo de Conexión, asegúrese siempre de que la prueba de la conexión a la reserva.

    OriginalEl autor Pierluigi Vernetto

  5. 0

    Esto normalmente indica dañado el tráfico tcp/ip. Esto puede ser debido a que se inyecta tráfico, o el número de paquetes perdidos. Hacer un ifconfig a ver si alguno de sus interfaces de red está siendo afectada por una inusual alta cantidad de paquetes perdidos. Para evitar problemas, como indicar que la base de datos y programa de java que se ejecutan en la misma máquina, pruebe a utilizar la interfaz de loopback 127.0.0.1 (localhost), en lugar de la IP externa para conectarse a la base de datos, o de la otra manera sólo para una prueba.

    No investigado más a fondo, pero supongo que también podría suceder cuando el conductor y versión de base de datos están demasiado lejos. Conseguir el controlador para que coincida con la instalación de oracle no debería ser demasiado difícil.

    OriginalEl autor YoYo

  6. -1

    El Problema que se fija en ojdbc7.jar – versión 12.1.0.2 (versión puede comprobar en el META-INF del archivo jar)

    OriginalEl autor Santhosh Aella

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea