Jasper 报告服务器:长 运行 报告:504 网关超时错误

Jasper Reporting Server: Long Running Reports: 504 Gateway Timeout Errors

我们在 Centos 7 上有一个 Jasper Reporting Server 社区实例(7.1.1 版)运行,使用 Jasper 提供的 Apache TomCat 服务器。

Jasper 通过 JDBC 连接器连接到我们的 MS SQL 和 Postgres 数据库

该系统适用于所有简短的 运行ning 报告。但是,如果 运行 报告的时间超过 30 秒,则报告会出现“504 网关超时”错误。

此超时发生在使用任一数据库的长期 运行ning 报告中。

这些长运行宁 SQL 查询可以从 SSMS 或 PGAdmin4 成功 运行 并且需要大约 50 秒到 运行。

Postgres: 要在 Postgress 上复制测试,可以创建一个空白报告,主数据集具有以下查询。
'''SELECT pg_sleep(30);''' 如果我们将休眠时间设置为 29 秒,空白报告 运行 就可以了。如果我们设置为30秒,空白报告超时

MS SQL: 不幸的是,必须在数据库上找到一个很长的 运行ning 查询。我没有便于携带的测试样本 – 抱歉!

尝试过: 在 Jasper / Apache / JDBC 代码中的某处是一个延长查询超时的设置,但对于我(和 Google)的生活,我们找不到它。我们尝试过:

将以下文件中的连接超时设置更改为 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 连接字符串。例如。 jdbc:sqlserver://192.168.1.1:1433;databaseName=test_db; queryTimeout=300

在这两种情况下,我们在进行更改后重新启动了服务器,但没有任何区别。

有一些关于纠正一般 Apache 504 网关超时的现有文章,但是,它们提到修改文件,如“apache2.conf”、“httpd.config”或 "php.ini"我们的系统中不存在。

任何指导将不胜感激。

非常感谢期待

詹姆斯

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