目录

数据库连接不上

5.3.1. 数据库连接不上

  • 原因

    数据库连接不上的原因有很多,总结如下:

    1、 连接池配置错误(driver\url\user\password等写法有误)

    2、 报表模板的数据集配置中的数据源名称、reportConfig.xml中的datasource名称、及应用服务器的jndi名称,三者存在不一致的现象

    3、 reportConfig.xml中数据源没有配置

    4、 jdbc包缺失、版本不正确,或者没有正确放在应用服务器的java类路径下

    5、 与客户具体环境相关问题:数据库服务器重启、浏览器使用代理

    当数据库连接有问题时,常见错误信息如下:

  • 服务器端的错误信息

    1、现象:[2007-06-17 15:24:49] runqianReportLogger : [INFO ]  - 开始运算报表,首先取数...

    [2007-06-17 15:24:49] runqianReportLogger : [ERROR]  - 产生数据工厂: com.runqian.report4.dataset.SQLDataSetFactory 失败

    : 数据集中,数据集 ds1 中未设定数据源名称,且无默认数据源,请检查数据源设定。

    at com.runqian.report4.dataset.SQLDataSetFactory.createDataSet(Unknown Source:52)

    at com.runqian.report4.model.CalcReport.calcDataSet(Unknown Source:147)

    原因:没有在reportconfig.xml中设置数据源

    解决方法:检查reportConfig.xml 文件中数据源的配置.

    2. 现象: [2007-06-17 15:34:06] runqianReportLogger : [ERROR]  - 产生数据工厂: com.runqian.report4.dataset.SQLDataSetFactory 失败

    : 数据集ds1中,数据源demo无数据库连接,且未设定数据连接工厂,请检查数据源设定:

    at com.runqian.report4.dataset.SQLDataSetFactory.createDataSet(Unknown Ssource:60)

    原因:报表的数据集中设置了数据源,但与服务器设置的数据源名称不一致.

    解决方法:将报表模板中数据集的数据源名称与服务器中的数据源名称修改一致.

    3、现象:[2007-09-02 14:51:32] runqianReportLogger : [INFO ]  - 开始运算报表,首先取数..

    [2007-09-02 14:51:32] runqianReportLogger : [DEBUG]  - 下面开始打出sql

    [2007-09-02 14:51:32] runqianReportLogger : [DEBUG]  - ds1=SELECT *  FROM emp

    [2007-09-02 14:51:32] runqianReportLogger : [ERROR]  - 产生数据工厂: com.runqian.report4.dataset.SQLDataSetFactory 失败: GBK;

    错误来源:GBK;

    at com.runqian.report4.dataset.SQLDataSetFactory.createDataSet(Unknown Source:225)

    at com.runqian.report4.model.CalcReport.calcDataSet(Unknown Source:158)

    at com.runqian.report4.usermodel.Engine.calc(Unknown Source:90)

    at com.runqian.report4.view.ReportCalculator._$1(Unknown Source:109)

    原因: 产生数据工厂: com.runqian..report4.dataset.SQLDataSetFactory 失败: GBK; 由此分析是由于数据库连接失败造成的,而且与字符集配置有关系。

    解决方法: 检查数据源的配置,发现url的配置中多了一个分号。去掉后,问题解决。

    url = jdbc:JTurbo://127.0.0.1/pubs/charset=GBK;

    4、现象:weblogic92 +runqian V4.0 + ORACLE10g  在weblogic92中配置了数据源,并且测试连接已经成功。通过url访问报表时总报socket的错误。

    原因:数据库和weblogic不在同一台机器上,数据库重启后,没有重启webserver,出现socket的问题。

    解决方法:数据库服务器重启后,应重启webserver。如果客户端上网使用了代理。把代理去掉后再访问报表。

    5、现象:Eclipse + tomcat + runqian V4.0  报表能正常访问数据库,但在tomcat启动的时候总报数据源没有连接上。

    后台错误信息:[2007-09-02 18:41:00] runqianReportLogger : [ERROR]  - 没有找到数据源java:comp/env/mydb, 请检查服务器的数据库连接池配置!

    javax.naming.NameNotFoundException: Name mydb is not bound in this Context

    at org.apache.naming.NamingContext.lookup(NamingContext.java:768)

    at org.apache.naming.NamingContext.lookup(NamingContext.java:138)

    at org.apache.naming.NamingContext.lookup(NamingContext.java:779)

    at org.apache.naming.NamingContext.lookup(NamingContext.java:138)

    at org.apache.naming.NamingContext.lookup(NamingContext.java:779)

    原因:检查web.xml中数据源的配置发现的确只配置了mydb 一个数据源。删除web.xml数据源的配置,启动tomcat仍然报这个错。检查tomcat\ conf\Catalina\localhost 下的配置文件,发现有多个xml文件。分别配置了多个应用。其中一个应用中配置的数据源名称也为mydb ,但这个数据源没有配置成功。所以每次启动tomcat的时候都会报没有找到数据源的错误。

    解决方法:1.删除这个多余的配置文件。2.修改数据源的配置。