Cannot

编辑
文档创建者:文档助手1 (67727 )     浏览次数:9529次     编辑次数:8次     最近更新:Holly 于 2017-01-16     

目录:

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

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

附件列表


主题: 数据连接
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?只是浏览 [ 去社区提问 ]