【问题标题】:Getting java.sql.SQLException: No more data to read from socket获取 java.sql.SQLException:没有更多数据可以从套接字读取
【发布时间】:2015-02-04 14:40:06
【问题描述】:

我正在尝试通过 eclipse 3.4 jdk 1.5 tomcat 6 连接到 oracle 11g

当我尝试使用以下代码创建数据库连接时出现此错误

java.sql.Connection 配置 =DriverManager.getConnection("jdbc:oracle:thin:@localhost::","用户名","密码");

堆栈跟踪如下:

java.sql.SQLException: 没有更多数据可以从套接字读取

at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1157)
at oracle.jdbc.driver.T4C8TTIpro.receive(T4C8TTIpro.java:129)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1162)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.Display.doGet(Display.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at 
         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

我已经替换了我的 ojdbc5.jar 以使用 jre 1.5,我认为 jar 文件可能存在问题。

我已使用以下查询检查了我的v$session 表中的活动连接数

select server,machine,status from v$session;

返回了 32 个条目,其中 27 个条目的状态为 ACTIVE。此外,服务器是专用的。

我在某处读到,池中的大多数连接都处于非活动状态,但在我的情况下,大多数连接都是活动的。我不知道为什么会这样,或者问题是因为这个。

我还按照现有帖子之一的建议将 oracle 参数设置为 “_optim_peek_user_binds”=false

但到目前为止没有任何帮助。任何帮助,将不胜感激。谢谢

【问题讨论】:

  • 请发布确切问题发生的代码/服务方法
  • 问题出在 servlet 的 doGet 方法中。项目是简单的动态网络项目。
  • 执行此语句时引发异常 java.sql.Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost::","username","password");跨度>
  • 请求您发布加载驱动程序等的代码。
  • @sneha Class.forName("oracle.jdbc.driver.OracleDriver"); 在调用 getConnection 方法之前被调用了吗?

标签: java oracle sockets jdbc


【解决方案1】:

localhost:SID 不工作我更改为 localhost:portnumber:servicename,它现在可以工作了。非常感谢 :-) – sneha

【讨论】:

    猜你喜欢
    • 2012-09-18
    • 2018-01-07
    • 2012-07-16
    • 2011-12-11
    • 2015-05-12
    • 2021-01-23
    • 2017-06-17
    • 1970-01-01
    相关资源
    最近更新 更多