页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)

...

使用场景

1、数据库报错往往会影响真实问题原因的分析,所以为了排查一些看似和smartbi相关但实际又是数据库jdbc驱动抛出的异常问题,可以通过java代码直接调用jdbc接口实现相关查询看是否正常,从而对比smartbi的逻辑是否有误;

...

3、打开smartbi报表查询的数据和直接在数据库工具(不一定基于jdbc)中查询的结果不一致,此时也可以测试通过Java调用jdbc驱动执行SQL,对比通过加载当前驱动执行SQL查询的数据是否和smartbi报表展示的一致。

操作步骤

...

1、检查数据库驱动

1、检查数据库驱动位置,如果驱动是war自带的,则跳过此步骤,检查驱动程序存放目录是否为自定义,如果是war自带的,则跳过此步骤,如果是额外添加的数据库动态驱动jar,需要找到jar的绝对路径,注意如果是docker部署的,其jar路径不是通过linux ssh工具查看到的绝对路径,而是相对docker根路径的虚拟路径。

...

其中开头的/tomcat是docker路径下 Tomcat的根目录。

...


2、下载页面放到vision文件夹

下载testjdbcdata.jsp,并将testjdbcdata.jsp文件放到vision文件夹下,不需要重启应用服务器。

(若是测试存储过程查询,下载testjdbcPro.jsp,暂不支持Oracle等带出参的存储过程)


3、访问页面执行数据库语句

执行SQL查询

浏览器访问 http://IP:PORT/smartbi/vision/testjdbcdata.jsp,在页面上填写待测试的数据库信息,其中查询SQL可选填,显示查询结果可选勾。

...

如果是动态驱动则需要设置驱动类目录,将步骤1 的路径填入到驱动类目录右边输入框:

执行存储过程查询

若为存储过程查询,浏览器访问地址修改为http://ip:port/smartbi/vision/testjdbcPro.jsp其中“查询存储过程”根据实际进行填写即可,驱动类目录填写规则同上。

4、点击提交按钮,查看返回结果。

...


4、提交并查看返回结果

点击页面中的提交按钮,查看返回结果,如果查询SQL勾选了显示结果集,在数据库连接正常且查询不报错时,显示效果如下图:

       


       如果查询SQL不填内容就提交,则jsp页面只执行创建连接和关闭连接测试,测试结果只有创建连接耗时会显示时间,除了查询SQL显示空字符串外,其他项一般显示未执行

...

如果存储过程有返回多个结果集,查询结果会分别显示各个结果集的信息:

5、后续处理方案

        如果在smartbi查询报错,但是在数据库中查询没问题,若通过此方式仍会报错,则需排查驱动的问题。若通过此方式可正常查询,可将结果截图发回,再进一步跟踪此问题;

...