我们有一个使用Jasper提供的Apache TomCat服务器在Centos 7上运行的Jasper Reporting Server社区实例(7.1.1版)。
Jasper通过JDBC连接器连接到我们的MS SQL和Postgres数据库
该系统适用于所有短期报告。但是,如果运行报告的时间超过30秒,则报告错误,并显示“ 504网关超时”错误。
此超时发生在使用两个数据库的长时间运行的报告中。
这些运行时间较长的SQL查询可以从SSMS或PGAdmin4成功运行,大约需要50秒才能运行。
Postgres:
要在Postgress上复制测试,可以创建一个空白报告,而主数据集具有以下查询。
'''选择pg_sleep(30);'''
如果我们将睡眠时间设置为29秒,则空白报告运行正常。如果我们将其设置为30秒,则空白报告会超时
MS SQL: 不幸的是,人们不得不在数据库上找到长期运行的查询。我没有随身携带的测试样本-对不起!
尝试过: Jasper / Apache / JDBC代码中的某处是用于延长查询超时的设置,但是对于我(和Google)一生来说,我们找不到它。我们已经尝试过:
在以下文件中将connectionTimeout设置更改为60秒:
/opt/jasperreports-server-cp-7.1.1/apache-tomcat/conf/server.xml
<Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1" connectionTimeout="60000" redirectPort="8443"/>
将queryTimeout参数添加到JDBC connecton字符串。例如。
jdbc:sqlserver://192.168.1.1:1433;databaseName=test_db; queryTimeout=300
在这两种情况下,我们都在进行更改后重新启动了服务器,但没有任何区别。
有一些有关纠正一般Apache 504网关超时的现有文章,但是,它们指的是修改我们系统中不存在的文件,例如“ apache2.conf”,“ httpd.config”或“ php.ini”。
任何指导将不胜感激。
非常感谢您的期待
詹姆斯
答案 0 :(得分:0)
在客户端和jasper报告服务器之间是否存在诸如NGINX之类的代理服务器?代理服务器通常具有自己的超时设置