在某些大数据库通过smartbi中进行测试连接时,会出现服务器宕机的现象,如Tomcat服务器部署smartbi后连接星环数据库:
1、在连接星环数据库,将对应的jdbc驱动添加到smartbi中
2、新建数据源连接到星环数据库。
3、点击测试连接,系统无响应,后台提示stop的字样:
需要在对应的服务器上添加 JVM参数 -DANTLR_DO_NOT_EXIT=true ,各类服务器添加JVM参数请参考wiki文档:配置JVM参数。
在这里也举例说明服务器添加效果:
如何确定此参数成功添加,可在服务器启动后,导出系统日志,看系统日志中的version.txt 文件:
进入WebSphere的控制台,然后点击 应用程序服务器 > server1 > 进程定义 > Java 虚拟机 设置"通用JVM参数"如下
保存后,重启smartbi服务。
添加JVM参数后,点击测试连接还是报错,从后台提示可以看到包含ClassNotFoundException: org.antlr.stringtemplate.language.ChunkToken字样的错误信息,
可尝试通过如下方式解决:
这个错误是因为smartbi.war包中自带的antlr-2.7.6.jar 和星环jar包中的antlr文件的类冲突导致。
可将smartbi.war包中的smartbi\WEB-INF\lib\ antlr-2.7.6.jar 移除
然后把星环的jar包同样添加到smartbi\WEB-INF\lib\ 目录下,重启服务器并测试连接。
说明:移除了war包中的antlr-2.7.6.jar ,星环的jar包需要添加到smartbi\WEB-INF\lib\目录下才可以,不能放到动态加载类目录dynamicLibraryPath 下,因为antlr-2.7.6.jar是在启动的时候需要的jar包,若放在dynamicLibraryPath 加载目录下,一开始启动无法读取到此路径下的jar包,会导致启动问题。