• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1518
  • Last Modified:

Oracle Connectivity Madness

Hello friends -

Tomcat 5 / Hibernate 3.1 / c3p0 .9 application that includes a  process that has been working for about a year now that started failing (as far as I know), Friday.  Essentially JDBC connections to the database won't initialize, instead I get the "No More Data To Read From Socket' message.  Here's a snipet from the log files:

java.sql.SQLException: No more data to read from socket
      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:187)
      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:229)
      at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:982)
      at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:746)
      at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:705)
      at oracle.jdbc.ttc7.TTIdty.receive(TTIdty.java:257)
      at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:241)
      at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361)
      at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:485)
      at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:337)
      at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
      at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
      at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
      at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
      at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
      at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
      at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
      at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)


I'm pretty sure that this doesn't have to do with my c3p0 configuration; I get the same bubble up error ("no more data to read from socket") if I comment out all c3p0 components from my .cfg.xml file (slightly different trace underneath as it just tries to use Hibernate's default connection pooling component).   I also get the error at direct jdbc connection time.  

The database group insists that nothing has changed on their end.  The network group insists that nothing has changed on their end.  I am struggling.  Can anyone provide any assistance?  It has occurred to me that policy level changes / overly aggressive anti virus routines could be involved, but I don't have any thoughts on how to discern if that is the case.  

Any insight is very much appreciated.


  • 3
  • 2
1 Solution
Could be just arbitrary and temporary network problems
Does it happen all the time or intermittently?

Did you change any things recently in your configuration (not quite ckear from your mention)?

That's waht they write (you probably saw this):
This error most likely occurs in applications that use a database connections pool. When the application checked out a connection that has been timed out or has been staled, and used it to connect to the database, this error occurs.

Whenever I experienced such diagnostic it was always either on the datadbase or on network level.
But it was usually intermittent (unless they have a total failure, and the error eventually became more explicit,
like Oracle not available). But I'm not using connection pools.
 The Evil-ution of Network Security Threats

What are the hacks that forever changed the security industry? To answer that question, we created an exciting new eBook that takes you on a trip through hacking history. It explores the top hacks from the 80s to 2010s, why they mattered, and how the security industry responded.

passionlessDroneAuthor Commented:
Hello friends -

Upgrading drivers from 9 to 10 solved the problem, but this does seem to indicate to me that something changed on the database end.  It is possible, I guess that the database group doesn't even know this (?), but is it possible that the database auto updated to a place where old drivers would start to fail?

Thanks for everyone's input.

Yes, when they update Oracle to a newer version some of my programs stop working and I need
to change the driver. The good thing is that with Oracle they are backward compatible 100%
so the new drivers work with my code and also work with old databases if necessary without any problems.
passionlessDroneAuthor Commented:
Figured it out.  Thanks for the help.

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now