BIRT 会话在 Vertica 中保持开放

BIRT sessions stay open in Vertica

在开发 BIRT 报告时,我在管理 Vertica 中的连接时遇到了很多问题。基本思想是 sessions 永远不会死,所以我总是达到连接上限。这当然是个问题,因为除非你执行 close_all_sessions() 核爆所有人,否则你根本无法使用数据库。

这几乎发生在每个发展水平上。首先,在 Esproc 中,当你开发底层逻辑时......如果在 connection.close() 之前你的程序中存在错误,连接将保持打开状态并且 Esproc 会打开一个新的下一次执行。当您有几个用户在网络上开发东西时,这会很快加起来。

接下来,在 Eclipse 中也是如此。您打开一个报告,Eclipse 会创建十几个连接,只要您保持 Eclipse 打开,这些连接就会一直存在。然后,当你 运行 报告时,它会创建另一组连接,完全忽略它已经存在的连接......如果你的报告中有错误,那么十几个额外的东西将不会关闭。

然后在我们的网站上,同样的事情...问题 运行在报告中,砰,连接永远不会关闭。我有 sessions 保持开放两周,绝对没有 activity。当我重新启动时它们才消失 Tomcat.

我已经走到尽头了。似乎没有任何方法可以在 Vertica 中设置 session 超时,我什至不知道从哪里开始寻找解决这些问题的方法。在我能找到的所有地方,连接超时都设置为 20 秒...所以我希望连接在到达该时间后消失,但当然不是这样。

我真的不知道在这里做什么...我很想在这里得到一些帮助。谁能给我一个线索?我已经做了两天了,我的大脑再也受不了了。

您想使用连接池而不是直接 JDBC 访问,它将消除 Tomcat 上的连接问题并提高性能。

Visit this article 获取更多信息。

  • [Tomcat home]/conf/server.xml
  • 中定义连接池(CP)
  • Link [Tomcat home]/conf/context.xml
  • 的 CP to web applications
  • 在 Tomcat 上安装 Apache Probe 或类似软件,这将有助于测试 CP 是否正确定义。
  • 在 BIRT 报告中,使用 JNDI URL 属性 到 link CP 的数据源

这将解决网站的问题,但不能解决 Eclipse 设计器的问题。尝试升级到最新的 birt & jdbc 版本。