JAVA报表工具中Cannot create PoolableConnectionFactory解决方案

JAVA报表工具中Cannot create PoolableConnectionFactory解决方案

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

1. 可能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

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

2. 配置连接池时出错

该错误常见报错日志为:

TNS-12505:TNS:listener could not resolve SID given in connect descriptor

解决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的名字。

3. 监听器不能解析SERVICE_NAME

报错日志为:

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

解决方法:SID_NAME跟安装oracle时的ORACLE_SID相同,SERVICE_NAME=DBNAME.DB_DOMAIN
DBNAME
即是数据库名,它是oracle数据库的内部标识,安装以后轻易不要修改

文章转载:

http://bbs.vsharing.com/Management/Bi-Ci/1407448-1.html

 



了解Java报表工具就从这里开始

你可能感兴趣的:(JAVA报表工具中Cannot create PoolableConnectionFactory解决方案)