Jasper Reporting Server:长期运行的报告:504网关超时错误

时间:2019-09-17 06:44:50

标签: tomcat jasperserver connection-timeout http-status-code-504

我们有一个使用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”。

任何指导将不胜感激。

非常感谢您的期待

詹姆斯

1 个答案:

答案 0 :(得分:0)

在客户端和jasper报告服务器之间是否存在诸如NGINX之类的代理服务器?代理服务器通常具有自己的超时设置