【问题标题】:Couldn't connect to database with following credentials :jdbc:oracle:thin@:smthing无法使用以下凭据连接到数据库:jdbc:oracle:thin@:smthing
【发布时间】:2015-08-13 12:22:27
【问题描述】:

有时我会得到

>  java.sql.SQLException: Could not get a valid Connectionexception 

当我的网络应用尝试连接数据库时。我正在使用 JDBC、Preparation Statement 并作为服务器 Apache Tomcat 6。这个错误只有在我重新启动 Apache 服务器时才会消失。谁能告诉我这个异常的原因是什么,我该如何解决?我确信凭据是正确的。

这是完整的日志:

> Couldn't connect to database with following credentials : jdbc:oracle:thin:@129.1.2.163:1522:TAPPROD/CRANE_TP
java.sql.SQLException: Could not get a valid Connection...
    at UtilityPack.DBPack.ConnCacheBean.getPoolConnection(ConnCacheBean.java:203)
    at UtilityPack.DBPack.ConnCacheBean.getConnection(ConnCacheBean.java:217)
    at UtilityPack.DBPack.SessionStruct.getNewConnection(SessionStruct.java:881)
    at CraneInfra.JSPReceiver.beforePreprocessPage(JSPReceiver.java:147)
    at JSPManager.HAPJSPReceiver.preProcessPage(HAPJSPReceiver.java:424)
    at org.apache.jsp.CraneDesktop.Login_jsp._jspService(Login_jsp.java:91)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    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 com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)

【问题讨论】:

    标签: java oracle tomcat jdbc


    【解决方案1】:

    检查连接 URL。您可以使用完全限定的 URL,如下所示。 jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=servicename)))

    您还可以使用如下所示的 EasyConnect URL 进行测试。 =jdbc:oracle:thin:HR/hr@//localhost:1521/myservicename

    我们建议使用完全限定的 URL,而不是简单的连接 URL。

    【讨论】:

      【解决方案2】:

      问题很可能与您的连接池的配置方式有关。可能是连接少、连接未释放或僵尸连接。 (我想他们就是这么叫的。)

      查看Tomcat's doc,了解如何指定此类设置。这是一个每次都真正定制的主题,所以试错法很可能是您最好的选择。

      【讨论】:

        【解决方案3】:

        要么你配置的连接池中的连接太少 或者您没有释放/关闭连接。

        在执行准备好的语句后尝试关闭连接

         <<yourConnection>>.close();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-11
          • 1970-01-01
          • 1970-01-01
          • 2018-12-04
          • 2015-03-09
          • 2018-05-28
          • 2021-01-20
          相关资源
          最近更新 更多