Oracle SQLException: No more data to read from socket

I am using JDBC connection pooling to read a large data set and after about an hour or so into the result set processing I get the exception stated blow on all the connections in the pool and the process dies.. What is causing this? How can I correct this?
Oracle SQLException: No more data to read from socket
(load.AbstractLoadDB 171 ) oracle.jdbc.driver.OracleResultSetImpl@19a37a::COMMON_2
java.sql.SQLException: No more data to read from socket
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:885)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:994)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)
at oracle.jdbc.driver.T4C8TTILob.receiveReply(T4C8TTILob.java:775)
at oracle.jdbc.driver.T4C8TTILob.getChunkSize(T4C8TTILob.java:292)
at oracle.jdbc.driver.T4CConnection.getChunkSize(T4CConnection.java:2072)
at oracle.sql.CLOB.getChunkSize(CLOB.java:476)
I would really appreciate your help.
Thanks
M

Well, lot's of things could be causing this. Off the top of my head, in rough order of likelihood:
1) firewall - personal, on your box, or general, around the database, is reaping long-lived connections
2) connection wrappers on the database - ditto
3) your pooler is configured to terminate connections that are checked out of the pool for too long and you're exceeding that time for some operations
4) your database or it's listener is crashing out from under you (and possibly being auto-restarted by the time you look at it).

Similar Messages

  • ORACLE JDBC : java.sql.SQLException: No more data to read from socket

    I have a problem with JDBC, SUN JavaWebServer2.0, and ORACLE: java.sql.SQLException: No more data to read from socket
    On JWS2.0 + JDBC 1.22 ORACLE Thin Driver (classes111),
    SunOS 5.7 Ultra-1 (JDBC-client), connecting to ORACLE 7.3.4.5.0:
    after some successful selects, after about 1 minute, the following exception is thrown:
    java.sql.SQLException: No more data to read from socket
    at java.lang.Throwable.<init>(Compiled Code)
    at java.lang.Exception.<init>(Compiled Code)
    at java.sql.SQLException.<init>(Compiled Code)
    at oracle.jdbc.dbaccess.DBError.check_error(Compiled Code)
    at oracle.jdbc.ttc7.TTCInBuffer.getByte(Compiled Code)
    at oracle.jdbc.ttc7.TTIMsg.unmarshalSB1(Compiled Code)
    at oracle.jdbc.ttc7.Oall7.receive(Compiled Code)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(Compiled Code)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(Compiled Code)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(Compiled Code)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(Compiled Code)
    at oracle.jdbc.driver.OracleStatement.doExecute(Compiled Code)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
    at oracle.jdbc.driver.OracleStatement.executeUpdate(Compiled Code)
    The same application works fine on Win NT4 (JDBC) with ORACLE 7.3.3.0.0
    Can anybody solve this problem? Any ideas?
    null

    Reason: the ORACLE server process crashes (sometimes), and the result is the "empty"
    socket.

  • Java.sql.SQLException: No more data to read from socket

    Hello,
    we're now facing some strange problem which is probably caused by some malfunctioned connections being present in connection pool. The MGP process is failing for some clients with following error message. During the MGP process, some users are processed without any problems and some encounter this exception. I tried to restart the DB and both OL servers (we have 2 OL servers, on one of them is running MGP), but it didn't help.
    Some time before I restarted the servers, we were also occasionally facing "Server connections exceeded" error message, but I don't think this is relevant...
    We're using 10gR2 OL servers and 10gR2 RDBMS.
    Any ideas what could be wrong?
    <pre>
    Applied Record     Counts:
    Insert Count     = 0
    Update Count     = 0
    Delete Count     = 0
    Composed PubItems
    (<PubItem Name>, <Duration     in Milli Seconds>):
    JPOCZ_C$ALL_CLIENTS,16
    JPOCZ_PA_STATESTOCKSUM,1484
    JPOCZ_PA_MEMOS,31
    JPOCZ_TASKMOTYPES,47
    JPOCZ_PA_VISITDETAILS,16
    JPOCZ_PA_STATESTOCK,859
    JPOCZ_DISTRIBS,47
    JPOCZ_ITEMPRICING,438
    Compose Error:
    java.sql.SQLException: No more data to read from socket
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
         at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:985)
         at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:746)
         at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:705)
         at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:108)
         at oracle.jdbc.ttc7.TTC7Protocol.rollback(TTC7Protocol.java:427)
         at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1410)
         at oracle.lite.sync.JupConnection.rollback(Unknown Source)
         at oracle.lite.sync.MGP$MGPG.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    </pre>

    I'm not using localhost, but the host name. We just today notified some other network problems on this server and discovered there're 2 network cards - one of them which wasn't connected was configured for DHCP and the other one was configured properly with fixed IP address. We disabled the disconnected network card and it looks like the problems with other applications is solved so we'll se if the Mobile Server is also cured...

  • JDBC thin driver 8.0.5 giving SQLException: No more data to read from socket

    H/W : sun4u sparc SUNW,Ultra-Enterprise
    OS : SunOS 5.6 Generic_105181-16
    JDBC driver : 8.0.5.0.0 (Production Release)
    Oracle Server : 8.0.5
    I am getting the following error "SOMETIMES". I am using a connection pool to connect to the server using the thin driver. Can anyone tell me why is this happening and how can I fix it.
    Thanks,
    -Ramesh
    SQL Statement: SELECT * FROM blah blah ...
    SQLState: null
    Message: No more data to read from socket
    Vendor: 0
    JDBC close connection failed.
    java.sql.SQLException: No more data to read from socket
    URL=jdbc racle:thin:@<host>:1521:<sid> user=<user_name>
    null

    Hello,
    When I change PLSExtProc to XE, I get a different exception:
    java.sql.SQLException: ORA-00942: table or view does not exist
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
         at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:911)
         at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1120)
         at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:962)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1242)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3446)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3491)
         at oracle.Main.main(Main.java:30)
    SQLException: ORA-00942: table or view does not exist
    thanks,
    - Breno

  • [solaris 8] Oracle 8.1.6 EE: no more data to read from socket

    Hi,
    I'm sorry for writing to this list, but it is the most related I could find.
    I installed Oracle 8.1.6 EE on a sparc 5 with solaris 8. I had to install the thread patches for solaris 8 because the emn0 process of oracle was dying every 30 minutes.
    After that, the DB seemed to work ok, but when running a heavy java process (jdbc),
    the process reports "java.sql.SQLException: No more data to read from socket".
    Have anyone experienced this kind of problem ?
    I decided to reinstall solaris 7... Could anyone help me ? comments ? suggestions ?
    Thanks in advance.
    Gabriel

    Reason: the ORACLE server process crashes (sometimes), and the result is the "empty"
    socket.

  • Oracle 8i on NT: No more data to read from socket

    I'm using the thin JDBC to connect to Oracle 8i on NT. when i
    try to connect i get this exception:
    java.sql.SQLException: No more data to read from socket
    at oracle.jdbc.dbaccess.DBError.check_error
    (DBError.java:659)
    at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(Compiled Code)
    at oracle.jdbc.ttc7.MAREngine.unmarshalSB1
    (MAREngine.java:687)
    at oracle.jdbc.ttc7.TTIpro.receive(TTIpro.java:134)
    at oracle.jdbc.ttc7.v8TTIpro.receive(v8TTIpro.java:93)
    at oracle.jdbc.ttc7.TTC7Protocol.connect
    (TTC7Protocol.java:1100)
    at oracle.jdbc.ttc7.TTC7Protocol.logon
    (TTC7Protocol.java:179)
    at oracle.jdbc.driver.OracleConnection.<init>
    (OracleConnection.java:142)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance
    (OracleDriver.java:214)
    at oracle.jdbc.driver.OracleDriver.connect
    (OracleDriver.java:193)
    at java.sql.DriverManager.getConnection(Compiled Code)
    at java.sql.DriverManager.getConnection
    (DriverManager.java:137)
    at org.apache.turbine.util.db.DBOracle.getConnection
    (DBOracle.java:82)
    at
    org.apache.turbine.util.db.ConnectionPool.getNewConnection
    (ConnectionPool.java:161)
    at
    org.apache.turbine.util.db.ConnectionPool.getConnection
    (ConnectionPool.java:139)
    at org.apache.turbine.util.db.DBBroker.getConnection
    (DBBroker.java:162)
    at org.apache.turbine.util.db.DBBroker.getConnection
    (DBBroker.java:119)
    at org.apache.turbine.util.db.BasePeer.initTableSchema
    (BasePeer.java:179)
    at org.apache.turbine.util.TurbineUserPeer.<clinit>
    (TurbineUserPeer.java:140)
    at
    org.apache.turbine.util.TurbineUser.retrieveFromStorage
    (TurbineUser.java:310)
    at org.apache.turbine.actions.LoginUser.build
    (LoginUser.java:103)
    at org.apache.turbine.modules.ActionLoader.exec
    (ActionLoader.java:115)
    at Turbine.doGet(Compiled Code)
    at Turbine.doPost(Turbine.java:356)
    at javax.servlet.http.HttpServlet.service
    (HttpServlet.java:521)
    at javax.servlet.http.HttpServlet.service
    (HttpServlet.java:588)
    at org.apache.jserv.JServConnection.processRequest
    (JServConnection.java)
    at org.apache.jserv.JServConnection.run
    (JServConnection.java)
    at java.lang.Thread.run(Thread.java:479)
    any one know how to fix this problem???
    -ScottTavares-
    null

    Scott C. Tavares (guest) wrote:
    : I'm using the thin JDBC to connect to Oracle 8i on NT. when i
    : try to connect i get this exception:
    : java.sql.SQLException: No more data to read from socket
    : at oracle.jdbc.dbaccess.DBError.check_error
    : (DBError.java:659)
    : at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(Compiled Code)
    : at oracle.jdbc.ttc7.MAREngine.unmarshalSB1
    : (MAREngine.java:687)
    : at oracle.jdbc.ttc7.TTIpro.receive(TTIpro.java:134)
    : at oracle.jdbc.ttc7.v8TTIpro.receive(v8TTIpro.java:93)
    : at oracle.jdbc.ttc7.TTC7Protocol.connect
    : (TTC7Protocol.java:1100)
    : at oracle.jdbc.ttc7.TTC7Protocol.logon
    : (TTC7Protocol.java:179)
    : at oracle.jdbc.driver.OracleConnection.<init>
    : (OracleConnection.java:142)
    : at oracle.jdbc.driver.OracleDriver.getConnectionInstance
    : (OracleDriver.java:214)
    : at oracle.jdbc.driver.OracleDriver.connect
    : (OracleDriver.java:193)
    : at java.sql.DriverManager.getConnection(Compiled Code)
    : at java.sql.DriverManager.getConnection
    : (DriverManager.java:137)
    : at org.apache.turbine.util.db.DBOracle.getConnection
    : (DBOracle.java:82)
    : at
    : org.apache.turbine.util.db.ConnectionPool.getNewConnection
    : (ConnectionPool.java:161)
    : at
    : org.apache.turbine.util.db.ConnectionPool.getConnection
    : (ConnectionPool.java:139)
    : at org.apache.turbine.util.db.DBBroker.getConnection
    : (DBBroker.java:162)
    : at org.apache.turbine.util.db.DBBroker.getConnection
    : (DBBroker.java:119)
    : at org.apache.turbine.util.db.BasePeer.initTableSchema
    : (BasePeer.java:179)
    : at org.apache.turbine.util.TurbineUserPeer.<clinit>
    : (TurbineUserPeer.java:140)
    : at
    : org.apache.turbine.util.TurbineUser.retrieveFromStorage
    : (TurbineUser.java:310)
    : at org.apache.turbine.actions.LoginUser.build
    : (LoginUser.java:103)
    : at org.apache.turbine.modules.ActionLoader.exec
    : (ActionLoader.java:115)
    : at Turbine.doGet(Compiled Code)
    : at Turbine.doPost(Turbine.java:356)
    : at javax.servlet.http.HttpServlet.service
    : (HttpServlet.java:521)
    : at javax.servlet.http.HttpServlet.service
    : (HttpServlet.java:588)
    : at org.apache.jserv.JServConnection.processRequest
    : (JServConnection.java)
    : at org.apache.jserv.JServConnection.run
    : (JServConnection.java)
    : at java.lang.Thread.run(Thread.java:479)
    : any one know how to fix this problem???
    : -ScottTavares-
    scott --
    which jdbc versionare you using ??
    if not the 816sdk -- try it ...
    make sure you match up with the jdk version ...
    note: jdk 1.2 functionality is not in any of the orcl drivers
    yet.
    check out for this faq (3rd question -- i think) for more details
    on jdk 1.2 support :
    http://technet.oracle.com/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm
    in general -- this occurs due to several different conditions :
    verify that the connections string is correct :
    for thin -- the hostid:port:sid must match the listener you're
    trying to connect with -- and a tcp/ip connection on the server
    ust exist.
    for oci driver make sure the "tnsname" entry being specified
    exists and has the same information in its "entry" correct (i.e.
    matches the listener values)
    also make sure the listener and the orcl instance are started.
    also make sure you're using jdk 1.1.x with 8.1.5 or lower
    drivers.
    816sdk can be used with jdk 1.1 or 1.2 if you are using the
    correct jdbc driver version from otn to match the jdk version.
    only jdk 1.1.x functionality is available in the jdk 1.2 driver
    at this time.
    also make sure you're using a thin driver if in an applet.
    thin or oci in a servlet is ok if properly set up.
    without more info --
    i can't tell which of these "setup or condition" issues applies
    to your situation ...
    always provide :
    jdk details,
    applet vs. application vs. servlet,
    jdbc driver version number and type(thin/oci)
    also server version in all cases and if oci driver is being
    used -- the oracle client version,
    it's always better to provide too much detail with java
    issues than just an error message ...
    i hope this helps ...
    null

  • No more data to read from socket only in 2nd and 3rd database

    Hi,
    I'm developing an application for a client with three independent login modes, each one with an independent database.
    I'm using the following products:
    Oracle 9i database (9.2.0.6.0)
    Oracle Content Management SDK 10g (9.0.4.0.0)
    Oracle Workflow (2.6.3.0.0)
    Oracle Application Server 10g (9.0.4.2.0)
    In development, I've these products installed in x86 machines with Windows 2000. I've no problems and no errors.
    In the client, I've the same products and versions but installed in a Solaris Machine and I've the following error ONLY when I use the second and the third login modes (not always, maybe only in 50% of the times I submit data in the application). In the first login mode I have no problems. The code for the different modes is essentially the same so I don't understand what is the problem. I don't have access to the client server so I can't make a debug.
    The error is:
    Caused by: java.sql.SQLException: No more data to read from socket
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
         at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:985)
         at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:746)
         at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:705)
         at oracle.jdbc.ttc7.Oclose.receive(Oclose.java:105)
         at oracle.jdbc.ttc7.TTC7Protocol.close(TTC7Protocol.java:565)
         at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:848)
         at oracle.jdbc.driver.OraclePreparedStatement.privateClose(OraclePreparedStatement.java:351)
         at oracle.jdbc.driver.OraclePreparedStatement.close(OraclePreparedStatement.java:285)
         at oracle.jdbc.driver.OracleCallableStatement.close(OracleCallableStatement.java:876)
         at oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:579)
         at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:406)
         at oracle.sql.ArrayDescriptor.initPickler(ArrayDescriptor.java:1023)
         at oracle.sql.ArrayDescriptor.<init>(ArrayDescriptor.java:137)
         at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:102)
    I'm using oracle jdbc thin driver.
    As data source class I'm using jdbc.pool.OracleConnectionCacheImpl.
    Anyone have a clue what is happening?

    Have you resolved this? I am getting the same error, but after restarting my webserver and re-establishing my connection pools it works(for a while). I need to find the root.
    Thanks for any help,
    Mark

  • "No more data to read from socket."?

    Hi everybody,
    We recently migrated from Oracle 10g Database Enterprise Edtion to Oracle 11g R2 Database Enterprise Edition
    with Data Guard and a dedicated standy-by database. The database is a data source for multiple applications.
    Among others, we are using two JBoss 4.2.3 GA application servers which run together in a clustered configuration.
    During our migration of our database, we also updated our OJDBC thin drivers from Oracle within our JBosses. We
    replaced the ojdbc14.jar with ojbc6.jar (Oracle 11g 11.1.0.7.0) and updated or added referenced libraries as well.
    Since our migration we experience an unfamiliar problem from time to time. Suddenly our deployed EJBs crash with
    the exception "SQLException: No more data to read from socket." The occurence is rather random than bound to
    a specific bean. The only noticeable thing is that it appears more often when there is more work load on our
    JBosses.
    Our only solution up to now is to shutdown our JBosses, restart the database and restart our JBosses again.
    Depending on our work load we do this from every two days to every 4 hours.
    I googled the message and even found several hundred hits that mentioned the exception above, but none of
    them got really solved, instead people found some case of work around for them. But none of them worked for us,
    since this exception seems more general and can have multiple causes.
    We did not have this problems when we were using the Oracle 10g database. Currently I am not sure if this problem
    is related to the new Oracle 11g R2 database, the new OJDBC thin driver or JBoss.
    Anybody experienced the same problem? And maybe even got it properly solved?
    If you need further information, just ask. I will happily offer as much information as possible to solve this.
    Greetings,
    CB
    Edited by: Crazy Bytes on 08.06.2010 03:10

    Hi,
    I remember that we received similar error after upgrading the database from 9.2.0.7 to 10.2.0.4 in one of our application using JDBC 10.1.0.5. We worked with Oracle support, and they provided us with patch Patch 5851267, that resolved our problem.
    So I would recommend you to do the same.
    regards

  • "No more data to read from socket" exception when testing connections

    Hi,
    I will appriciate your help with the following problem.
    We have the follwoing errors in the weblogic.log (We are using weblogic 8.1.0.2 and Oracle 9.2.0.3)
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep> <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001128> <Connection for pool "oraclePool" closed.>
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001067> <Connection for pool "oraclePool" refreshed.>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001112> <Test "select count(*) from DUAL" set up for pool "oraclePool" failed with exception: "java.sql.SQLException: No more data to read from socket".>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>> <> <BEA-001131> <Received an exception when closing a cached statement for the pool "oraclePool": java.sql.SQLException: Io exception: Broken pipe.>
    These exception occures every hour after the connection pool is being closed and refreshed.
    Also there are a lot of the follwoing warnning in the log :
    <BEA-001074><A JDBC pool connection leak was detected.
    Does these two problems connected? What can we do in order to solve it?
    Thanks
    Edited by RF123 at 01/28/2007 3:41 AM

    R F wrote:
    Hi,
    I will appriciate your help with the following problem.
    We have the follwoing errors in the weblogic.log (We are using weblogic 8.1.0.2 and Oracle 9.2.0.3)
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep> <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001128> <Connection for pool "oraclePool" closed.>
    ####<Dec 20, 2006 10:47:49 AM EET> <Info> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001067> <Connection for pool "oraclePool" refreshed.>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001112> <Test "select count(*) from DUAL" set up for pool "oraclePool" failed with exception:
    "java.sql.SQLException: No more data to read from socket".>
    ####<Dec 20, 2006 10:47:51 AM EET> <Error> <JDBC> <ep > <mfserver> <Thread-14> <<WLS Kernel>
    <> <BEA-001131> <Received an exception when closing a cached statement for the pool "oraclePool":
    java.sql.SQLException: Io exception: Broken pipe.>
    These exception occures every hour after the connection pool is being closed and refreshed.
    Also there are a lot of the follwoing warnning in the log :
    <BEA-001074><A JDBC pool connection leak was detected.
    Does these two problems connected? What can we do in order to solve it?Hi. The problems are not directly related, but may have the same cause.
    Something is killing your DBMS connections out from under the driver.
    Do you have a firewall between WLS and the DBMS, or a flakey network?
    Contact BEA support to get the 8.1sp2 patch for getting meaningful
    connection leak traces (CR209251_81sp2.jar). When that patch is installed
    the leak messages should show a full stack trace of the application code
    where the connection was obtained. It is that application code that
    somehow failed to close the pool connection, causing a pool leak. I
    suspect that the application code got an unexpected exception, such as
    when/if the DBMS/network/firewall killed a connection. In this case I
    believe the application went through an exception-handling path that
    forgot to close the connection.
    Joe

  • PL-SQL JDBC -- No more data to read from socket Exception

    I have a PL/SQL stored procedure which takes CURSOR as IN parameter.
    I want to execute this procedure by passing a ResultSet object into it.
    Below attached is the piece of code I am using.
    When I execute I am getting the following exception ,
    Thanks in advance
    java.sql.SQLException: No more data to read from socket
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
    at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:857)
    at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:731)
    at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:690)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:373)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja
    va:1446)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.jav
    a:1371)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
    nt.java:1900)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
    edStatement.java:363)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
    ement.java:407)
    at ECTTestClass.test16(ECTTestClass.java:500)
    at ECTTestClass.main(ECTTestClass.java:51)
    Statement st = con.createStatement();
    String qry = "SELECT * FROM TAB1";
    ResultSet rs = st.executeQuery(qry);
    int cntr = 0;
    while(rs.next()){
    System.out.println("USER ID " + rs.getString("USER_ID"));
    System.out.println("LICENSE " + rs.getString("LICENSE"));
    cntr++;
    System.out.println("No of rows " + cntr);
    CallableStatement cst = con.prepareCall("{call PREM_TEMP.PREM_PROC(?)}");
    cst.setObject(1,rs,OracleTypes.CURSOR);
    System.out.println("set object...... successful");
    cst.execute();
    st.close();
    cst.close();
    con.close();

    I have a PL/SQL stored procedure which takes CURSOR as IN parameter.
    I want to execute this procedure by passing a ResultSet object into it.
    Below attached is the piece of code I am using.
    When I execute I am getting the following exception ,
    Thanks in advance
    java.sql.SQLException: No more data to read from socket
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
    at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:857)
    at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:731)
    at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:690)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:373)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja
    va:1446)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.jav
    a:1371)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
    nt.java:1900)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
    edStatement.java:363)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
    ement.java:407)
    at ECTTestClass.test16(ECTTestClass.java:500)
    at ECTTestClass.main(ECTTestClass.java:51)
    Statement st = con.createStatement();
    String qry = "SELECT * FROM TAB1";
    ResultSet rs = st.executeQuery(qry);
    int cntr = 0;
    while(rs.next()){
    System.out.println("USER ID " + rs.getString("USER_ID"));
    System.out.println("LICENSE " + rs.getString("LICENSE"));
    cntr++;
    System.out.println("No of rows " + cntr);
    CallableStatement cst = con.prepareCall("{call PREM_TEMP.PREM_PROC(?)}");
    cst.setObject(1,rs,OracleTypes.CURSOR);
    System.out.println("set object...... successful");
    cst.execute();
    st.close();
    cst.close();
    con.close();

  • No more data to read from socket Exception -thin client

    my program is ..
    import java.sql.*;
    class OracleSQL
         OracleSQL()
         public static void connect2DB()
         try
              Class.forName("oracle.jdbc.driver.OracleDriver");
              Connection con=DriverManager.getConnection("jdbc:oracle:thin:@POOJAK:1521:PLSExtProc","System","pooja");
              if(con!=null)
                   Statement stmt=con.createStatement();
                   stmt.executeUpdate("insert into emp values('a',8,8)");
                   stmt.close();
                   con.close();
              else
                   System.out.println("NOT ok");
         catch(Exception e)
              e.printStackTrace();
         public static void main(String args[])
              OracleSQL osql=new OracleSQL();
              osql.connect2DB();
    following error on execution..
    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(T4CMAREngine.java:1118)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
    at oracle.jdbc.driver.T4C8TTIpro.receive(T4C8TTIpro.java:131)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:867)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:268)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:
    420)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at
    oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtensio
    n.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at OracleSQL.connect2DB(OracleSQL.java:15)
    at OracleSQL.main(OracleSQL.java:38)
    classpath
    C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar;C:\oraclexe\app\oracle\product\10.2.0\server\jlib\orai18n.jar ;C:\bea\weblogic81\server\lib\weblogic.jar;
    path
    C:\oraclexe\app\oracle\product\10.2.0\server\BIN;
    i m using jdk 1.5
    Plz state reason of error as i hv tried many alternatives but in vain.

    When you post code, please use[code] and [/code] tags as described in Formatting tips on the message entry page. It makes it much easier to read.
    Google:
    User StuDerby posted:
    Well, lot's of things could be causing this. Off the top of my head, in rough order of likelihood:
    1) firewall - personal, on your box, or general, around the database, is reaping long-lived connections
    2) connection wrappers on the database - ditto
    3) your pooler is configured to terminate connections that are checked out of the pool for too long and you're exceeding that time for some operations
    4) your database or it's listener is crashing out from under you (and possibly being auto-restarted by the time you look at it).

  • Error code: 17410: No more data to read from socket

    We have a strange issue.
    We have a stored procedure which we invoke using JDBC code. Calls to this stored procedure runs fine on 2 databases but fails on the 3rd one. If we run the stored procedure using SQL Plus, it works fine.
    SQLException being thrown is:
    java.sql.SQLException: No more data to read from socket
    Oracle database version is Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production in all three environments
    While debugging the issue we figure the order of Java code made a difference while invoking the stored procedure that did not initially work.
    Original Code:
    ArrayDescriptor desc = ArrayDescriptor.createDescriptor( "SCHOOLLISTTYPE", conn );
    StructDescriptor structdesc = StructDescriptor.createDescriptor( "SCHOOLCODEOBJ", conn );
    Object[] attributes1 = { new String( "00131700" ), new String( "00" ) };
    STRUCT empType1 = new STRUCT( structdesc, conn, attributes1 );
    Object[] attributes2 = { new String( "00115900" ), new String( "01" ) };
    STRUCT empType2 = new STRUCT( structdesc, conn, attributes2 );
    Object[] attributes3 = { new String( "03078200" ), new String( "00" ) };
    STRUCT empType3 = new STRUCT( structdesc, conn, attributes3 );
    Object[] arrayElements = { empType1, empType2, empType3 };
    ARRAY newArray = new ARRAY( desc, conn, arrayElements );
    CallableStatement ps = conn.prepareCall( "{call AWSchools.Names (?, ?, ?)}" );
    Throws the SQLException mentioned above.
    But if I change the code to:
    StructDescriptor structdesc = StructDescriptor.createDescriptor( "SCHOOLCODEOBJ", conn );
    Object[] attributes1 = { new String( "00131700" ), new String( "00" ) };
    STRUCT empType1 = new STRUCT( structdesc, conn, attributes1 );
    Object[] attributes2 = { new String( "00115900" ), new String( "01" ) };
    STRUCT empType2 = new STRUCT( structdesc, conn, attributes2 );
    Object[] attributes3 = { new String( "03078200" ), new String( "00" ) };
    STRUCT empType3 = new STRUCT( structdesc, conn, attributes3 );
    Object[] arrayElements = { empType1, empType2, empType3 };
    ArrayDescriptor desc = ArrayDescriptor.createDescriptor( "SCHOOLLISTTYPE", conn );
    ARRAY newArray = new ARRAY( desc, conn, arrayElements );
    CallableStatement ps = conn.prepareCall( "{call AWSchools.Names (?, ?, ?)}" );
    code works fine.
    This is strange as the ArrayDescriptor and StructDescriptor and independent objects till we invoke ARRAY newArray = new ARRAY( desc, conn, arrayElements );
    Why would creating the ArrayDescriptor after we have done with arrayElements and desc make a difference?
    And this happens only with one database server. The original code works fine in other 2 oracle database.
    We did search in many forums about the error "No more data to read from socket". Seems this is a dark error which does not have any convincing answers.
    Any help will be greatly appreciated.
    Thanks.

    enable gateway tracing by setting HS_FDS_TRCE_LEVEL=255 in your DG4MSQL configuration file. Then open a new SQL*Plus window and execute:
    select user from dual@<dg4msql db link>;
    A trace file is generated in the ORACLE_HOME/dg4msql/trace directory. Post its content.

  • XI to jdbc error:  No more data to read from socket

    i have a XI to JDBC scenario, where a receiver JDBC communication channel sends a query to the database, i get an error in the response (from database) as:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'NAME' (structure 'STATEMENT'): java.sql.SQLException: No more data to read from socket</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>

    Hi Sudeep,
    This error most likely occurs when you use DB connection pool, which I think is the case in XI. When the JDBC adapter tries to connect to the database and discovers that the connection has been timed out/lost, then this exception is generated. Please have a look of the connection settings of your JDBC adapter and also at the note 831162.
    Cheers...
    Vasu
    <b>** REward POInts if found useful **</b>

  • 'No more data to read from socket' error connecting to Oracle 9i

    Hi,
    My Java app connecting to Oracle 9i gets an error: No more data to read from socket.
    Application host is running oraClient805 and JDK1.3.1_06 SE
    Connection string jdbc:oracle:thin:@myhost:1521:mysid worked fine connecting to the Oracle 8 version.
    I've checked tnsnames.ora, tried tnsping util to Ora 9i, it's OK. As well I could connect directly through the SQL Worksheet.
    Could anyone suggest what could be wrong or different to make a connection from Java app to Oracle 9i ?
    I was advised to upgrade the driver, but I am not sure what do I need. I have classes102, classes111, and classes12 in the %ORACLE_HOME%\jdbc\lib\ directory. Do I miss something?
    Thanks a lot.
    Tatiana

    I believe there might be problems using the older drivers with oracle 9. You might search this forum for more info.

  • Sequence error: No more data to read from socket

    We are getting the following error when inserting data into the center table. What does this error mean? We noticed if we take sequencing off the second table we do not get the error. ARe triggers for sequence are as follows.
    begin
    select db.insequence.nextval into :new.id from dual;
    end;
    begin
    select db.centerseq.nextval into :new.id from dual;
    end;
    Thanks in advance.

    Narsimha (guest) wrote:
    : I am getting the following error:
    : "No more data to read from Socket"
    : I am using Oracle 8.0.3 + Jdk 1.1.5 + JDBC Driver 7.3.3.1.3
    : Follwing is my simple program. I got struck here.
    : <<< Please provide me the solution. >>>
    : import java.sql.*;
    : class JDBCTest{
    : public static void main (String args []) throws SQLException,
    : ClassNotFoundException{
    : Class.forName ("oracle.jdbc.driver.OracleDriver");
    : Connection conn =DriverManager.getConnection
    : ("jdbc:oracle:thin:@myHost:1521:orcl","scott", "tiger");
    : Statement stmt = conn.createStatement ();
    : ResultSet rset = stmt.executeQuery ("select * from
    FDMainList");
    : while (rset.next ())
    : System.out.println (rset.getString (1));
    I have the same problem with thin jdbc driver against 8.0.3
    server.
    Try to use oci8 driver - You have to install sql*net8 client
    first. It works for me.
    Looking at:
    http://technet.oracle.com/tech/java/access/info/jdbc_faq.htm#_1_
    I think no thin driver supports 8.0.3 unfortunately.
    null

Maybe you are looking for

  • EJB communication between weblogic and websphere

    Hello: I have weblogic 7.1 instance running in machine A and websphere running in machine B. I want to make a call to the ejb deployed from weblogic to websphere. Any experience in this would be very helpful. Or pl. post the procedure. Thx in advance

  • Calendar entries made on Iphone do not sync to Icloud

    Why do my appointment entries made in Icloud calendar sync to phone but, appointment entries made on phone do not sync to I coud calendar.

  • ITunes wont shut down

    Sometimes, especially after a long session using my iTunes, it continues to function but wont shut-down when I try to close it. The only way to close it is to initiate the task manager and shut it down via override. Is there a fix needed for this pro

  • Problems passing a nested table or Varray as a parameter

    Hi, could some one please show me the code for passing a varray or a table as a parameter in a PL/SQL function or procedure. I have tried a number of ways but am not getting anywhere fast. A small bit of sample code that shows a function that takes a

  • How to place grouped items into another object with content collector tool?

    Is it possible to paste a group into another object (i.e. frame) by using the Content Collector Tool while linking the content?  Paste Into is either deselected or possibly whatever was last saved to the clipboard ends up inserting. I was able to pla