Java Web应用中数据库的并发访问
如何知道Java EE web企业应用程序中同时访问数据库的平均或准确用户数?我想看看我在Glassfish应用服务器中设置的“连接池设置”是否适合我的web应用程序。我需要在Application Server的连接池设置中正确设置最大连接数。最近,当客户端对DB的请求过期时,我的应用程序连接耗尽并抛出异常。有多种方法 一个最简单的方法是向DBA寻求帮助—他们可以准确地告诉您在给定时间有多少连接在Web服务器或连接池的用户id中处于活动状态 如果您想要一些刺激,您必须使用glassfish提供的JMX管理扩展。上的清单6给出了一个示例,说明如何编写基于JMS的代码段来监视连接池 最后,您必须确保所有连接都由Java Web应用中数据库的并发访问,java,database,glassfish,connection-pooling,Java,Database,Glassfish,Connection Pooling,如何知道Java EE web企业应用程序中同时访问数据库的平均或准确用户数?我想看看我在Glassfish应用服务器中设置的“连接池设置”是否适合我的web应用程序。我需要在Application Server的连接池设置中正确设置最大连接数。最近,当客户端对DB的请求过期时,我的应用程序连接耗尽并抛出异常。有多种方法 一个最简单的方法是向DBA寻求帮助—他们可以准确地告诉您在给定时间有多少连接在Web服务器或连接池的用户id中处于活动状态 如果您想要一些刺激,您必须使用glassfish提供
connection.close()显式关闭代码>应用程序中的调用类型。在某些情况下,还需要关闭ResultSet。
下一步是限制http线程池,以避免在数据库连接需要更长时间才能关闭时出现过多并发访问。您确定在使用连接后正确关闭了连接吗?在web应用程序中,是的,我正在关闭连接和语句。然而,有时一些人直接访问数据库,我担心他们有时会忘记正确关闭数据库。在DB conf文件中,我看到最大连接数是100。请注意,此web应用程序有多个用户&在连接池中,最大连接数仅设置为4。所以我暂时增加了。我想知道是否有某种方法可以同时监视使用db连接的平均请求数。您确定每个用户都需要数据库连接吗?谢谢您的建议,您提到的链接非常有趣。然而,您提到“在某些情况下,您还需要关闭记录集”,我也从许多专家那里听到了同样的话,我想知道在哪些情况下显式关闭resultset很重要。它们应该以语句结束。您能告诉我吗?嗨-理想情况下,当语句对象关闭时,ResultSet
将关闭。一些驱动程序供应商没有正确实现该规范。所以关闭两个都是安全的。没有害处。这适用于打开对账单进行其他处理的情况。