1.我们有一个 J2EE 应用程序,使用在 Jboss EAP-6.2 上运行的 Servlets 和 JSP,并使用 SQL 服务器数据库。
2.在用户数为 20 的 UAT 系统上一切正常,但是当我们将同一应用程序移动到用户数超过 80 的生产系统时,我们遇到了 Jboss 中有关连接池数量的问题。此数量持续减少,8-10 小时后,用户无法登录系统,因此我们需要通过单击“配置文件”选项卡中“数据源”部分中的“刷新”按钮手动刷新连接池。
3.我们检查没有连接泄漏,因为我们已经在 Finally{ } 部分关闭了所有数据库连接。
4.我们还增加了STANDALONE.XML文件中的最大-最小池大小,并添加了一些RedHat站点推荐的验证标签。请参阅附件。
问题- 有没有什么方法可以让我们自动执行 Jboss Adminstrator 控制台上的 Flush 按钮功能,以便自动销毁空闲连接。
附件-连接池的Jboss控制台视图。 在此处输入图片描述
答案1
好的,如果您只是想定期刷新池,首先创建一个包含以下内容的文件(例如,commands.cli):
/subsystem=datasources/data-source=ibpmprod/:flush-idle-connection-in-pool()
/subsystem=datasources/data-source=ibpmprod/:flush-all-connection-in-pool()
然后每次你想要执行刷新时使用cli:
${JBOSS_INSTALLATION_DIR}/bin/jboss-cli.sh -c --file=commands.cli
您应该检查 flush-idle 或 flush-all 是否更适合您的需要,当然您可以对其进行 cronify 以便它按照您需要的频率/时间运行。