Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Error calling procedure from java app using JDBC thin driver (No more data to read from socket)

Error calling procedure from java app using JDBC thin driver (No more data to read from socket)

From: Paul Burgess <pburgess_at_tweisel.com>
Date: 16 Nov 2001 14:46:58 -0800
Message-ID: <276ea233.0111161446.28b61f99@posting.google.com>


I am having trouble getting a particular procedure to work consistently when calling it from my java application. The procedure receives certain input, and returns an int error code and a ref cursor (the result set). The procedure works occasionally, but fails at other times. There is no visible patters. Sometimes it fails the first time I execute the procedure from the app, sometimes it doesn't happen until the tenth, and everywhere in between. I am using oracle's jdbc thin driver in a weblogic db connection pool. We are running Oracle 8.1.6.3.0. I have checked my syntax, and everything looks in order. Why else would it work sometimes and not others??? The error I get is:

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

        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
        at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:803)
        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:372)
        at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1330)
        at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:757)
        at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1313)
        at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1232)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:1353)
        at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1760)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1807)
        at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:332)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:376)
        at weblogic.jdbc.pool.PreparedStatement.execute(PreparedStatement.java:35)
        at com.twp.charm.dataaccess.AttributeDataAccess.getObjectAttributes(AttributeDataAccess.java:189)
        at com.twp.charm.dataaccess.CompanyDataAccess.getCompanyWithAttributes(CompanyDataAccess.java:67)
        at com.twp.charm.busobj.Company.<init>(Company.java:54)
        at jsp_servlet._test._jspService(_test.java:86)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:106)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:124)
        at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:154)
        at com.twp.charm.service.gatekeeperServlet.service(gatekeeperServlet.java:72)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:106)
        at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:907)
        at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:851)
        at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:252)
        at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:364)
        at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:252)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)

A code snippet:

            conn = getConnection();
	    call = conn.prepareCall("{ call
charm.attribute_pkg.get_attribute_values_for_obj (?,?,?,?) }");
	    call.setString(1, objectType);
	    call.setInt(2,objectId.intValue());
	    call.registerOutParameter(3,Types.INTEGER);
	    call.registerOutParameter(4,OracleTypes.CURSOR);
	    
	    call.execute();	    

	    int errorCode = call.getInt(3);
	    rs = (ResultSet)call.getObject(4);

The error occurs when executing the call.

Any help you can provide would be appreciated.

Regards,
Paul Received on Fri Nov 16 2001 - 16:46:58 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US