反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

Cannot create PoolableConnectionFactory

  • 文档创建者:文档助手1
  • 历史版本:9
  • 最近更新:Kevin-s 于 2019-06-02
  • 1. 概述

    在 FineReport 报表中,连接 Oracle 数据库时,有时会出现 Cannot create PoolableConnectionFactory 的报错,该错误原因是无法创建连接池工厂对象。这时可能是服务器地址、端口、数据库名或者数据库实例名等信息错误。下面详细介绍如何解决该问题。


    2. 连接 Oracle11g 数据库报错

    在用默认的 JDBC 驱动连接 Oracle11g 数据库时,报如下错误:

    ORA-12505:TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:172.30.10.15:1521:slsdb


    2.1 解决方案

    将原来的 URL:jdbc:oracle:thin:@localhost:1521:databaseName改成jdbc:oracle:thin:@//localhost:1521/databaseName样式的 URL 即可。


    3. 可能 sid_name 出错,需要修改 sid_name

    该错误常见日志的报错信息为:

    ORA-12505:TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:172.30.10.15:1521:slsdb


    3.1 解决方法

    该错误中 slsdb 不是正确的 sid_name,可能是 server_name,因此只要修改 sid_name 就行。重启后就能正常运行。


    4. 配置连接池时出错

    该错误常见报错日志为:

    TNS-12505:TNS:listener could not resolve SID given in connect descriptor The Connection descriptor used by the client was:172.30.10.15:1521:slsdb


    4.1 解决方法

    • 解决1:看看端口后面的sid是否写错。

    • 解决2:在 Oracle 里面用 tnsping,检查一下 listener 启动了没有,再看看 listener config file 里面有没有写上你的 SID。

    • 解决3:到服务器上看一下 listener.ora

    SID_LIST_LISTENER= (SID_DESC= (GLOBAL_DBNAME=oracle9i) (ORACLE_HOME=/opt/oracle9i/product/9.2.0) (SID_NAME=ORCL) )

    你的 URL 里面可能用的是上面的 GLOBAL_DBNAME 的值,就是用的 SERVICE_NAME,替换成 SID_NAME,也可以登录 sqlplus 服务器$sqlplus/as sysdba SQL>SELECT * FROM V$instance;查看本机上sid的名字。


    5. 监听器不能解析 SERVICE_NAME

    报错日志为:

    ORA-12514:TNS:监听进程不能解析在连接描述符中给出的 SERVICE_NAME


    5.1 解决方法

    SID_NAME 跟安装 Oracle 时的 ORACLE_SID 相同,SERVICE_NAME=DBNAME.DB_DOMAINDBNAME 即是数据库名,它是 Oracle 数据库的内部标识,安装以后轻易不要修改。


    6. 数据库连接经常断开错误

    该错误的报错日志:

    java.lang.RuntimeException: Query:Cannot get a connection, pool error Timeout waiting for idle object


    解决方法:修改连接池,扩大连接池最大连接个数,修改方法详见 连接池属性

    附件列表


    主题: 数据准备
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526