Oracle SQLException: No more data to read from socket
DBAsupport.com Forums - Powered by vBulletin
Results 1 to 6 of 6

Thread: Oracle SQLException: No more data to read from socket

  1. #1
    Join Date
    Mar 2006
    Posts
    3

    Oracle SQLException: No more data to read from socket

    I'm getting this error while trying to call a stored procedure. This happens only 8 times in 1000 attempts.
    Basically I call a procedure which returns some values.
    The error stack shows -
    java.sql.SQLException: No more data to read from socket
    at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:208)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMA REngine.java:1118)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMA REngine.java:1070)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java: 478)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4 CCallableStatement.java:215)

    I am working on the following -
    RDBMS version : 10.2.0.1.0
    JDBC driver version: 10.2.0.1.0
    The logs seem to indicate that the call fails to go through just before setting an out paramter using "ocs.registerOutParameter" with a user defined object type.
    Could this be an issue with connection pooling or setting the connection map properly for user defined object types or something else?
    Thanks in advance for any help!

  2. #2
    Join Date
    Mar 2006
    Posts
    40
    Are you using shared servers or dedicated server connections? Can you try this directly from the server to eliminate possible network issue?
    If you are using shared server can you try to connect using dedicated server connection and what is your set up for connection pooling and multiplexing?
    go to the oracle clinic
    Quick and easy Oracle database support and consulting

  3. #3
    Join Date
    Mar 2006
    Posts
    3
    Thanks ORACLI.
    Could you please help me regarding what the terms
    shared servers or dedicated server connections mean in this context??

  4. #4
    Join Date
    Sep 2002
    Location
    England
    Posts
    7,331
    http://tahiti.oracle.com

    look up deidcated and shared servers in there

  5. #5
    Join Date
    Mar 2006
    Posts
    40
    Logon as system and execute the query:

    select server, machine from v$session
    where username = '';

    if the server is NONE or SHARED you are using a shared server mode which means more connections to the database share the same server process, or if it is dedicated it means that every connection has it's owen server process.

    If you are using JDBC OCI driver to connect to the DB put the cluase

    (SERVER=DEDICATED)

    in the tnsnames.ora file for the connection to the database For example:

    DOGBERT2 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = vip-rac1)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = dogbert)
    (INSTANCE_NAME = dogbert2)
    )
    )

    This should make your connections dedicated (check with the above query that they really are). Then run the application again and see if the error persists.
    go to the oracle clinic
    Quick and easy Oracle database support and consulting

  6. #6
    Join Date
    Mar 2006
    Posts
    3
    Actually i'm using this statement before executing the query -
    ocs.registerOutParameter(4, OracleTypes.ARRAY, "TEST_ARRAY");
    and the error occurs in this statement
    The stack trace includes the following too -
    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4238)
    at oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:454)
    at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:362)
    at oracle.sql.ArrayDescriptor.initPickler(ArrayDescriptor.java:1756)
    at oracle.sql.ArrayDescriptor.(ArrayDescriptor.java:272)
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:196)
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:165)
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:150)
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:115)
    at oracle.jdbc.driver.NamedTypeAccessor.otypeFromName(NamedTypeAccessor.java:71)
    at oracle.jdbc.driver.TypeAccessor.initMetadata(TypeAccessor.java:79)
    at oracle.jdbc.driver.T4CCallableStatement.allocateAccessor(T4CCallableStatement.java:630)
    at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java :148)
    at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:194)


    Could it be something to do with using the array in the registerOutParameter? Any clues to this issue?

    I feel the issue cannot be related to connection pooling or anything because of the stack trace seen.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width