...
为了避免争议,本文提供的jsp源代码不涉及smartbi相关的java类。
使用场景
1、数据源测试连接、打开报表报错
数据库报错往往会影响真实问题原因的分析,所以为了排查一些看似和smartbi相关但实际又是数据库jdbc驱动抛出的异常问题,可以通过java代码直接调用jdbc接口实现相关查询看是否正常,从而对比smartbi的逻辑是否有误;
2、创建数据库连接慢
打开smartbi报表加载慢,根据提供的CPU采样,定位是创建数据库连接慢,此时可以测试通过Java调用jdbc驱动执行SQL,对比通过加载当前驱动创建连接花费的时间;
3、等待数据库返回结果慢
打开smartbi报表加载慢,根据提供的CPU采样,定位是执行SQL时等待数据库返回结果慢,但是将一样的SQL放到数据库工具中执行,返回结果并不需要很长时间,此时可以测试通过Java调用jdbc驱动执行SQL,对比通过加载当前驱动执行SQL所花费的时间;
4、遍历结果集慢
打开smartbi报表加载慢,根据提供的CPU采样,定位是数据库执行SQL后遍历结果集慢,但是将一样的SQL放到数据库工具中执行,查看一定行数的结果集并不需要很长时间,此时可以测试通过Java调用jdbc驱动执行SQL,对比通过加载当前驱动遍历结果集花费的时间;
5、查询数据不正确
打开smartbi报表查询的数据数据或总行数和直接在数据库工具中查询的结果不一致,此时也可以测试通过Java调用jdbc驱动执行SQL并勾选显示查询结果,对比通过加载当前驱动执行SQL查询的数据是否和smartbi报表展示的一致。
操作步骤
1、检查数据库驱动
检查驱动程序存放目录,如果是war自带的,则跳过此步骤,如果是自定义添加的数据库动态驱动jar,需要找到jar的完整路径,注意如果是docker部署的,其jar路径不是通过linux ssh工具查看到的绝对路径,而是相对docker根路径的虚拟路径。
...
(若是测试存储过程查询,下载testjdbcPro.jsp,暂不支持Oracle等带出参的存储过程)
...
3、访问jsp页面执行数据库语句
执行SQL查询
浏览器访问 http://IP:PORT/smartbi/vision/testjdbcdata.jsp,在页面上填写待测试的数据库信息,其中查询SQL可选填,显示查询结果可选勾。
...
若为存储过程查询,浏览器访问地址修改为http://ip:port/smartbi/vision/testjdbcPro.jsp,其中“驱动类目录”填写规则同上,“查询存储过程”根据实际执行语句填写。
...
4、提交并查看测试结果
点击页面中的提交按钮,查看返回结果,如果查询SQL勾选了显示结果集,在数据库连接正常且查询不报错时,显示效果如下图:
...