1. 概述
本文提供使用「设计器环境检测」时,出现 finedb 异常时的解决方案。
2. 检测项目及解决方案
2.1 FineDB 状态是否良好
问题描述:当前 Hsql 数据库已被另一线程锁。
日志记录:错误代码:11300111,FineDB锁死,当前 Hsql 数据库已被另一线程锁。
原因分析:打开了设计器,因为报表内置的数据库为 HSQL 数据库,HSQL 数据库不能多线程访问。
解决方案:
方法一:
关闭 java 编辑器,如 idea、 Eclipse 进程,将代码中导出模板工程 %FR_HOME%\webapps\webroot\WEB-INF\embed\finedb 下的 db.lck 文件删除,再次打开java 编辑器运行代码运即可。
注:该方法在运行一次后仍会报错,需要反复删除 db.lck 文件。
方法二:
报表工程内置的 HSQL 数据库不能多线程访问,可以将其迁移为其他数据库。迁移方法可参考文档:配置外接数据库
2.2 FineDB 是否具有访问权限
问题描述:无法访问FineDB。
日志记录:错误代码:11300112,FineDB权限,无法访问FineDB。
原因分析:
1、当前系统登录用户没有 FineDB 权限,联系超管开启相应的权限。这里指的是操作系统的用户,非工程的用户。
2、FineDB 文件的权限没有开导致无法访问,需要超管开启文件夹权限。
解决方案:联系超管开启对应文件夹或开启用户权限。
2.3 FineDB 是否存在脏数据
问题描述:FineDB 脏数据,XX表出现异常。
日志记录:错误代码:11300113,fineDb脏数据,XX表异常。
原因分析:FineDB中存在脏数据。
解决方案:推荐重置finedb,将在 embed文 件夹下生成备份并重置,或可联系技术支持进行解决。