在开发BIRT报告时,我在管理Vertica中的连接时遇到了很大问题。基本的想法是会话永远不会死,所以我总是打到连接上限。当然,这是一个问题,因为除非你使用close_all_sessions()来核对每个人,否则根本就不能使用数据库。
这几乎发生在每一个发展阶段。首先,在Esproc中,当您开发底层逻辑时......如果在connection.close()之前程序中存在错误,则连接保持打开状态,Esproc会在下次执行时打开一个新的连接。当你有几个用户在网络上开发东西时,这很快就会增加。
接下来,在Eclipse中它也是一样的。你打开一个报告,只要你保持Eclipse打开,Eclipse就会创建十几个连接。然后,当你运行报告时,它会创建另一堆连接,完全忽略它已经存在的那些...如果你的报告中有错误,那么十几个额外的东西将不会关闭。
然后在我们的网站上,同样的事情......运行报告的问题,繁荣,连接将永远不会关闭。我已经开了两个星期,完全没有活动。当我重新启动Tomcat时,它们才消失。
我在这里结束了。似乎没有任何方法可以在Vertica中设置会话超时,我甚至不知道从哪里开始寻求解决这些问题。在我能找到的任何地方,连接超时设置为20秒...所以我希望连接在达到那个时间后消失,但当然情况并非如此。
我真的不知道该怎么做......我在这里急需一些帮助。任何人都可以给我一个线索吗?我已经在这里呆了两天了,我的脑子已经不能再接受了。
答案 0 :(得分:1)
您希望使用连接池而不是直接JDBC访问,它会消除Tomcat上的连接问题并提高性能。
Visit this article了解更多信息。
这将解决网站的问题,但不会解决Eclipse设计师的问题。尝试升级到最新的birt& jdbc版本。